diff options
author | Michael Wenz | 2017-12-01 15:08:08 +0000 |
---|---|---|
committer | Michael Wenz | 2017-12-01 15:08:08 +0000 |
commit | 6ae5a32b7adbf2f1d3396ada296ddabb5978b290 (patch) | |
tree | 5c3371911e69f9105d6182790c88beb992c52b32 | |
parent | 2c8bfbe7e355d5c650c2182f752d53b916fd0a15 (diff) | |
download | org.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
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); } |