--- /dev/null
+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();
+ }
+
+}