eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodeLabelProvider.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNodePropertyTester.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TreeNodeDropAdapterAssistant.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/CopyHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/EditHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/MoveTaxonHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/NewClassificationHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/NewTaxonNodeHandler.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/RefreshTreeHandler.java -text
+eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/CopyOperation.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/EditClassificationOperation.java -text
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java -text
label="Refresh"
style="push">
</command>
+ <command
+ commandId="eu.etaxonomy.taxeditor.navigation.command.copyTaxonName"
+ label="Copy"
+ style="push">
+ </command>
</menuContribution>
<menuContribution
locationURI="toolbar:org.eclipse.ui.main.toolbar">
id="org.eclipse.ui.file.refresh"
name="Refresh">
</command>
+ <command
+ defaultHandler="eu.etaxonomy.taxeditor.navigation.navigator.handler.CopyHandler"
+ id="eu.etaxonomy.taxeditor.navigation.command.copyTaxonName"
+ name="Copy">
+ </command>
</extension>
<extension
point="org.eclipse.ui.commands">
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.taxeditor.navigation.navigator.handler;\r
+\r
+import java.util.Iterator;\r
+\r
+import org.eclipse.core.commands.AbstractHandler;\r
+import org.eclipse.core.commands.ExecutionEvent;\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.IHandler;\r
+import org.eclipse.core.commands.common.NotDefinedException;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.jface.viewers.IStructuredSelection;\r
+import org.eclipse.ui.handlers.HandlerUtil;\r
+\r
+import eu.etaxonomy.cdm.model.common.TermBase;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;\r
+import eu.etaxonomy.taxeditor.navigation.NavigationUtil;\r
+import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;\r
+import eu.etaxonomy.taxeditor.navigation.navigator.operation.CopyOperation;\r
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
+import eu.etaxonomy.taxeditor.store.StoreUtil;\r
+\r
+/**\r
+ * @author l.morris\r
+ * @date 23 Jan 2012\r
+ *\r
+ */\r
+public class CopyHandler extends AbstractHandler implements IHandler {\r
+ \r
+ private TaxonNavigator taxonNavigator;\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)\r
+ */\r
+ @Override\r
+ public Object execute(ExecutionEvent event) throws ExecutionException {\r
+ \r
+ taxonNavigator = NavigationUtil.showNavigator();\r
+ \r
+ IStructuredSelection selection = (IStructuredSelection) HandlerUtil\r
+ .getCurrentSelection(event);\r
+\r
+ if(selection.size() == 1) {\r
+ \r
+ Object selectedObject = selection.getFirstElement();\r
+ \r
+ if (selectedObject instanceof TaxonNode) {\r
+ \r
+ try {\r
+ \r
+ AbstractPostOperation operation = new CopyOperation(event.getCommand().getName(), StoreUtil.getUndoContext(),\r
+ (TaxonNode)selectedObject, taxonNavigator);\r
+ \r
+ IStatus status = NavigationUtil.executeOperation(operation);\r
+ \r
+ } catch (NotDefinedException e) {\r
+ NavigationUtil.warn(getClass(), "Command name not set");\r
+ }\r
+ }\r
+ }\r
+ \r
+ \r
+ return null;\r
+ }\r
+\r
+}\r
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.taxeditor.navigation.navigator.operation;\r
+\r
+import org.eclipse.core.commands.ExecutionException;\r
+import org.eclipse.core.commands.operations.IUndoContext;\r
+\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;\r
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;\r
+\r
+import org.eclipse.core.runtime.IAdaptable;\r
+import org.eclipse.core.runtime.IProgressMonitor;\r
+import org.eclipse.core.runtime.IStatus;\r
+import org.eclipse.swt.dnd.Clipboard;\r
+import org.eclipse.swt.dnd.TextTransfer;\r
+import org.eclipse.swt.dnd.Transfer;\r
+\r
+\r
+/**\r
+ * @author l.morris\r
+ * @date 23 Jan 2012\r
+ *\r
+ */\r
+public class CopyOperation extends AbstractPostOperation {\r
+\r
+ /**\r
+ * @param label\r
+ * @param undoContext\r
+ * @param taxon\r
+ * @param postOperationEnabled\r
+ */\r
+ public CopyOperation(String label, IUndoContext undoContext, TaxonNode taxonNode, \r
+ IPostOperationEnabled postOperationEnabled) {\r
+ super(label, undoContext, taxonNode, postOperationEnabled);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ \r
+ String name = taxonNode.getTaxon().getName().getTitleCache();\r
+ \r
+ final Clipboard cb = new Clipboard(null);\r
+ TextTransfer textTransfer = TextTransfer.getInstance();\r
+ Transfer[] transfers = new Transfer[]{textTransfer};\r
+ \r
+ cb.setContents(new Object[]{name}, transfers);\r
+ \r
+ return postExecute(taxonNode); \r
+ //return null;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
+ */\r
+ @Override\r
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
+ throws ExecutionException {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ }\r
+\r
+}\r