package org.freeplane.plugin.workspace.actions; import java.awt.event.ActionEvent; import java.io.File; import org.freeplane.core.util.Compat; import org.freeplane.core.util.LogUtils; import org.freeplane.features.mode.Controller; import org.freeplane.plugin.workspace.WorkspaceUtils; import org.freeplane.plugin.workspace.io.IFileSystemRepresentation; import org.freeplane.plugin.workspace.model.AWorkspaceTreeNode; import org.freeplane.plugin.workspace.nodes.WorkspaceRoot; public class NodeOpenLocationAction extends AWorkspaceAction { /** * */ private static final long serialVersionUID = 1L; public NodeOpenLocationAction() { super("workspace.action.node.open.location"); } public void actionPerformed(ActionEvent event) { AWorkspaceTreeNode targetNode = getNodeFromActionEvent(event); if(targetNode instanceof IFileSystemRepresentation) { openFolder(((IFileSystemRepresentation) targetNode).getFile()); } else if(targetNode instanceof WorkspaceRoot) { openFolder(WorkspaceUtils.getWorkspaceBaseFile()); } } protected void openFolder(File folder) { try { Controller.getCurrentController().getViewController().openDocument(Compat.fileToUrl(folder)); } catch (Exception e) { LogUtils.warn(e); } } }