Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2012-06-20 12:20:49 +0000
committercletavernie2012-06-20 12:20:49 +0000
commit19e0eb0b16dc27108bc5c2f23675a1db581b7448 (patch)
treee1bba669a72751f05e71285f794fa1a214947f80 /plugins
parentd56ed20a7bd5b8d20a3ecca980ee16cbdf5404f1 (diff)
downloadorg.eclipse.papyrus-19e0eb0b16dc27108bc5c2f23675a1db581b7448.tar.gz
org.eclipse.papyrus-19e0eb0b16dc27108bc5c2f23675a1db581b7448.tar.xz
org.eclipse.papyrus-19e0eb0b16dc27108bc5c2f23675a1db581b7448.zip
383092: [Diagrams] Add a preference to draw an Association in one-click or two-clicks
https://bugs.eclipse.org/bugs/show_bug.cgi?id=383092
Diffstat (limited to 'plugins')
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF1
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml15
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferenceInitializer.java27
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferencePage.java34
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferences.java36
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeConnectionTool.java23
6 files changed, 131 insertions, 5 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
index ac9ae76df46..3f7a269b239 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/META-INF/MANIFEST.MF
@@ -7,6 +7,7 @@ Export-Package: org.eclipse.papyrus.infra.gmfdiag.common,
org.eclipse.papyrus.infra.gmfdiag.common.handler,
org.eclipse.papyrus.infra.gmfdiag.common.helper,
org.eclipse.papyrus.infra.gmfdiag.common.listener,
+ org.eclipse.papyrus.infra.gmfdiag.common.preferences,
org.eclipse.papyrus.infra.gmfdiag.common.providers,
org.eclipse.papyrus.infra.gmfdiag.common.utils
Bundle-ActivationPolicy: lazy
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
index 2ec61fd7f43..d3ceeda9930 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/plugin.xml
@@ -67,6 +67,21 @@
</command>
</menuContribution>
</extension>
+<extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
+ class="org.eclipse.papyrus.infra.gmfdiag.common.preferences.ConnectionToolPreferencePage"
+ id="org.eclipse.papyrus.infra.gmfdiag.common.connectionTools"
+ name="Connection Tools">
+ </page>
+</extension>
+<extension
+ point="org.eclipse.core.runtime.preferences">
+ <initializer
+ class="org.eclipse.papyrus.infra.gmfdiag.common.preferences.ConnectionToolPreferenceInitializer">
+ </initializer>
+</extension>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferenceInitializer.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferenceInitializer.java
new file mode 100644
index 00000000000..17b53015229
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferenceInitializer.java
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.gmfdiag.common.Activator;
+
+
+public class ConnectionToolPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ @Override
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = Activator.getInstance().getPreferenceStore();
+ store.setDefault(ConnectionToolPreferences.DRAW_CONNECTION_MODE, ConnectionToolPreferences.TWO_CLICKS);
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferencePage.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferencePage.java
new file mode 100644
index 00000000000..56d1eb41ca4
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferencePage.java
@@ -0,0 +1,34 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.preferences;
+
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.papyrus.infra.gmfdiag.common.Activator;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+
+public class ConnectionToolPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+ public void init(IWorkbench workbench) {
+ setPreferenceStore(Activator.getInstance().getPreferenceStore());
+ }
+
+ @Override
+ protected void createFieldEditors() {
+ String[][] values = { { "Single click", ConnectionToolPreferences.SINGLE_CLICK }, { "Two clicks", ConnectionToolPreferences.TWO_CLICKS } };
+ ComboFieldEditor fieldEditor = new ComboFieldEditor(ConnectionToolPreferences.DRAW_CONNECTION_MODE, "Draw links mode", values, getFieldEditorParent());
+ addField(fieldEditor);
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferences.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferences.java
new file mode 100644
index 00000000000..1463aafd606
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/preferences/ConnectionToolPreferences.java
@@ -0,0 +1,36 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.common.preferences;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.gmfdiag.common.Activator;
+
+
+public class ConnectionToolPreferences {
+
+ public static final String DRAW_CONNECTION_MODE = "drawConnectionMode";
+
+ public static final String SINGLE_CLICK = "singleClick";
+
+ public static final String TWO_CLICKS = "twoClicks";
+
+ private ConnectionToolPreferences() {
+ }
+
+ public boolean isInSingleClickMode() {
+ return SINGLE_CLICK.equals(preferences.getString(DRAW_CONNECTION_MODE));
+ }
+
+ private IPreferenceStore preferences = Activator.getInstance().getPreferenceStore();
+
+ public static final ConnectionToolPreferences instance = new ConnectionToolPreferences();
+}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeConnectionTool.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeConnectionTool.java
index 9cc0075ea5d..7f755b83603 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeConnectionTool.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/service/AspectUnspecifiedTypeConnectionTool.java
@@ -55,6 +55,7 @@ import org.eclipse.gmf.runtime.notation.Connector;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.core.utils.EditorUtils;
+import org.eclipse.papyrus.infra.gmfdiag.common.preferences.ConnectionToolPreferences;
import org.eclipse.papyrus.uml.diagram.common.Activator;
import org.eclipse.papyrus.uml.diagram.common.layout.LayoutUtils;
import org.eclipse.papyrus.uml.diagram.common.service.palette.AspectToolService;
@@ -99,11 +100,11 @@ public class AspectUnspecifiedTypeConnectionTool extends UnspecifiedTypeConnecti
return elementTypes;
}
- /**
- * @see org.eclipse.gef.tools.AbstractTool#handleButtonUp(int)
- */
- @Override
- protected boolean handleButtonUp(int button) {
+ protected boolean handleButtonUpOneClick(int button) {
+ return super.handleButtonUp(button);
+ }
+
+ protected boolean handleButtonUpTwoClicks(int button) {
setCtrlKeyDown(getCurrentInput().isControlKeyDown());
if(isInState(STATE_CONNECTION_STARTED)) {
@@ -123,6 +124,18 @@ public class AspectUnspecifiedTypeConnectionTool extends UnspecifiedTypeConnecti
}
/**
+ * @see org.eclipse.gef.tools.AbstractTool#handleButtonUp(int)
+ */
+ @Override
+ protected boolean handleButtonUp(int button) {
+ if(ConnectionToolPreferences.instance.isInSingleClickMode()) {
+ return handleButtonUpOneClick(button);
+ } else {
+ return handleButtonUpTwoClicks(button);
+ }
+ }
+
+ /**
* {@inheritDoc}
*/
@Override

Back to the top