]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java
Replace System.err and System.out with SLF4J Logging
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / outline / SCLModuleOutlinePage.java
diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java
new file mode 100644 (file)
index 0000000..d333f23
--- /dev/null
@@ -0,0 +1,142 @@
+package org.simantics.scl.ui.outline;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.part.Page;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.simantics.scl.ui.editor2.SCLModuleEditor2;
+
+public class SCLModuleOutlinePage extends Page implements IContentOutlinePage {
+
+    private SCLOutlineViewer outlineViewer;
+    private SCLModuleEditor2 moduleEditor;
+    
+    public SCLModuleOutlinePage(SCLModuleEditor2 moduleEditor) {
+        this.moduleEditor = moduleEditor;
+    }
+
+    @Override
+    public void addSelectionChangedListener(ISelectionChangedListener listener) {
+        if (outlineViewer != null)
+            outlineViewer.addSelectionChangedListener(listener);
+    }
+
+    @Override
+    public ISelection getSelection() {
+        if (outlineViewer != null)
+            outlineViewer.getSelection();
+        return StructuredSelection.EMPTY;
+    }
+
+    @Override
+    public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+        if (outlineViewer != null)
+            outlineViewer.removeSelectionChangedListener(listener);
+    }
+
+    @Override
+    public void setSelection(ISelection selection) {
+        if (outlineViewer != null)
+            outlineViewer.setSelection(selection);
+    }
+
+    @Override
+    public void createControl(Composite parent) {
+        Tree tree = new Tree(parent, SWT.MULTI);
+        outlineViewer = new SCLOutlineViewer(tree);
+        
+        SCLModuleOutlineProvider provider = new SCLModuleOutlineProvider();
+        outlineViewer.setContentProvider(provider);
+        outlineViewer.setLabelProvider(provider);
+        
+        outlineViewer.setInput(moduleEditor.getEditorInput());
+    }
+
+    @Override
+    public Control getControl() {
+        if (outlineViewer != null)
+            outlineViewer.getControl();
+        return null;
+    }
+
+    @Override
+    public void setFocus() {
+        if (outlineViewer != null)
+            outlineViewer.getControl().setFocus();
+    }
+
+    protected class SCLOutlineViewer extends TreeViewer {
+
+        public SCLOutlineViewer(Tree tree) {
+            super(tree);
+            setAutoExpandLevel(ALL_LEVELS);
+            setUseHashlookup(true);
+        }
+
+        
+    }
+    
+    protected class SCLModuleOutlineProvider implements ITreeContentProvider, ILabelProvider {
+
+        @Override
+        public Object[] getElements(Object inputElement) {
+            return null;
+        }
+
+        @Override
+        public Object[] getChildren(Object parentElement) {
+            return null;
+        }
+
+        @Override
+        public Object getParent(Object element) {
+            return null;
+        }
+
+        @Override
+        public boolean hasChildren(Object element) {
+            return false;
+        }
+
+        @Override
+        public void addListener(ILabelProviderListener listener) {
+            
+        }
+
+        @Override
+        public boolean isLabelProperty(Object element, String property) {
+            return false;
+        }
+
+        @Override
+        public void removeListener(ILabelProviderListener listener) {
+            
+        }
+
+        @Override
+        public Image getImage(Object element) {
+            return null;
+        }
+
+        @Override
+        public String getText(Object element) {
+            return null;
+        }
+        
+        @Override
+        public void dispose() {
+            ITreeContentProvider.super.dispose();
+        }
+
+    }
+}