Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CopyHandler.java')
-rw-r--r--plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CopyHandler.java43
1 files changed, 30 insertions, 13 deletions
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CopyHandler.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CopyHandler.java
index 93240f017a7..beb38f27133 100644
--- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CopyHandler.java
+++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/handler/CopyHandler.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2011 CEA LIST.
+ * Copyright (c) 2011, 2014 CEA LIST and others.
*
*
* All rights reserved. This program and the accompanying materials
@@ -13,6 +13,7 @@
*****************************************************************************/
package org.eclipse.papyrus.views.modelexplorer.handler;
+import java.util.Collection;
import java.util.List;
import org.eclipse.emf.common.command.Command;
@@ -30,25 +31,40 @@ import org.eclipse.papyrus.infra.gmfdiag.common.strategy.paste.PasteStrategyMana
public class CopyHandler extends AbstractCommandHandler {
/**
- *
- * @see org.eclipse.papyrus.views.modelexplorer.handler.AbstractCommandHandler#getCommand()
- *
+ * Check if the selection allow copy
+ * @param selectedElements
* @return
*/
- @Override
- protected Command getCommand() {
- List<EObject> selection = getSelectedElements();
- TransactionalEditingDomain editingDomain = getEditingDomain();
- PapyrusClipboard<Object> papyrusClipboard = PapyrusClipboard.getNewInstance();
-
- DefaultCopyCommand defaultCopyCommand = new DefaultCopyCommand(editingDomain, papyrusClipboard, selection); // TODO : select copyStrategy
+ public static boolean isCopyEnabled(Collection<EObject> selectedElements) {
+ return !selectedElements.isEmpty();
+ }
+ /**
+ * Construct copy command from the selection
+ * @param editingDomain
+ * @param selectedElements
+ * @return
+ */
+ public static Command buildCopyCommand(TransactionalEditingDomain editingDomain, Collection<EObject> selectedElements) {
+ PapyrusClipboard<Object> papyrusClipboard = PapyrusClipboard.getNewInstance();
+ DefaultCopyCommand defaultCopyCommand = new DefaultCopyCommand(editingDomain, papyrusClipboard, selectedElements);
List<IStrategy> allStrategies = PasteStrategyManager.getInstance().getAllStrategies();
for(IStrategy iStrategy : allStrategies) {
IPasteStrategy iPasteStrategy = (IPasteStrategy)iStrategy;
iPasteStrategy.prepare(papyrusClipboard);
}
- return defaultCopyCommand;
+ return defaultCopyCommand;
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.views.modelexplorer.handler.AbstractCommandHandler#getCommand()
+ *
+ * @return
+ */
+ @Override
+ protected Command getCommand() {
+ return buildCopyCommand(getEditingDomain(),getSelectedElements());
}
/* (non-Javadoc)
@@ -56,9 +72,10 @@ public class CopyHandler extends AbstractCommandHandler {
*/
@Override
protected boolean computeEnabled() { // copy is enable as long as there is an EObject to put in the Clipboard
- return !getSelectedElements().isEmpty();
+ return isCopyEnabled(getSelectedElements());
}
+
/* (non-Javadoc)
* @see org.eclipse.papyrus.views.modelexplorer.handler.AbstractCommandHandler#setEnabled(java.lang.Object)
*/

Back to the top