package net.certware.argument.language.ui.outline; import net.certware.argument.language.l.LPackage; import org.eclipse.xtext.ui.editor.outline.IOutlineNode; import org.eclipse.xtext.ui.editor.outline.actions.SortOutlineContribution.DefaultComparator; import org.eclipse.xtext.ui.editor.outline.impl.EObjectNode; /** * Provides a comparator to sort the language item outline by category. * @author mrb */ public class TypedOutlineNodeComparator extends DefaultComparator { @Override public int getCategory(IOutlineNode node) { if ( node instanceof EObjectNode) { switch(((EObjectNode)node).getEClass().getClassifierID()) { case LPackage.CONSTANT_DECLARATION: return -30; case LPackage.TYPE_DECLARATION: return -20; case LPackage.RULE: return -10; } } return Integer.MIN_VALUE; } }