package org.freeplane.plugin.workspace.actions; import java.awt.Toolkit; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import org.freeplane.core.ui.EnabledAction; import org.freeplane.plugin.workspace.dnd.IWorkspaceTransferableCreator; import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode; @EnabledAction(checkOnPopup = true) public class NodeCopyAction extends AWorkspaceAction { private static final long serialVersionUID = 1L; public NodeCopyAction() { super("workspace.action.node.copy"); } public void setEnabledFor(AWorkspaceTreeNode node) { if(node.isSystem() || !node.isTransferable() || !(node instanceof IWorkspaceTransferableCreator)) { setEnabled(false); } else{ setEnabled(); } } public void actionPerformed(final ActionEvent e) { AWorkspaceTreeNode targetNode = getNodeFromActionEvent(e); if(targetNode instanceof IWorkspaceTransferableCreator) { Transferable transferable = ((IWorkspaceTransferableCreator) targetNode).getTransferable(); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(transferable, null); } } }