/* * generated by Xtext */ package org.eclipselabs.spray.xtext.ui.outline; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.ui.editor.outline.IOutlineNode; import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider; import org.eclipse.xtext.ui.editor.outline.impl.DocumentRootNode; import org.eclipselabs.spray.mm.spray.Connection; import org.eclipselabs.spray.mm.spray.Diagram; import org.eclipselabs.spray.mm.spray.Import; import org.eclipselabs.spray.mm.spray.Line; import org.eclipselabs.spray.mm.spray.MetaAttribute; import org.eclipselabs.spray.mm.spray.MetaReference; import org.eclipselabs.spray.mm.spray.SprayPackage; import org.eclipselabs.spray.mm.spray.Text; /** * customization of the default outline structure */ public class SprayOutlineTreeProvider extends DefaultOutlineTreeProvider { @Override protected void _createChildren(DocumentRootNode parentNode, EObject modelElement) { Diagram diagram = (Diagram) modelElement; // first the Diagram entry createNode(parentNode, diagram); // then the Imports for (Import element : diagram.getImports()) { createNode(parentNode, element); } // then the rest for (EObject element : diagram.eContents()) { if (!(element instanceof Import)) { createNode(parentNode, element); } } } @Override protected void _createNode(IOutlineNode parentNode, EObject modelElement) { if (modelElement.eClass() == SprayPackage.Literals.LAYOUT) return; createEObjectNode(parentNode, modelElement); } protected boolean _isLeaf(Diagram element) { return true; } protected boolean _isLeaf(Connection element) { return true; } protected boolean _isLeaf(Text element) { return true; } protected boolean _isLeaf(Line element) { return true; } protected boolean _isLeaf(MetaAttribute element) { return true; } protected boolean _isLeaf(MetaReference element) { return true; } }