Преглед изворни кода

Added routing style to preference page

Andreas Mülder пре 12 година
родитељ
комит
4db84eac9d

+ 1 - 1
plugins/org.yakindu.sct.ui.editor/plugin.xml

@@ -572,7 +572,7 @@
             category="org.yakindu.sct.ui.preferences.root"
             class="org.yakindu.sct.ui.editor.preferences.StatechartAppearancePreferencePage"
             id="com.yakindu.sct.ui.appearance"
-            name="Statechart Coloring">
+            name="Diagram Appearance">
         </page>
     </extension>
    <extension

+ 68 - 16
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/preferences/StatechartAppearancePreferencePage.java

@@ -10,35 +10,87 @@
  */
 package org.yakindu.sct.ui.editor.preferences;
 
+import org.eclipse.gmf.runtime.common.ui.preferences.ComboFieldEditor;
+import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
+import org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants;
 import org.eclipse.jface.preference.ColorFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
 import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 import org.yakindu.sct.ui.editor.DiagramActivator;
 
-public class StatechartAppearancePreferencePage extends
-		FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+/**
+ * 
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class StatechartAppearancePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
 
 	public StatechartAppearancePreferencePage() {
 		super(GRID);
-		setDescription("Preference page for statechart editor colors");
+		setDescription("Change the default diagram appearance");
 	}
-	
+
 	@Override
 	protected void createFieldEditors() {
-		addField(new ColorFieldEditor(
-				StatechartPreferenceConstants.PREF_REGION_BACKGROUND,
-				"Region background color:", getFieldEditorParent()));
-		addField(new ColorFieldEditor(
-				StatechartPreferenceConstants.PREF_REGION_LINE,
-				"Region line color:", getFieldEditorParent()));
-		addField(new ColorFieldEditor(
-				StatechartPreferenceConstants.PREF_STATE_BACKGROUND,
-				"State background color:", getFieldEditorParent()));
-		addField(new ColorFieldEditor(
-				StatechartPreferenceConstants.PREF_STATE_LINE,
-				"State line color:", getFieldEditorParent()));
+		Composite parent = getFieldEditorParent();
+		addFields(parent);
+	}
+
+	protected void addFields(Composite parent) {
+		Composite main = createPageLayout(parent);
+		createColorEditors(main);
+		createLineStyleEditors(main);
+	}
+
+	protected void createLineStyleEditors(Composite parent) {
+		Composite composite = createGroupComposite(parent, "Line styles");
+		ComboFieldEditor lineStyleFieldEditor = new ComboFieldEditor(IPreferenceConstants.PREF_LINE_STYLE,
+				"Routing style", composite, ComboFieldEditor.INT_TYPE, false, 0, 0, true);
+		addField(lineStyleFieldEditor);
+		Combo lineStyleCombo = lineStyleFieldEditor.getComboControl();
+		lineStyleCombo.add(DiagramUIMessages.ConnectionsPreferencePage_ConnectionView_Manual_text);
+		lineStyleCombo.add(DiagramUIMessages.ConnectionsPreferencePage_ConnectionView_Rectilinear_text);
+	}
+
+	protected void createColorEditors(Composite parent) {
+		Composite composite = createGroupComposite(parent, "Diagram colors");
+		addField(new ColorFieldEditor(StatechartPreferenceConstants.PREF_REGION_BACKGROUND, "Region background color:",
+				composite));
+		addField(new ColorFieldEditor(StatechartPreferenceConstants.PREF_REGION_LINE, "Region line color:", composite));
+		addField(new ColorFieldEditor(StatechartPreferenceConstants.PREF_STATE_BACKGROUND, "State background color:",
+				composite));
+		addField(new ColorFieldEditor(StatechartPreferenceConstants.PREF_STATE_LINE, "State line color:", composite));
+	}
+
+	protected Composite createPageLayout(Composite parent) {
+		Composite main = new Composite(parent, SWT.NULL);
+		main.setLayout(new GridLayout());
+		main.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL));
+		return main;
+	}
+
+	protected Composite createGroupComposite(Composite parent, String title) {
+		Group group = new Group(parent, SWT.NONE);
+		group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		group.setLayout(new GridLayout(3, false));
+		Composite composite = new Composite(group, SWT.NONE);
+		GridLayout gridLayout = new GridLayout(3, false);
+		composite.setLayout(gridLayout);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.grabExcessHorizontalSpace = true;
+		gridData.horizontalSpan = 3;
+		composite.setLayoutData(gridData);
+		group.setText(title);
+		return composite;
 	}
 
 	public void init(IWorkbench workbench) {