]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/SCLModuleBrowser.java
(refs #7242) First version of SCL Development perspective
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / modulebrowser / SCLModuleBrowser.java
diff --git a/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/SCLModuleBrowser.java b/bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/modulebrowser/SCLModuleBrowser.java
new file mode 100644 (file)
index 0000000..379a446
--- /dev/null
@@ -0,0 +1,39 @@
+package org.simantics.scl.ui.modulebrowser;
+
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.ViewPart;
+import org.simantics.scl.osgi.SCLOsgi;
+import org.simantics.scl.ui.editor2.OpenSCLModule;
+
+public class SCLModuleBrowser extends ViewPart {
+
+    SCLModuleTree content;
+    
+    @Override
+    public void createPartControl(Composite parent) {
+        this.content = new SCLModuleTree(parent, SWT.NONE, SCLOsgi.MODULE_REPOSITORY);
+        setPartName("SCL Modules");
+        content.addDoubleClickListener(new IDoubleClickListener() {
+            @Override
+            public void doubleClick(DoubleClickEvent event) {
+                ISelection selection = event.getSelection();
+                if(!(selection instanceof IStructuredSelection))
+                    return;
+                ModuleNameTreeEntry entry = (ModuleNameTreeEntry)((IStructuredSelection)selection).getFirstElement();
+                if(entry.isModule)
+                    OpenSCLModule.openModule(entry.fullName);
+            }
+        });
+    }
+
+    @Override
+    public void setFocus() {
+        content.getControl().setFocus();
+    }
+
+}