./OpenII/src/org/mitre/openii/widgets/schemaTree/SchemaElementSorter.java
package org.mitre.openii.widgets.schemaTree;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
import org.mitre.schemastore.model.SchemaElement;
import org.mitre.schemastore.model.schemaInfo.HierarchicalSchemaInfo;
/** Handles the sorting of the Schema Tree */
public class SchemaElementSorter extends ViewerSorter
{
/** Stores a reference to the schema */
private SchemaTree schemaView = null;
/** Constructs the content sorter */
public SchemaElementSorter(SchemaTree schemaView)
{ this.schemaView = schemaView; }
/** Compares elements in the schema tree */
public int compare(Viewer viewer, Object object1, Object object2)
{
if(object1 instanceof SchemaElement && object2 instanceof SchemaElement)
{
Integer element1ID = ((SchemaElement)object1).getId();
Integer element2ID = ((SchemaElement)object2).getId();
if(schemaView.isAlphabetized())
{
HierarchicalSchemaInfo schema = schemaView.getSchema();
String name1 = schema.getDisplayName(element1ID);
String name2 = schema.getDisplayName(element2ID);
return name1.compareToIgnoreCase(name2);
}
return element1ID.compareTo(element2ID);
}
return super.compare(viewer, object1, object2);
}
}