]> gerrit.simantics Code Review - simantics/3d.git/blobdiff - org.simantics.g3d/src/org/simantics/g3d/preferences/G3DPreferencePage.java
3D framework (Simca 2012)
[simantics/3d.git] / org.simantics.g3d / src / org / simantics / g3d / preferences / G3DPreferencePage.java
diff --git a/org.simantics.g3d/src/org/simantics/g3d/preferences/G3DPreferencePage.java b/org.simantics.g3d/src/org/simantics/g3d/preferences/G3DPreferencePage.java
new file mode 100644 (file)
index 0000000..7f90aeb
--- /dev/null
@@ -0,0 +1,79 @@
+package org.simantics.g3d.preferences;
+
+import org.eclipse.jface.preference.*;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.IWorkbench;
+import org.simantics.g3d.Activator;
+import org.simantics.g3d.math.EulerTools.Order;
+
+/**
+ * This class represents a preference page that
+ * is contributed to the Preferences dialog. By 
+ * subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows
+ * us to create a page that is small and knows how to 
+ * save, restore and apply itself.
+ * <p>
+ * This page is used to modify preferences only. They
+ * are stored in the preference store that belongs to
+ * the main plug-in class. That way, preferences can
+ * be accessed directly via the preference store.
+ */
+
+public class G3DPreferencePage
+       extends FieldEditorPreferencePage
+       implements IWorkbenchPreferencePage {
+
+       public G3DPreferencePage() {
+               super(GRID);
+               setPreferenceStore(Activator.getDefault().getPreferenceStore());
+               setDescription("3D modelling prederences");
+       }
+       
+       /**
+        * Creates the field editors. Field editors are abstractions of
+        * the common GUI blocks needed to manipulate various types
+        * of preferences. Each field editor knows how to save and
+        * restore itself.
+        */
+       public void createFieldEditors() {
+               addField(new RadioGroupFieldEditor(
+                               PreferenceConstants.ORIENTATION_PRESENTATION,
+                               "OrientationPresentation", 1,
+                               new String[][] { { "&Quaternion", "quat" },
+                                               { "&Axis-Angle", "aa" },{ "&Euler", "euler" } }, getFieldEditorParent()));
+               String[][] eulerOrders = new String[Order.values().length][2];
+               for (int i = 0; i < Order.values().length; i++) {
+                       eulerOrders[i][0] = Order.values()[i].toString();
+                       eulerOrders[i][1] = Order.values()[i].name();
+               }
+               addField(new RadioGroupFieldEditor(
+                               PreferenceConstants.EULER_ANGLE_ORDER,
+                               "Euler Angle Order", 1,
+                               eulerOrders, getFieldEditorParent()));
+//             addField(new DirectoryFieldEditor(PreferenceConstants.P_PATH, 
+//                             "&Directory preference:", getFieldEditorParent()));
+//             addField(
+//                     new BooleanFieldEditor(
+//                             PreferenceConstants.P_BOOLEAN,
+//                             "&An example of a boolean preference",
+//                             getFieldEditorParent()));
+//
+//             addField(new RadioGroupFieldEditor(
+//                             PreferenceConstants.P_CHOICE,
+//                     "An example of a multiple-choice preference",
+//                     1,
+//                     new String[][] { { "&Choice 1", "choice1" }, {
+//                             "C&hoice 2", "choice2" }
+//             }, getFieldEditorParent()));
+//             addField(
+//                     new StringFieldEditor(PreferenceConstants.P_STRING, "A &text preference:", getFieldEditorParent()));
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+        */
+       public void init(IWorkbench workbench) {
+       }
+       
+}
\ No newline at end of file