--- /dev/null
+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