]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d/src/org/simantics/proconf/g3d/dialogs/JMEDialog.java
git-svn-id: https://www.simantics.org/svn/simantics/3d/trunk@22280 ac1ea38d-2e2b...
[simantics/3d.git] / org.simantics.g3d / src / org / simantics / proconf / g3d / dialogs / JMEDialog.java
diff --git a/org.simantics.g3d/src/org/simantics/proconf/g3d/dialogs/JMEDialog.java b/org.simantics.g3d/src/org/simantics/proconf/g3d/dialogs/JMEDialog.java
new file mode 100644 (file)
index 0000000..9822b81
--- /dev/null
@@ -0,0 +1,174 @@
+/*******************************************************************************\r
+ * Copyright (c) 2007- VTT Technical Research Centre of Finland.\r
+ * All rights reserved. This program and the accompanying materials\r
+ * are made available under the terms of the Eclipse Public License v1.0\r
+ * which accompanies this distribution, and is available at\r
+ * http://www.eclipse.org/legal/epl-v10.html\r
+ *\r
+ * Contributors:\r
+ *     VTT Technical Research Centre of Finland - initial API and implementation\r
+ *******************************************************************************/\r
+package org.simantics.proconf.g3d.dialogs;\r
+\r
+import org.eclipse.jface.dialogs.Dialog;\r
+import org.eclipse.jface.dialogs.IDialogConstants;\r
+import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.events.MouseAdapter;\r
+import org.eclipse.swt.events.MouseEvent;\r
+import org.eclipse.swt.events.SelectionAdapter;\r
+import org.eclipse.swt.events.SelectionEvent;\r
+import org.eclipse.swt.graphics.Color;\r
+import org.eclipse.swt.graphics.RGB;\r
+import org.eclipse.swt.layout.GridData;\r
+import org.eclipse.swt.widgets.Button;\r
+import org.eclipse.swt.widgets.ColorDialog;\r
+import org.eclipse.swt.widgets.Composite;\r
+import org.eclipse.swt.widgets.Control;\r
+import org.eclipse.swt.widgets.Label;\r
+import org.eclipse.swt.widgets.Shell;\r
+\r
+public class JMEDialog extends Dialog {\r
+       private boolean bounds;\r
+       private boolean normals;\r
+       private boolean wireframe;\r
+       private float[] floatColor = null;\r
+       private Button boundsButton;\r
+       private Button normalsButton;\r
+       private Button wireframeButton;\r
+       private Composite colorComposite;\r
+       private Color color = null;\r
+       \r
+       public JMEDialog(Shell parentShell) {\r
+               super(parentShell);\r
+       }\r
+\r
+       \r
+       @Override\r
+       protected void configureShell(Shell newShell) {\r
+               super.configureShell(newShell);\r
+               newShell.setText("Configure new pipeline");\r
+       }\r
+       \r
+       @Override\r
+       protected Control createDialogArea(Composite parent) {\r
+               Composite composite = (Composite) super.createDialogArea(parent);\r
+               Label label = new Label(composite, SWT.WRAP);\r
+        label.setText("JME Configuration");\r
+        GridData data = new GridData(GridData.GRAB_HORIZONTAL\r
+                | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL\r
+                | GridData.VERTICAL_ALIGN_CENTER);\r
+               \r
+        data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);\r
+        boundsButton = new Button(composite,SWT.CHECK);\r
+        boundsButton.setText("Show bounds");\r
+        boundsButton.addSelectionListener(new SelectionAdapter() {\r
+               @Override\r
+               public void widgetSelected(SelectionEvent e) {\r
+                       bounds = boundsButton.getSelection();\r
+               }\r
+        });\r
+        boundsButton.setSelection(bounds);\r
+        normalsButton = new Button(composite,SWT.CHECK);\r
+        normalsButton.setText("Show normals");\r
+        normalsButton.addSelectionListener(new SelectionAdapter() {\r
+               @Override\r
+               public void widgetSelected(SelectionEvent e) {\r
+                       normals = normalsButton.getSelection();\r
+               }\r
+        });\r
+        normalsButton.setSelection(normals);\r
+        wireframeButton = new Button(composite,SWT.CHECK);\r
+        wireframeButton.setText("Show wireframe");\r
+        wireframeButton.addSelectionListener(new SelectionAdapter() {\r
+               @Override\r
+               public void widgetSelected(SelectionEvent e) {\r
+                       wireframe = wireframeButton.getSelection();\r
+               }\r
+        });\r
+        wireframeButton.setSelection(wireframe);\r
+        \r
+        colorComposite = new Composite(composite,SWT.BORDER);\r
+        colorComposite.addMouseListener(new MouseAdapter() {\r
+               @Override\r
+               public void mouseUp(MouseEvent e) {\r
+                       ColorDialog dialog = new ColorDialog(JMEDialog.this.getShell());\r
+                       RGB rgb = dialog.open();\r
+                       if (rgb != null) {\r
+                               if (color != null)\r
+                                       color.dispose();\r
+                               color = new Color(JMEDialog.this.getShell().getDisplay(),rgb);\r
+                               colorComposite.setBackground(color);\r
+                               floatColor = new float[]{rgb.red/255.f,rgb.green/255.f,rgb.blue/255.f};\r
+                       }\r
+               }\r
+        });\r
+               updateColor();\r
+               \r
+               return composite;\r
+       }\r
+       \r
+       @Override\r
+       public int open() {\r
+               return super.open();\r
+       }\r
+\r
+\r
+       public boolean isBounds() {\r
+               return bounds;\r
+       }\r
+\r
+\r
+       public void setBounds(boolean bounds) {\r
+               this.bounds = bounds;\r
+       }\r
+\r
+\r
+       public boolean isNormals() {\r
+               return normals;\r
+       }\r
+\r
+\r
+       public void setNormals(boolean normals) {\r
+               this.normals = normals;\r
+       }\r
+\r
+\r
+       public boolean isWireframe() {\r
+               return wireframe;\r
+       }\r
+\r
+\r
+       public void setWireframe(boolean wireframe) {\r
+               this.wireframe = wireframe;\r
+       }\r
+       \r
+       \r
+       public float[] getFloatColor() {\r
+               return floatColor;\r
+       }\r
+\r
+       public void setFloatColor(float[] c) {\r
+               this.floatColor = c;\r
+               if (floatColor == null)\r
+                       return;\r
+               \r
+               updateColor();\r
+       }\r
+       \r
+       private void updateColor() {\r
+               if (colorComposite == null)\r
+                       return;\r
+               if (color != null)\r
+                       color.dispose();\r
+               RGB rgb = new RGB((int)(floatColor[0]*255.f),(int)(floatColor[1]*255.f),(int)(floatColor[2]*255.f));\r
+               color = new Color(JMEDialog.this.getShell().getDisplay(),rgb);\r
+               colorComposite.setBackground(color);\r
+       }\r
+\r
+       \r
+\r
+\r
+       \r
+       \r
+       \r
+}\r