X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Foutline%2FSCLModuleOutlinePage.java;fp=bundles%2Forg.simantics.scl.ui%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fui%2Foutline%2FSCLModuleOutlinePage.java;h=d333f235ad2bde17f68b12f6ce00f771bb31396f;hp=0000000000000000000000000000000000000000;hb=1dfeb7d5c49b1391cd9d877e1eddab18995cb151;hpb=c13c4179bda758e77fe1f2032d3c4268bb9e3120 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 index 000000000..d333f235a --- /dev/null +++ b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/outline/SCLModuleOutlinePage.java @@ -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(); + } + + } +}