Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2013-02-26 15:32:48 +0000
committercletavernie2013-02-26 15:32:48 +0000
commit26a8f083864922a834a36156cb78e1c08dd867b5 (patch)
tree8602a63dab6f67be6bfe551583d5f295d185e755
parentb793bb04f17296d7059fdb6d07dba86290005556 (diff)
downloadorg.eclipse.papyrus-26a8f083864922a834a36156cb78e1c08dd867b5.tar.gz
org.eclipse.papyrus-26a8f083864922a834a36156cb78e1c08dd867b5.tar.xz
org.eclipse.papyrus-26a8f083864922a834a36156cb78e1c08dd867b5.zip
401109: [PageManager] Deleting an element which contains an opened page leads to critical model corruption
https://bugs.eclipse.org/bugs/show_bug.cgi?id=401109
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageAdvice.java10
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageEditHelper.java10
-rw-r--r--plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/RemovePageHelper.java7
-rw-r--r--plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/plugin.xml12
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringBlockDeleteHelperAdvice.java2
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringDataTypeDeleteHelperAdvice.java2
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringPartEditHelperAdvice.java2
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringReferenceEditHelperAdvice.java2
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringValueEditHelperAdvice.java2
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/GeneralizationHelperAdvice.java2
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/DeleteViewDuringMoveHelperAdvice.java2
-rw-r--r--plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/PropertyHelperAdvice.java2
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/helper/advice/AssociationEditHelperAdvice.java2
-rw-r--r--plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/stereotype/helper/advice/BlockEditHelperAdvice.java2
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/DestroyElementPapyrusCommand.java27
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/ModelCreationCommandBase.java13
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/draw2d/SplitEllipseLayout.java60
17 files changed, 72 insertions, 87 deletions
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageAdvice.java b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageAdvice.java
index f479e223006..21894ef9909 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageAdvice.java
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageAdvice.java
@@ -14,24 +14,20 @@ package org.eclipse.papyrus.infra.emf.advice;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyDependentsRequest;
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
/**
- * An EditAdviceHelper which applies to all Papyrus page identifiers (i.e. Tables, Diagrams, ...)
+ * An EditHelperAdvice which applies to all Papyrus page identifiers (i.e. Tables, Diagrams, ...)
* When a page identifier object is deleted, the associated page is removed
*
+ * This advice is used when an Object containing a page is deleted
+ *
* @author Camille Letavernier
*
*/
public class DeletePageAdvice extends AbstractEditHelperAdvice {
@Override
- protected ICommand getBeforeDestroyDependentsCommand(DestroyDependentsRequest request) {
- return null;
- }
-
- @Override
public ICommand getBeforeDestroyElementCommand(DestroyElementRequest request) {
final EObject objectToDestroy = request.getElementToDestroy();
if(objectToDestroy == null) {
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageEditHelper.java b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageEditHelper.java
index 305f8b47922..8819b05bcab 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageEditHelper.java
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/DeletePageEditHelper.java
@@ -17,7 +17,15 @@ import org.eclipse.gmf.runtime.common.core.command.ICommand;
import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelper;
import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-
+/**
+ * An EditHelper which applies to all Papyrus page identifiers (i.e. Tables, Diagrams, ...)
+ * When a page identifier object is deleted, the associated page is removed
+ *
+ * This EditHelper will be called when a Page is deleted
+ *
+ * @author Camille Letavernier
+ *
+ */
public class DeletePageEditHelper extends AbstractEditHelper {
@Override
diff --git a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/RemovePageHelper.java b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/RemovePageHelper.java
index 0a2903cb015..2f55fda2fea 100644
--- a/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/RemovePageHelper.java
+++ b/plugins/infra/emf/org.eclipse.papyrus.infra.emf/src/org/eclipse/papyrus/infra/emf/advice/RemovePageHelper.java
@@ -23,7 +23,12 @@ import org.eclipse.papyrus.infra.core.sasheditor.contentprovider.IPageManager;
import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject;
-
+/**
+ * A Helper to build the command used to remove the page associated to the destroyed element
+ *
+ * @author Camille Letavernier
+ *
+ */
public class RemovePageHelper {
public static ICommand getRemovePageCommand(final TransactionalEditingDomain editingDomain, final EObject elementToDestroy) {
diff --git a/plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/plugin.xml b/plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/plugin.xml
index 670bf03ced2..215c87f4c6a 100644
--- a/plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/plugin.xml
+++ b/plugins/infra/table/org.eclipse.papyrus.infra.table.modelexplorer/plugin.xml
@@ -4,18 +4,6 @@
<plugin>
<!-- we provide a new navigator content for the tables. To be called, this navigator content should have an id beginning with org.eclipse.papyrus.views.modelexplorer.* -->
<extension point="org.eclipse.ui.handlers">
- <handler class="org.eclipse.papyrus.infra.table.modelexplorer.handlers.DeleteTableHandler" commandId="org.eclipse.ui.edit.delete">
- <activeWhen>
- <or>
- <with variable="selection">
- <and>
- <test forcePluginActivation="true" property="org.eclipse.papyrus.table.modelexplorer.tester.isTable" value="true">
- </test>
- </and>
- </with>
- </or>
- </activeWhen>
- </handler>
<handler class="org.eclipse.papyrus.infra.table.modelexplorer.handlers.DuplicateTableHandler" commandId="org.eclipse.papyrus.views.modelexplorer.duplicate.command">
<activeWhen>
<and>
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringBlockDeleteHelperAdvice.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringBlockDeleteHelperAdvice.java
index 52b552a4359..9c781c87804 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringBlockDeleteHelperAdvice.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringBlockDeleteHelperAdvice.java
@@ -69,6 +69,8 @@ public class DeleteViewDuringBlockDeleteHelperAdvice extends AbstractEditHelperA
if(!(viewsToDestroy.isEmpty())) {
DestroyDependentsRequest req = new DestroyDependentsRequest(request.getEditingDomain(), elementToEdit, false);
+ req.setClientContext(request.getClientContext());
+ req.addParameters(request.getParameters());
return req.getDestroyDependentsCommand(viewsToDestroy);
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringDataTypeDeleteHelperAdvice.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringDataTypeDeleteHelperAdvice.java
index 1e01da80d4c..df14842fb93 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringDataTypeDeleteHelperAdvice.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringDataTypeDeleteHelperAdvice.java
@@ -65,6 +65,8 @@ public class DeleteViewDuringDataTypeDeleteHelperAdvice extends AbstractEditHelp
if(!(viewsToDestroy.isEmpty())) {
DestroyDependentsRequest req = new DestroyDependentsRequest(request.getEditingDomain(), elementToEdit, false);
+ req.setClientContext(request.getClientContext());
+ req.addParameters(request.getParameters());
return req.getDestroyDependentsCommand(viewsToDestroy);
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringPartEditHelperAdvice.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringPartEditHelperAdvice.java
index 02d624debf7..1a977f16629 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringPartEditHelperAdvice.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringPartEditHelperAdvice.java
@@ -69,6 +69,8 @@ public class DeleteViewDuringPartEditHelperAdvice extends AbstractEditHelperAdvi
if(!viewsToDestroy.isEmpty()) {
DestroyDependentsRequest ddr = new DestroyDependentsRequest(request.getEditingDomain(), request.getElementToEdit(), false);
+ ddr.setClientContext(request.getClientContext());
+ ddr.addParameters(request.getParameters());
ICommand destroyViewsCommand = ddr.getDestroyDependentsCommand(viewsToDestroy);
setCommand = CompositeCommand.compose(setCommand, destroyViewsCommand);
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringReferenceEditHelperAdvice.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringReferenceEditHelperAdvice.java
index 59d1c06613f..efb101ee9f3 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringReferenceEditHelperAdvice.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringReferenceEditHelperAdvice.java
@@ -69,6 +69,8 @@ public class DeleteViewDuringReferenceEditHelperAdvice extends AbstractEditHelpe
if(!viewsToDestroy.isEmpty()) {
DestroyDependentsRequest ddr = new DestroyDependentsRequest(request.getEditingDomain(), request.getElementToEdit(), false);
+ ddr.setClientContext(request.getClientContext());
+ ddr.addParameters(request.getParameters());
ICommand destroyViewsCommand = ddr.getDestroyDependentsCommand(viewsToDestroy);
setCommand = CompositeCommand.compose(setCommand, destroyViewsCommand);
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringValueEditHelperAdvice.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringValueEditHelperAdvice.java
index 0269c57bab8..a1b0edbc020 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringValueEditHelperAdvice.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/DeleteViewDuringValueEditHelperAdvice.java
@@ -71,6 +71,8 @@ public class DeleteViewDuringValueEditHelperAdvice extends AbstractEditHelperAdv
if(!viewsToDestroy.isEmpty()) {
DestroyDependentsRequest ddr = new DestroyDependentsRequest(request.getEditingDomain(), request.getElementToEdit(), false);
+ ddr.setClientContext(request.getClientContext());
+ ddr.addParameters(request.getParameters());
ICommand destroyViewsCommand = ddr.getDestroyDependentsCommand(viewsToDestroy);
setCommand = CompositeCommand.compose(setCommand, destroyViewsCommand);
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/GeneralizationHelperAdvice.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/GeneralizationHelperAdvice.java
index 6ac8f60e467..f7e48e2b1ac 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/GeneralizationHelperAdvice.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.blockdefinition/src/org/eclipse/papyrus/sysml/diagram/blockdefinition/helper/advice/GeneralizationHelperAdvice.java
@@ -52,6 +52,8 @@ public class GeneralizationHelperAdvice extends AbstractEditHelperAdvice {
if(!viewsToDestroy.isEmpty()) {
DestroyDependentsRequest ddr = new DestroyDependentsRequest(request.getEditingDomain(), request.getRelationship(), false);
+ ddr.setClientContext(request.getClientContext());
+ ddr.addParameters(request.getParameters());
return ddr.getDestroyDependentsCommand(viewsToDestroy);
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/DeleteViewDuringMoveHelperAdvice.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/DeleteViewDuringMoveHelperAdvice.java
index 7f3841eade4..49e2188bf80 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/DeleteViewDuringMoveHelperAdvice.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/DeleteViewDuringMoveHelperAdvice.java
@@ -63,6 +63,8 @@ public class DeleteViewDuringMoveHelperAdvice extends AbstractEditHelperAdvice {
if(!viewsToDestroy.isEmpty()) {
DestroyDependentsRequest ddr = new DestroyDependentsRequest(request.getEditingDomain(), request.getTargetContainer(), false);
+ ddr.setClientContext(request.getClientContext());
+ ddr.addParameters(request.getParameters());
ICommand destroyViewsCommand = ddr.getDestroyDependentsCommand(viewsToDestroy);
moveCommand = CompositeCommand.compose(moveCommand, destroyViewsCommand);
}
diff --git a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/PropertyHelperAdvice.java b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/PropertyHelperAdvice.java
index c09e834d553..6b8bb96603b 100644
--- a/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/PropertyHelperAdvice.java
+++ b/plugins/sysml/diagram/org.eclipse.papyrus.sysml.diagram.internalblock/src/org/eclipse/papyrus/sysml/diagram/internalblock/helper/advice/PropertyHelperAdvice.java
@@ -98,6 +98,8 @@ public class PropertyHelperAdvice extends AbstractEditHelperAdvice {
if((viewsToDelete != null) && !(viewsToDelete.isEmpty())) {
DestroyDependentsRequest req = new DestroyDependentsRequest(request.getEditingDomain(), elementToEdit, false);
+ req.setClientContext(request.getClientContext());
+ req.addParameters(request.getParameters());
return req.getDestroyDependentsCommand(viewsToDelete);
}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/helper/advice/AssociationEditHelperAdvice.java b/plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/helper/advice/AssociationEditHelperAdvice.java
index 375fc82f7a1..1e37c5367db 100644
--- a/plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/helper/advice/AssociationEditHelperAdvice.java
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/helper/advice/AssociationEditHelperAdvice.java
@@ -254,6 +254,8 @@ public class AssociationEditHelperAdvice extends AbstractEditHelperAdvice {
//return the command to destroy all these views
if(!viewsToDestroy.isEmpty()) {
DestroyDependentsRequest ddr = new DestroyDependentsRequest(request.getEditingDomain(), request.getRelationship(), false);
+ ddr.setClientContext(request.getClientContext());
+ ddr.addParameters(request.getParameters());
ICommand destroyViewsCommand = ddr.getDestroyDependentsCommand(viewsToDestroy);
gmfCommand = CompositeCommand.compose(gmfCommand, destroyViewsCommand);
}
diff --git a/plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/stereotype/helper/advice/BlockEditHelperAdvice.java b/plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/stereotype/helper/advice/BlockEditHelperAdvice.java
index b82ad8a3305..0c69eca800f 100644
--- a/plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/stereotype/helper/advice/BlockEditHelperAdvice.java
+++ b/plugins/sysml/org.eclipse.papyrus.sysml.service.types/src/org/eclipse/papyrus/sysml/service/types/stereotype/helper/advice/BlockEditHelperAdvice.java
@@ -83,6 +83,8 @@ public class BlockEditHelperAdvice extends AbstractEditHelperAdvice {
// Add connector destroy command if needed
if(!(connectorToDelete.isEmpty())) {
DestroyDependentsRequest req = new DestroyDependentsRequest(request.getEditingDomain(), elementToEdit, false);
+ req.setClientContext(request.getClientContext());
+ req.addParameters(request.getParameters());
ICommand connectorDestroyCommand = req.getDestroyDependentsCommand(connectorToDelete);
if(connectorDestroyCommand != null) {
setCommand = CompositeCommand.compose(connectorDestroyCommand, setCommand);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/DestroyElementPapyrusCommand.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/DestroyElementPapyrusCommand.java
deleted file mode 100644
index da3b8b96491..00000000000
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/DestroyElementPapyrusCommand.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2010 Atos Origin
- *
- *
- * 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:
- * Atos Origin - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.uml.diagram.common.commands;
-
-import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest;
-
-/**
- * @deprecated use {@link org.eclipse.papyrus.commands.DestroyElementPapyrusCommand} instead
- */
-public class DestroyElementPapyrusCommand extends org.eclipse.papyrus.commands.DestroyElementPapyrusCommand {
-
- public DestroyElementPapyrusCommand(DestroyElementRequest request) {
- super(request);
- }
-
-}
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/ModelCreationCommandBase.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/ModelCreationCommandBase.java
index 7972aeb4271..a7edf2e9841 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/ModelCreationCommandBase.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/commands/ModelCreationCommandBase.java
@@ -20,7 +20,6 @@ import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gmf.runtime.common.core.command.CommandResult;
import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
@@ -40,15 +39,7 @@ public abstract class ModelCreationCommandBase implements IModelCreationCommand
* @param diResourceSet
*/
public void createModel(final ModelSet modelSet) {
- TransactionalEditingDomain transactionalEditingDomain = modelSet.getTransactionalEditingDomain();
- RecordingCommand command = new RecordingCommand(transactionalEditingDomain) {
-
- @Override
- protected void doExecute() {
- runAsTransaction(modelSet);
- }
- };
- transactionalEditingDomain.getCommandStack().execute(command);
+ runAsTransaction(modelSet);
}
/**
@@ -68,8 +59,6 @@ public abstract class ModelCreationCommandBase implements IModelCreationCommand
@Override
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
-
- CommandResult commandResult = CommandResult.newErrorCommandResult("Error during diagram creation");
EObject model = getRootElement(modelResource);
attachModelToResource(model, modelResource);
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/draw2d/SplitEllipseLayout.java b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/draw2d/SplitEllipseLayout.java
index 2755089d0df..aa65b412c1a 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/draw2d/SplitEllipseLayout.java
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common/src/org/eclipse/papyrus/uml/diagram/common/draw2d/SplitEllipseLayout.java
@@ -62,8 +62,9 @@ public class SplitEllipseLayout extends GravityConstrainedFlowLayout {
}
IFigure parent = container;
// code from super, except for one line
- if(!parent.isVisible())
+ if(!parent.isVisible()) {
return;
+ }
List<?> children = getChildren(parent);
int numChildren = children.size();
Rectangle clientArea = transposer.t(parent.getClientArea());
@@ -157,15 +158,17 @@ public class SplitEllipseLayout extends GravityConstrainedFlowLayout {
// policy.
// this enables to draw scrollbars for the last compartment.
if(getStretchMajorAxis() || i == numChildren - 1) {
- if(amntShrinkHeight > 0 && prefMinSumHeight != 0)
+ if(amntShrinkHeight > 0 && prefMinSumHeight != 0) {
amntShrinkCurrentHeight = (int)((long)(prefHeight - minHeight) * amntShrinkHeight / (prefMinSumHeight));
- else if(amntShrinkHeight < 0 && totalHeight != 0)
+ } else if(amntShrinkHeight < 0 && totalHeight != 0) {
amntShrinkCurrentHeight = (int)(((maxHeight - prefHeight) / prefMaxSumHeight) * amntShrinkHeight);
+ }
}
int width = Math.min(prefWidth, maxWidth);
- if(matchWidth)
+ if(matchWidth) {
width = maxWidth;
+ }
width = Math.max(minWidth, Math.min(clientArea.width, width));
newBounds.width = width;
@@ -181,8 +184,9 @@ public class SplitEllipseLayout extends GravityConstrainedFlowLayout {
break;
}
newBounds.x += adjust;
- if(newBounds.height - amntShrinkCurrentHeight > maxHeight)
+ if(newBounds.height - amntShrinkCurrentHeight > maxHeight) {
amntShrinkCurrentHeight = newBounds.height - maxHeight;
+ }
newBounds.height -= amntShrinkCurrentHeight;
child.setBounds(transposer.t(newBounds));
@@ -192,43 +196,43 @@ public class SplitEllipseLayout extends GravityConstrainedFlowLayout {
totalHeight -= prefHeight;
y += newBounds.height + spacing;
}
- if(minorAlignment==ALIGN_CENTER){
+ if(minorAlignment == ALIGN_CENTER) {
alignVerticalCenter(totalMinHeight, totalHeight, container);
}
-
+
}
- private void alignVerticalCenter(int minHeight, int totalHeight, IFigure container){
+ private void alignVerticalCenter(int minHeight, int totalHeight, IFigure container) {
//calculus of space for y
- int containerHeight= container.getBounds().height;
- int heightContent=0;
+ int containerHeight = container.getBounds().height;
+ int heightContent = 0;
Iterator iter = container.getChildren().iterator();
while(iter.hasNext()) {
IFigure f = (IFigure)iter.next();
- Dimension dim= f.getPreferredSize();
- heightContent=heightContent+dim.height;
+ Dimension dim = f.getPreferredSize();
+ heightContent = heightContent + dim.height;
}
-
-
- int spaceY=(containerHeight-heightContent)/3;
- if(spaceY>0){
+
+
+ int spaceY = (containerHeight - heightContent) / 3;
+ if(spaceY > 0) {
iter = container.getChildren().iterator();
while(iter.hasNext()) {
IFigure f = (IFigure)iter.next();
f.invalidate();
- Dimension dim= f.getPreferredSize();
- Rectangle rec=f.getBounds();
- rec.y=rec.y+spaceY;
- rec.height=dim.height;
+ Dimension dim = f.getPreferredSize();
+ Rectangle rec = f.getBounds();
+ rec.y = rec.y + spaceY;
+ rec.height = dim.height;
f.setBounds(rec);
-
- System.err.println(f);
+
+ //System.err.println(f);
}
}
-
+
}
-
-
+
+
/**
* Gets the list of children after applying the layout options of ignore
* invisible children & reverse children
@@ -239,12 +243,14 @@ public class SplitEllipseLayout extends GravityConstrainedFlowLayout {
Iterator iter = children.iterator();
while(iter.hasNext()) {
IFigure f = (IFigure)iter.next();
- if(!f.isVisible())
+ if(!f.isVisible()) {
iter.remove();
+ }
}
}
- if(isReversed())
+ if(isReversed()) {
Collections.reverse(children);
+ }
return children;
}

Back to the top