]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - dev/org.simantics.proconf.processeditor/src/fi/vtt/simantics/processeditor/tools/NozzleContribution.java
Release
[simantics/3d.git] / dev / org.simantics.proconf.processeditor / src / fi / vtt / simantics / processeditor / tools / NozzleContribution.java
diff --git a/dev/org.simantics.proconf.processeditor/src/fi/vtt/simantics/processeditor/tools/NozzleContribution.java b/dev/org.simantics.proconf.processeditor/src/fi/vtt/simantics/processeditor/tools/NozzleContribution.java
new file mode 100644 (file)
index 0000000..91f65ba
--- /dev/null
@@ -0,0 +1,129 @@
+package fi.vtt.simantics.processeditor.tools;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Collection;\r
+import java.util.List;\r
+\r
+import org.eclipse.jface.action.Action;\r
+import org.eclipse.jface.action.IContributionItem;\r
+import org.eclipse.jface.action.IMenuManager;\r
+import org.eclipse.jface.action.IToolBarManager;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.layout.FillLayout;\r
+import org.eclipse.swt.layout.FormAttachment;\r
+import org.eclipse.swt.layout.FormData;\r
+import org.eclipse.swt.layout.FormLayout;\r
+import org.eclipse.swt.widgets.Button;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Label;\r
+import org.eclipse.swt.widgets.Text;\r
+import org.simantics.db.Graph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.proconf.g3d.actions.ContextAction;\r
+import org.simantics.proconf.g3d.base.EditorContribution;\r
+import org.simantics.proconf.g3d.base.ThreeDimensionalEditorBase;\r
+import org.simantics.proconf.g3d.common.StructuredResourceSelection;\r
+\r
+import fi.vtt.simantics.processeditor.ProcessResource;\r
+\r
+public class NozzleContribution implements EditorContribution {\r
+       private List<ContextAction> actions = new ArrayList<ContextAction>();\r
+       private ThreeDimensionalEditorBase parent;\r
+       private Resource equipmentResource;\r
+       private Composite sideComposite;\r
+       \r
+       public NozzleContribution(ThreeDimensionalEditorBase parent) {\r
+               this.parent = parent;\r
+       }\r
+       \r
+       @Override\r
+       public void createControl(Composite parent) {\r
+               FormLayout flayout = new FormLayout();\r
+               parent.setLayout(flayout);\r
+               sideComposite = new Composite(parent,SWT.BORDER);\r
+               FormData data = new FormData();\r
+               data.top = new FormAttachment(0, 0);\r
+               data.left = new FormAttachment(0, 0);\r
+               data.right = new FormAttachment(sideComposite, 0, SWT.LEFT);\r
+               data.bottom = new FormAttachment(100,0);\r
+               this.parent.getRenderingComposite().setLayoutData(data);\r
+               sideComposite.setLayout(new FillLayout(SWT.VERTICAL));\r
+               data = new FormData();\r
+               data.top = new FormAttachment(0, 0);\r
+               data.bottom = new FormAttachment(100,0);\r
+               data.right = new FormAttachment(100,0);\r
+               sideComposite.setLayoutData(data);\r
+               showNozzles(true);\r
+               \r
+               Button addButton = new Button(sideComposite,SWT.PUSH);\r
+               addButton.setText("Add Nozzle");\r
+               Label label = new Label(sideComposite,SWT.NONE);\r
+               label.setText("Restrictions:");\r
+               Button minButton = new Button(sideComposite,SWT.CHECK);\r
+               minButton.setText("Min");\r
+               Text minText = new Text(sideComposite,SWT.SINGLE | SWT.BORDER);\r
+               Button maxButton = new Button(sideComposite,SWT.CHECK);\r
+               maxButton.setText("Max");\r
+               Text maxText = new Text(sideComposite,SWT.SINGLE | SWT.BORDER);\r
+               minText.setToolTipText("Enter minimum number of nozzles");\r
+               maxText.setToolTipText("Enter maximum number of nozzles");\r
+\r
+       }\r
+       \r
+       @Override\r
+       public void disposeControl() {\r
+               sideComposite.dispose();\r
+               \r
+       }\r
+       @Override\r
+       public void fillContextMenu(Graph graph, IMenuManager manager,\r
+                       StructuredResourceSelection selection) {\r
+\r
+       }\r
+       \r
+       @Override\r
+       public void fillLocalPullDown(IMenuManager manager) {\r
+\r
+       }\r
+       \r
+       @Override\r
+       public void fillLocalToolBar(IToolBarManager manager) {\r
+\r
+       }\r
+       \r
+       @Override\r
+       public Collection<ContextAction> getActions() {\r
+               return actions;\r
+       }\r
+       \r
+       @Override\r
+       public String getName() {\r
+               return "Nozzles";\r
+       }\r
+       \r
+       private void showNozzles(boolean show) {\r
+               \r
+       }\r
+       \r
+       @Override\r
+       public void initialize(Graph graph) {\r
+               Resource modelResource = parent.getInputResource();\r
+               Resource inverse = graph.getInverse(ProcessResource.plant3Dresource.HasGraphics);\r
+               Collection<Resource> equipment = graph.getObjects(modelResource, inverse);\r
+               if (equipment.size() != 1)\r
+                       throw new RuntimeException("Cannot find equipment");\r
+               equipmentResource = equipment.iterator().next();\r
+       }\r
+       \r
+       @Override\r
+       public void dispose() {\r
+               showNozzles(false);\r
+       }\r
+       \r
+       @Override\r
+       public void run() {\r
+\r
+       }\r
+       \r
+       \r
+}\r