How do I identify the "main project"?
Project mainProject = org.netbeans.api.project.ui.OpenProjects.getDefault().getMainProject();
For this, you need to declare dependencies on Project UI API, Project API and File System API.
As an example usage of the above line of code, here is an action that display a JOptionPane containing the path to the main project, if a project is selected:
public final class ShowMainProjectAction extends CookieAction {
protected void performAction(Node[] activatedNodes) {
String projectPath = OpenProjects.getDefault().getMainProject().getProjectDirectory().getPath();
JOptionPane.showMessageDialog(null, projectPath);
}
protected int mode() {
return CookieAction.MODE_EXACTLY_ONE;
}
public String getName() {
return NbBundle.getMessage(ShowMainProjectAction.class, "CTL_ShowMainProjectAction");
}
protected Class[] cookieClasses() {
return new Class[]{Project.class};
}
@Override
protected void initialize() {
super.initialize();
// see org.openide.util.actions.SystemAction.iconResource() Javadoc for more details
putValue("noIconInMenu", Boolean.TRUE);
}
public HelpCtx getHelpCtx() {
return HelpCtx.DEFAULT_HELP;
}
@Override
protected boolean asynchronous() {
return false;
}
}