Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/uml/org.eclipse.papyrus.uml.service.types.ui/src/org/eclipse/papyrus/uml/service/types/internal/ui/advice/RoleBindingHelperAdvice.java')
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.service.types.ui/src/org/eclipse/papyrus/uml/service/types/internal/ui/advice/RoleBindingHelperAdvice.java37
1 files changed, 23 insertions, 14 deletions
diff --git a/plugins/uml/org.eclipse.papyrus.uml.service.types.ui/src/org/eclipse/papyrus/uml/service/types/internal/ui/advice/RoleBindingHelperAdvice.java b/plugins/uml/org.eclipse.papyrus.uml.service.types.ui/src/org/eclipse/papyrus/uml/service/types/internal/ui/advice/RoleBindingHelperAdvice.java
index 9da77e64c8d..c21561ea2ac 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.service.types.ui/src/org/eclipse/papyrus/uml/service/types/internal/ui/advice/RoleBindingHelperAdvice.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.service.types.ui/src/org/eclipse/papyrus/uml/service/types/internal/ui/advice/RoleBindingHelperAdvice.java
@@ -1,7 +1,7 @@
/*****************************************************************************
- * Copyright (c) 2010 CEA LIST.
+ * Copyright (c) 2010, 2019 CEA LIST.
+ *
*
- *
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -11,6 +11,7 @@
*
* Contributors:
* Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ * Nicolas FAUVERGUE (CEA LIST) nicolas.fauvergue@cea.fr - Implement approveRequest
*
*****************************************************************************/
package org.eclipse.papyrus.uml.service.types.internal.ui.advice;
@@ -23,11 +24,11 @@ import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
-import org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand;
import org.eclipse.gmf.runtime.emf.type.core.commands.CreateRelationshipCommand;
import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
import org.eclipse.jface.window.Window;
import org.eclipse.papyrus.uml.service.types.internal.ui.dialogs.CollaborationRoleTreeContentProvider;
import org.eclipse.swt.SWT;
@@ -42,6 +43,21 @@ import org.eclipse.uml2.uml.NamedElement;
public class RoleBindingHelperAdvice extends AbstractEditHelperAdvice {
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice#approveRequest(org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest)
+ */
+ @Override
+ public boolean approveRequest(final IEditCommandRequest request) {
+ if (request instanceof CreateRelationshipRequest) {
+ if (((CreateRelationshipRequest) request).getSource() instanceof CollaborationUse && null == ((CreateRelationshipRequest) request).getTarget()) {
+ return false;
+ }
+ }
+ return super.approveRequest(request);
+ }
+
@Override
protected ICommand getAfterCreateRelationshipCommand(CreateRelationshipRequest request) {
@@ -51,17 +67,13 @@ public class RoleBindingHelperAdvice extends AbstractEditHelperAdvice {
final CollaborationUse source = (CollaborationUse) reqSource;
final Dependency dependency = (Dependency) request.getNewElement();
final NamedElement target = (NamedElement) request.getTarget();
- if ((target == null)) {
- return UnexecutableCommand.INSTANCE;
- }
-
return new CreateRelationshipCommand(request) {
@Override
protected CommandResult doExecuteWithResult(IProgressMonitor progressMonitor, IAdaptable info) throws ExecutionException {
if (!canExecute()) {
- throw new ExecutionException("Invalid arguments in create link command");
+ throw new ExecutionException("Invalid arguments in create link command"); //$NON-NLS-1$
}
@@ -72,8 +84,8 @@ public class RoleBindingHelperAdvice extends AbstractEditHelperAdvice {
try {
// Set dialog parameters
- dialog.setTitle("Collaboration role binding");
- dialog.setMessage("Select the role to bind:");
+ dialog.setTitle("Collaboration role binding"); //$NON-NLS-1$
+ dialog.setMessage("Select the role to bind:"); //$NON-NLS-1$
dialog.setAllowMultiple(false);
dialog.setHelpAvailable(false);
// The source CollaborationUse is set as input for the selection dialog,
@@ -94,7 +106,7 @@ public class RoleBindingHelperAdvice extends AbstractEditHelperAdvice {
ConnectableElement roleToBind = (ConnectableElement) dialog.getFirstResult();
// Create a Dependency (the binding) between selected role and a ConnectableElement
// (the target)
- dependency.setName("binding_" + roleToBind.getName() + "_" + target.getName());
+ dependency.setName("binding_" + roleToBind.getName() + "_" + target.getName()); //$NON-NLS-1$ //$NON-NLS-2$
source.getRoleBindings().add(dependency);
@@ -110,9 +122,6 @@ public class RoleBindingHelperAdvice extends AbstractEditHelperAdvice {
}
return null;
-
}
-
-
}

Back to the top