Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/CopyInDiagramHandler.java')
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/CopyInDiagramHandler.java27
1 files changed, 26 insertions, 1 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/CopyInDiagramHandler.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/CopyInDiagramHandler.java
index ba4f645aa08..908df94d02b 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/CopyInDiagramHandler.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.menu/src/org/eclipse/papyrus/infra/gmfdiag/menu/handlers/CopyInDiagramHandler.java
@@ -13,17 +13,25 @@
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.menu.handlers;
+import java.util.ArrayList;
import java.util.List;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gef.commands.Command;
+import org.eclipse.gef.commands.CompoundCommand;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart;
+import org.eclipse.gmf.runtime.diagram.ui.render.internal.commands.CopyImageCommand;
+import org.eclipse.gmf.runtime.notation.Diagram;
import org.eclipse.papyrus.commands.wrappers.EMFtoGEFCommandWrapper;
+import org.eclipse.papyrus.commands.wrappers.GMFtoGEFCommandWrapper;
import org.eclipse.papyrus.infra.core.clipboard.PapyrusClipboard;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.DefaultDiagramCopyCommand;
import org.eclipse.papyrus.infra.gmfdiag.common.strategy.IStrategy;
import org.eclipse.papyrus.infra.gmfdiag.common.strategy.paste.IPasteStrategy;
import org.eclipse.papyrus.infra.gmfdiag.common.strategy.paste.PasteStrategyManager;
+import org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramEditPartsUtil;
/**
* Handler for the Copy Action in Diagram
@@ -42,13 +50,30 @@ public class CopyInDiagramHandler extends AbstractGraphicalCommandHandler {
List<IGraphicalEditPart> selectedElements = getSelectedElements();
TransactionalEditingDomain editingDomain = getEditingDomain();
// TODO : select copyStrategy
+ CompoundCommand compoundCommand = new CompoundCommand();
+
DefaultDiagramCopyCommand defaultDiagramCopyCommand = new DefaultDiagramCopyCommand(editingDomain, papyrusClipboard, selectedElements);
+ EMFtoGEFCommandWrapper emFtoGEFCommandWrapper = new EMFtoGEFCommandWrapper(defaultDiagramCopyCommand);
+ compoundCommand.add(emFtoGEFCommandWrapper);
+
+ IDiagramWorkbenchPart activeDiagramWorkbenchPart = DiagramEditPartsUtil.getActiveDiagramWorkbenchPart();
+ Diagram diagram = activeDiagramWorkbenchPart.getDiagram();
+ DiagramEditPart diagramEditPart = activeDiagramWorkbenchPart.getDiagramEditPart();
+ List<Object> selectedElementModels = new ArrayList<Object>();
+ for(IGraphicalEditPart iGraphicalEditPart : selectedElements) {
+ selectedElementModels.add(iGraphicalEditPart.getModel());
+ }
+
+ CopyImageCommand copyImageCommand = new CopyImageCommand("Create image to allow paste on system", diagram, selectedElementModels, diagramEditPart); //$NON-NLS-1$
+ GMFtoGEFCommandWrapper gmFtoGEFCommandWrapper = new GMFtoGEFCommandWrapper(copyImageCommand);
+ compoundCommand.add(gmFtoGEFCommandWrapper);
List<IStrategy> allStrategies = PasteStrategyManager.getInstance().getAllStrategies();
for(IStrategy iStrategy : allStrategies) {
IPasteStrategy iIPasteStrategy = (IPasteStrategy)iStrategy;
iIPasteStrategy.prepare(papyrusClipboard);
}
- return new EMFtoGEFCommandWrapper(defaultDiagramCopyCommand);
+
+ return compoundCommand;
}
}

Back to the top