package nz.ac.otago.infosci.folderopener; import java.awt.Desktop; import java.io.File; import java.io.IOException; import org.openide.awt.ActionID; import org.openide.awt.ActionReference; import org.openide.awt.ActionRegistration; import org.openide.loaders.DataObject; import org.openide.nodes.Node; import org.openide.util.Exceptions; import org.openide.util.HelpCtx; import org.openide.util.NbBundle.Messages; import org.openide.util.actions.NodeAction; @ActionID( category = "Tools", id = "nz.ac.otago.infosci.folderopener.FolderOpener" ) @ActionRegistration( lazy=false, displayName = "#CTL_FolderOpener" ) //@ActionReference(path = "Loaders/folder/any/Actions", position = 10000, separatorBefore = 9999) @ActionReference(path = "Projects/Actions", position = 10000, separatorBefore = 9999) @Messages("CTL_FolderOpener=Open in File Manager") public final class FileSystem extends NodeAction { public FileSystem() { } @Override protected void performAction(Node[] nodes) { try { DataObject lookup = nodes[0].getLookup().lookup(DataObject.class); String path = lookup.files().iterator().next().getPath(); System.out.println(path); Desktop.getDesktop().open(new File(path)); } catch (IOException ex) { Exceptions.printStackTrace(ex); } } @Override protected boolean enable(Node[] nodes) { return true; } @Override public String getName() { return Bundle.CTL_FolderOpener(); } @Override public HelpCtx getHelpCtx() { return null; } @Override protected boolean asynchronous() { return false; } }