package org.docear.plugin.core.actions;
import java.awt.event.ActionEvent;
import javax.swing.tree.TreePath;
import org.docear.plugin.core.workspace.actions.DocearRemoveRepositoryPathAction;
import org.docear.plugin.core.workspace.node.LiteratureRepositoryPathNode;
import org.freeplane.core.ui.EnabledAction;
import org.freeplane.core.util.LogUtils;
import org.freeplane.plugin.workspace.WorkspaceController;
import org.freeplane.plugin.workspace.actions.AWorkspaceAction;
import org.freeplane.plugin.workspace.components.menu.CheckEnableOnPopup;
import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode;
@CheckEnableOnPopup
@EnabledAction(checkOnNodeChange=true)
public class DocearRemoveRepositoryPathRibbonAction extends AWorkspaceAction {
private static final long serialVersionUID = 1L;
public static final String KEY = "workspace.action.ribbon.remove.repository";
/***********************************************************************************
* CONSTRUCTORS
**********************************************************************************/
public DocearRemoveRepositoryPathRibbonAction() {
super(KEY);
}
@Override
public void setEnabled() {
try {
TreePath path = WorkspaceController.getCurrentModeExtension().getView().getSelectionPath();
AWorkspaceTreeNode node = (AWorkspaceTreeNode) path.getLastPathComponent();
setEnabled(node != null && node instanceof LiteratureRepositoryPathNode);
}
catch(Exception e) {
setEnabled(false);
}
}
@Override
public void actionPerformed(ActionEvent e) {
try {
DocearRemoveRepositoryPathAction action = new DocearRemoveRepositoryPathAction();
TreePath path = WorkspaceController.getCurrentModeExtension().getView().getSelectionPath();
AWorkspaceTreeNode node = (AWorkspaceTreeNode) path.getLastPathComponent();
if (node instanceof LiteratureRepositoryPathNode) {
action.actionPerformed(WorkspaceController.getSelectedProject(node), node);
}
}
catch(NullPointerException ex) {
LogUtils.warn("DocearRemoveRepositoryPathRibbonAction.actionPerformed(): " + ex.getMessage());
}
}
}