diff options
author | cletavernie | 2013-02-26 15:32:48 +0000 |
---|---|---|
committer | cletavernie | 2013-02-26 15:32:48 +0000 |
commit | 26a8f083864922a834a36156cb78e1c08dd867b5 (patch) | |
tree | 8602a63dab6f67be6bfe551583d5f295d185e755 | |
parent | b793bb04f17296d7059fdb6d07dba86290005556 (diff) | |
download | org.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
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; } |