Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Wenz2017-12-01 15:08:08 +0000
committerMichael Wenz2017-12-01 15:08:08 +0000
commit6ae5a32b7adbf2f1d3396ada296ddabb5978b290 (patch)
tree5c3371911e69f9105d6182790c88beb992c52b32
parent2c8bfbe7e355d5c650c2182f752d53b916fd0a15 (diff)
downloadorg.eclipse.graphiti-6ae5a32b7adbf2f1d3396ada296ddabb5978b290.tar.gz
org.eclipse.graphiti-6ae5a32b7adbf2f1d3396ada296ddabb5978b290.tar.xz
org.eclipse.graphiti-6ae5a32b7adbf2f1d3396ada296ddabb5978b290.zip
Bug 520392 - Hard coded error message when entering an empty string in
direct editing * Add method getDirectEditingInvalidNotificationTitle in tool behavior provider to override the default popup title * Default implementation of tool behavior provider returns the standard string * Had to move the text definition from the UI to the core plugin * Added example implementation in tutorial Change-Id: I129321898825fa1a4e569039a984698c23dab0b0
-rw-r--r--examples/org.eclipse.graphiti.examples.tutorial/src/org/eclipse/graphiti/examples/tutorial/diagram/TutorialToolBehaviorProvider.java15
-rw-r--r--plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/Messages.java4
-rw-r--r--plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/messages.properties4
-rw-r--r--plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java17
-rw-r--r--plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/Messages.java4
-rw-r--r--plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/messages.properties4
-rw-r--r--plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/DefaultToolBehaviorProvider.java24
-rw-r--r--plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/IToolBehaviorProvider.java21
8 files changed, 76 insertions, 17 deletions
diff --git a/examples/org.eclipse.graphiti.examples.tutorial/src/org/eclipse/graphiti/examples/tutorial/diagram/TutorialToolBehaviorProvider.java b/examples/org.eclipse.graphiti.examples.tutorial/src/org/eclipse/graphiti/examples/tutorial/diagram/TutorialToolBehaviorProvider.java
index 73fc3d4c..447a4210 100644
--- a/examples/org.eclipse.graphiti.examples.tutorial/src/org/eclipse/graphiti/examples/tutorial/diagram/TutorialToolBehaviorProvider.java
+++ b/examples/org.eclipse.graphiti.examples.tutorial/src/org/eclipse/graphiti/examples/tutorial/diagram/TutorialToolBehaviorProvider.java
@@ -1,7 +1,7 @@
/*******************************************************************************
* <copyright>
*
- * Copyright (c) 2005, 2010 SAP AG.
+ * Copyright (c) 2005, 2017 SAP AG.
* 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
@@ -9,6 +9,7 @@
*
* Contributors:
* SAP AG - initial API, implementation and documentation
+ * mwenz - Bug 520392 - Hard coded error message when entering an empty string in direct editing
*
* </copyright>
*
@@ -23,11 +24,14 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.graphiti.dt.IDiagramTypeProvider;
import org.eclipse.graphiti.examples.tutorial.TutorialImageProvider;
import org.eclipse.graphiti.examples.tutorial.features.TutorialCollapseDummyFeature;
+import org.eclipse.graphiti.examples.tutorial.features.TutorialDirectEditEClassFeature;
import org.eclipse.graphiti.examples.tutorial.features.TutorialRenameEClassFeature;
import org.eclipse.graphiti.features.ICreateConnectionFeature;
import org.eclipse.graphiti.features.ICreateFeature;
+import org.eclipse.graphiti.features.IDirectEditingFeature;
import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.ICustomContext;
+import org.eclipse.graphiti.features.context.IDirectEditingContext;
import org.eclipse.graphiti.features.context.IDoubleClickContext;
import org.eclipse.graphiti.features.context.IPictogramElementContext;
import org.eclipse.graphiti.features.context.impl.CreateConnectionContext;
@@ -245,4 +249,13 @@ public class TutorialToolBehaviorProvider extends DefaultToolBehaviorProvider {
return super.getToolTip(ga);
}
+ @Override
+ public String getDirectEditingInvalidNotificationTitle(IDirectEditingFeature feature,
+ IDirectEditingContext context) {
+ if (feature instanceof TutorialDirectEditEClassFeature) {
+ return "Cannot change name of EClass";
+ } else {
+ return super.getDirectEditingInvalidNotificationTitle(feature, context);
+ }
+ }
}
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/Messages.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/Messages.java
index 3888858d..791f182c 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/Messages.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/Messages.java
@@ -1,7 +1,7 @@
/*******************************************************************************
* <copyright>
*
- * Copyright (c) 2005, 2011 SAP AG.
+ * Copyright (c) 2005, 2017 SAP AG.
* 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
@@ -11,6 +11,7 @@
* SAP AG - initial API, implementation and documentation
* mwenz - Bug 327669 - removed dependencies to GEF internal stuff
* Felix Velasco (mwenz) - Bug 323351 - Enable to suppress/reactivate the speed buttons
+ * mwenz - Bug 520392 - Hard coded error message when entering an empty string in direct editing
*
* </copyright>
*
@@ -37,7 +38,6 @@ public class Messages extends NLS {
public static String DefaultDeleteFeature_3_xmsg;
public static String DefaultDeleteFeature_4_xmsg;
public static String DefaultDeleteFeature_5_xfld;
- public static String DefaultDirectEditPolicy_0_xmsg;
public static String DefaultPersistencyBehavior_2;
public static String DefaultPersistencyBehavior_3;
public static String DefaultPersistencyBehavior_4;
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/messages.properties b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/messages.properties
index f53415d0..fa05b97d 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/messages.properties
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/messages.properties
@@ -1,7 +1,7 @@
###############################################################################
# <copyright>
#
-# Copyright (c) 2005, 2011 SAP AG.
+# Copyright (c) 2005, 2017 SAP AG.
# 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
@@ -13,6 +13,7 @@
# mwenz - Bug 323359 Avoid usage of java.lang.text, ICU4J etc
# jpasch - Bug 323025 ActionBarContributor cleanup
# Felix Velasco (mwenz) - Bug 323351 - Enable to suppress/reactivate the speed buttons
+# mwenz - Bug 520392 - Hard coded error message when entering an empty string in direct editing
#
# </copyright>
#
@@ -72,7 +73,6 @@ PrintFigureDialog_6_xfld=&inches
PrintFigureDialog_7_xfld=Affects "Position" and "Size - Custom"
PrintFigureDialog_8_xfld=Print preview for first page
PrintFigureDialog_9_xmsg=Page(s) to print:
-DefaultDirectEditPolicy_0_xmsg=Can not edit value
DefaultPersistencyBehavior_2=Some resources could not be saved, see details for more information
DefaultPersistencyBehavior_3=Save failed
DefaultPersistencyBehavior_4=The following error(s) occurred while saving the editor
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java
index 32a0d8d8..5af98da7 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java
@@ -1,7 +1,7 @@
/*******************************************************************************
* <copyright>
*
- * Copyright (c) 2005, 2013 SAP AG.
+ * Copyright (c) 2005, 2017 SAP AG.
* 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
@@ -14,6 +14,7 @@
* mwenz - Bug 397346 - Digram Editor loses focus on closing of MessageDialog in Graphiti
* pjpaulin - Bug 352120 - Eliminated assumption that diagram is in an IEditorPart
* pjpaulin - Bug 352120 - Now uses IDiagramContainerUI interface
+ * mwenz - Bug 520392 - Hard coded error message when entering an empty string in direct editing
*
* </copyright>
*
@@ -34,7 +35,6 @@ import org.eclipse.graphiti.internal.command.DirectEditingFeatureCommandWithCont
import org.eclipse.graphiti.internal.command.ICommand;
import org.eclipse.graphiti.internal.util.LookManager;
import org.eclipse.graphiti.ui.editor.IDiagramBehaviorUI;
-import org.eclipse.graphiti.ui.internal.Messages;
import org.eclipse.graphiti.ui.internal.command.GefCommandWrapper;
import org.eclipse.graphiti.ui.internal.config.IConfigurationProviderInternal;
import org.eclipse.graphiti.ui.internal.parts.directedit.IDirectEditHolder;
@@ -82,9 +82,14 @@ public class DefaultDirectEditPolicy extends DirectEditPolicy {
CellEditor cellEditor = request.getCellEditor();
final String message = cellEditor.getErrorMessage();
+
+ IDirectEditHolder directEditHolder = ((GFDirectEditRequest) request).getDirectEditHolder();
+ IDirectEditingFeature directEditingFeature = directEditHolder.getDirectEditingFeature();
+ IDirectEditingContext directEditingContext = directEditHolder.getDirectEditingContext();
if (message != null && message.length() != 0) {
- MessageDialog.openError(GraphitiUiInternal.getWorkbenchService().getShell(),
- Messages.DefaultDirectEditPolicy_0_xmsg, message);
+ String notificationTitle = configurationProvider.getDiagramTypeProvider().getCurrentToolBehaviorProvider()
+ .getDirectEditingInvalidNotificationTitle(directEditingFeature, directEditingContext);
+ MessageDialog.openError(GraphitiUiInternal.getWorkbenchService().getShell(), notificationTitle, message);
if (configurationProvider.getDiagramContainer() != null
&& configurationProvider.getDiagramContainer().getWorkbenchPart() != null) {
configurationProvider.getDiagramContainer().getWorkbenchPart().setFocus();
@@ -92,10 +97,6 @@ public class DefaultDirectEditPolicy extends DirectEditPolicy {
return null;
}
- final IDirectEditHolder directEditHolder = ((GFDirectEditRequest) request).getDirectEditHolder();
- final IDirectEditingFeature directEditingFeature = directEditHolder.getDirectEditingFeature();
- final IDirectEditingContext directEditingContext = directEditHolder.getDirectEditingContext();
-
String value = null;
IProposal acceptedProposal = null;
diff --git a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/Messages.java b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/Messages.java
index 97fb3813..43421d60 100644
--- a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/Messages.java
+++ b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/Messages.java
@@ -1,7 +1,7 @@
/*******************************************************************************
* <copyright>
*
- * Copyright (c) 2005, 2010 SAP AG.
+ * Copyright (c) 2005, 2017 SAP AG.
* 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
@@ -9,6 +9,7 @@
*
* Contributors:
* SAP AG - initial API, implementation and documentation
+ * mwenz - Bug 520392 - Hard coded error message when entering an empty string in direct editing
*
* </copyright>
*
@@ -74,4 +75,5 @@ public class Messages extends NLS {
public static String DefaultToolBehaviorProvider_1_xfld;
public static String FeatureCommand_0_xmsg;
public static String ReconnectionFeatureForPattern_0_xfld;
+ public static String DefaultDirectEditPolicy_0_xmsg;
}
diff --git a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/messages.properties b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/messages.properties
index c532f256..e6b723d0 100644
--- a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/messages.properties
+++ b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/internal/messages.properties
@@ -1,7 +1,7 @@
###############################################################################
# <copyright>
#
-# Copyright (c) 2005, 2010 SAP AG.
+# Copyright (c) 2005, 2017 SAP AG.
# 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
@@ -9,6 +9,7 @@
#
# Contributors:
# SAP AG - initial API, implementation and documentation
+# mwenz - Bug 520392 - Hard coded error message when entering an empty string in direct editing
#
# </copyright>
#
@@ -56,3 +57,4 @@ DefaultToolBehaviorProvider_0_xfld=Connections
DefaultToolBehaviorProvider_1_xfld=Objects
FeatureCommand_0_xmsg=This is not a valid feature
ReconnectionFeatureForPattern_0_xfld=Reconnection
+DefaultDirectEditPolicy_0_xmsg=Can not edit value
diff --git a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/DefaultToolBehaviorProvider.java b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/DefaultToolBehaviorProvider.java
index 754176a3..adf585e8 100644
--- a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/DefaultToolBehaviorProvider.java
+++ b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/DefaultToolBehaviorProvider.java
@@ -1,7 +1,7 @@
/*******************************************************************************
* <copyright>
*
- * Copyright (c) 2005, 2014 SAP AG.
+ * Copyright (c) 2005, 2017 SAP AG.
* 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
@@ -17,6 +17,7 @@
* fvelasco - Bug 323349 - Enable external invocation of features
* mwenz - Bug 421754 - Absolute position of active Shape nested in inactive ContainerShape is calculated incorrectly
* mwenz - Bug 428068 - Automatically unselect a tool entry in palette like 'connection creation' after execution
+ * mwenz - Bug 520392 - Hard coded error message when entering an empty string in direct editing
* </copyright>
*
*******************************************************************************/
@@ -34,8 +35,10 @@ import org.eclipse.graphiti.datatypes.ILocation;
import org.eclipse.graphiti.dt.IDiagramTypeProvider;
import org.eclipse.graphiti.features.ICreateConnectionFeature;
import org.eclipse.graphiti.features.ICreateFeature;
+import org.eclipse.graphiti.features.IDirectEditingFeature;
import org.eclipse.graphiti.features.IFeatureProvider;
import org.eclipse.graphiti.features.context.ICustomContext;
+import org.eclipse.graphiti.features.context.IDirectEditingContext;
import org.eclipse.graphiti.features.context.IDoubleClickContext;
import org.eclipse.graphiti.features.context.IPictogramElementContext;
import org.eclipse.graphiti.features.context.ISingleClickContext;
@@ -588,4 +591,23 @@ public class DefaultToolBehaviorProvider implements IToolBehaviorProvider {
public boolean isStayActiveAfterExecution(IConnectionCreationToolEntry connectionCreationToolEntry) {
return true;
}
+
+ /**
+ * Returns the title of the popup that appears when a user provides an
+ * invalid input for direct editing. This default implementation returns
+ * 'Can not edit value'.
+ *
+ * @param feature
+ * The {@link IDirectEditingFeature} that was invoked
+ * @param context
+ * The {@link IDirectEditingContext} that was used.
+ * @return A {@link String} representing the title of the popup to present
+ * to the user.
+ * @since 0.15
+ */
+ @Override
+ public String getDirectEditingInvalidNotificationTitle(IDirectEditingFeature feature,
+ IDirectEditingContext context) {
+ return Messages.DefaultDirectEditPolicy_0_xmsg;
+ }
}
diff --git a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/IToolBehaviorProvider.java b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/IToolBehaviorProvider.java
index 1c302e8b..c274f2b4 100644
--- a/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/IToolBehaviorProvider.java
+++ b/plugins/org.eclipse.graphiti/src/org/eclipse/graphiti/tb/IToolBehaviorProvider.java
@@ -1,7 +1,7 @@
/*******************************************************************************
* <copyright>
*
- * Copyright (c) 2005, 2014 SAP AG.
+ * Copyright (c) 2005, 2017 SAP AG.
* 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
@@ -16,6 +16,7 @@
* fvelasco - Bug 323349 - Enable external invocation of features
* mwenz - Bug 428068 - Automatically unselect a tool entry in palette like 'connection creation' after execution
* mwenz - Bug 434458 - Connections don't support Color decorators
+ * mwenz - Bug 520392 - Hard coded error message when entering an empty string in direct editing
* </copyright>
*
*******************************************************************************/
@@ -25,7 +26,9 @@ import java.awt.Polygon;
import org.eclipse.graphiti.DiagramScrollingBehavior;
import org.eclipse.graphiti.IExecutionInfo;
+import org.eclipse.graphiti.features.IDirectEditingFeature;
import org.eclipse.graphiti.features.context.ICustomContext;
+import org.eclipse.graphiti.features.context.IDirectEditingContext;
import org.eclipse.graphiti.features.context.IDoubleClickContext;
import org.eclipse.graphiti.features.context.IPictogramElementContext;
import org.eclipse.graphiti.features.context.ISingleClickContext;
@@ -466,4 +469,20 @@ public interface IToolBehaviorProvider {
* @since 0.11
*/
public boolean isStayActiveAfterExecution(IConnectionCreationToolEntry connectionCreationToolEntry);
+
+ /**
+ * Returns the title of the popup that appears when a user provides an
+ * invalid input for direct editing. The default implementation returns 'Can
+ * not edit value'.
+ *
+ * @param feature
+ * The {@link IDirectEditingFeature} that was invoked
+ * @param context
+ * The {@link IDirectEditingContext} that was used.
+ * @return A {@link String} representing the title of the popup to present
+ * to the user.
+ * @since 0.15
+ */
+ public String getDirectEditingInvalidNotificationTitle(IDirectEditingFeature feature,
+ IDirectEditingContext context);
}

Back to the top