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.WorkspaceController; import org.freeplane.plugin.workspace.WorkspaceUtils; import org.freeplane.plugin.workspace.dnd.IWorkspaceTransferableCreator; import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode; @EnabledAction(checkOnPopup = true) public class NodeCutAction extends AWorkspaceAction { private static final long serialVersionUID = 1L; public NodeCutAction() { super("workspace.action.node.cut"); } public void setEnabledFor(AWorkspaceTreeNode node) { if(node.isSystem() || !node.isTransferable() || !(node instanceof IWorkspaceTransferableCreator)) { setEnabled(false); } else{ setEnabled(); } // //FIXME: this function is not available yet // setEnabled(false); } public void actionPerformed(final ActionEvent event) { //TODO: IMPLEMENTATION MISSING AWorkspaceTreeNode targetNode = getNodeFromActionEvent(event); WorkspaceUtils.getModel().cutNodeFromParent(targetNode); if(targetNode instanceof IWorkspaceTransferableCreator) { Transferable transferable = ((IWorkspaceTransferableCreator) targetNode).getTransferable(); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(transferable, null); } WorkspaceUtils.getModel().cutNodeFromParent(targetNode); WorkspaceUtils.saveCurrentConfiguration(); WorkspaceController.getController().refreshWorkspace(); } }