]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/editor2/SCLModuleEditor2.java
Add outline page for SCLModuleEditor2
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / editor2 / SCLModuleEditor2.java
index 1b2096eb9c63932478c8e291bc442e7dd19986ba..9aa1f0dddc628a9c05f63934e7311d7158724c76 100644 (file)
@@ -26,10 +26,12 @@ import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
 import org.eclipse.ui.texteditor.IUpdate;
 import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;
 import org.eclipse.ui.texteditor.TextNavigationAction;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
 import org.simantics.scl.ui.editor.SCLSourceViewerConfigurationNew;
 import org.simantics.scl.ui.editor.completion.SCLTextEditorEnvironment;
 import org.simantics.scl.ui.editor2.iterator.DocumentCharacterIterator;
 import org.simantics.scl.ui.editor2.iterator.JavaWordIterator;
+import org.simantics.scl.ui.outline.SCLModuleOutlinePage;
 
 import com.ibm.icu.text.BreakIterator;
 
@@ -46,12 +48,15 @@ public class SCLModuleEditor2 extends TextEditor {
     protected ResourceManager resourceManager;
     private DefaultCharacterPairMatcher matcher;
 
+       private SCLModuleOutlinePage outline;
+
     public SCLModuleEditor2() {
         super();
         resourceManager = new LocalResourceManager(JFaceResources.getResources());
         SCLSourceViewerConfigurationNew sourceViewerConfiguration = new SCLSourceViewerConfigurationNew(resourceManager);
         setDocumentProvider(new SCLModuleEditor2DocumentProvider(sourceViewerConfiguration));
         setSourceViewerConfiguration(sourceViewerConfiguration);
+        outline = new SCLModuleOutlinePage(this);
     }
     
     @Override
@@ -136,7 +141,16 @@ public class SCLModuleEditor2 extends TextEditor {
     public IDocument getDocument() {
         return getSourceViewer().getDocument();
     }
-    
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> T getAdapter(Class<T> adapter) {
+        if (IContentOutlinePage.class.equals(adapter)) {
+            return (T) outline;
+        }
+        return super.getAdapter(adapter);
+    }
+
     /**
      * Text navigation action to navigate to the next sub-word.
      *