/** * author: Marcel Genzmehr * 10.11.2011 */ package org.freeplane.plugin.workspace.actions; import java.awt.event.ActionEvent; import javax.swing.JOptionPane; import org.freeplane.core.ui.EnabledAction; import org.freeplane.core.ui.components.UITools; import org.freeplane.core.util.TextUtils; import org.freeplane.plugin.workspace.WorkspaceController; import org.freeplane.plugin.workspace.WorkspaceUtils; import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode; import org.freeplane.plugin.workspace.nodes.DefaultFileNode; @EnabledAction(checkOnPopup = true) public class NodeRemoveAction extends AWorkspaceAction { private static final long serialVersionUID = -8965412338727545850L; /*********************************************************************************** * CONSTRUCTORS **********************************************************************************/ public NodeRemoveAction() { super("workspace.action.node.remove"); } /*********************************************************************************** * METHODS **********************************************************************************/ public void setEnabledFor(AWorkspaceTreeNode node) { if(node.isSystem() || !node.isTransferable() || node instanceof DefaultFileNode) { setEnabled(false); } else{ setEnabled(); } } /*********************************************************************************** * REQUIRED METHODS FOR INTERFACES **********************************************************************************/ public void actionPerformed(ActionEvent e) { int option = JOptionPane.showConfirmDialog( UITools.getFrame() ,TextUtils.format("workspace.action.node.remove.confirm.text", getNodeFromActionEvent(e).getName()) ,TextUtils.getRawText("workspace.action.node.remove.confirm.title") ,JOptionPane.YES_NO_OPTION ,JOptionPane.QUESTION_MESSAGE ); if(option == JOptionPane.YES_OPTION) { WorkspaceUtils.getModel().removeNodeFromParent(getNodeFromActionEvent(e)); WorkspaceUtils.saveCurrentConfiguration(); WorkspaceController.getController().refreshWorkspace(); } } }