/** * 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.components.menu.CheckEnableOnPopup; import org.freeplane.plugin.workspace.model.WorkspaceModel; import org.freeplane.plugin.workspace.model.project.AWorkspaceProject; @CheckEnableOnPopup @EnabledAction(checkOnNodeChange=true) public class WorkspaceRemoveProjectAction extends AWorkspaceAction { public static final String KEY = "workspace.action.project.remove"; private static final long serialVersionUID = -8965412338727545850L; /*********************************************************************************** * CONSTRUCTORS **********************************************************************************/ public WorkspaceRemoveProjectAction() { super(KEY); } /*********************************************************************************** * METHODS **********************************************************************************/ @Override public void setEnabled() { if(WorkspaceController.getSelectedProject() == null) { setEnabled(false); } else { setEnabled(true); } } /*********************************************************************************** * REQUIRED METHODS FOR INTERFACES **********************************************************************************/ public void actionPerformed(ActionEvent e) { AWorkspaceProject project = WorkspaceController.getSelectedProject(); if(project == null) { return; } //WORKSPACE - todo: dialog that asks for physical deletion as well int option = JOptionPane.showConfirmDialog( UITools.getFrame() ,TextUtils.format("workspace.action.node.remove.confirm.text", project.getModel().getRoot().getName()) ,TextUtils.getRawText("workspace.action.node.remove.confirm.title") ,JOptionPane.YES_NO_OPTION ,JOptionPane.QUESTION_MESSAGE ); if(option == JOptionPane.YES_OPTION) { //AWorkspaceTreeNode targetNode = getNodeFromActionEvent(e); WorkspaceModel model = WorkspaceController.getCurrentModel(); //model.removeProject(model.getProject(targetNode.getModel())); model.removeProject(project); model.getRoot().getModel().requestSave(); } } }