Java 如何在Netbeans平台上获取项目类型?
有没有办法知道所选项目的类型?我想根据项目类型做一些具体的操作,比如J2SE项目 以下是我发现的唯一方法:Java 如何在Netbeans平台上获取项目类型?,java,netbeans,netbeans-platform,Java,Netbeans,Netbeans Platform,有没有办法知道所选项目的类型?我想根据项目类型做一些具体的操作,比如J2SE项目 以下是我发现的唯一方法: public final class MyAction extends CookieAction { @Override public boolean isEnabled() { if(this.getActivatedNodes() == null || this.getActivatedNodes().length != 1) { return false
public final class MyAction extends CookieAction {
@Override
public boolean isEnabled() {
if(this.getActivatedNodes() == null || this.getActivatedNodes().length != 1) {
return false;
}
Lookup lookup = this.getActivatedNodes()[0].getLookup();
// gets the selected project
Project currentProject = lookup.lookup(Project.class);
// checks if the selected project is a J2SE Project or a Maven Project
if(currentProject != null && (currentProject.getClass().getSimpleName().equals("J2SEProject")
|| currentProject.getClass().getSimpleName().equals("NbMavenProjectImpl"))) {
return true;
}
return false;
}}
简单新建->操作->有条件启用(项目),就这样
package project.action;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import org.netbeans.api.project.Project;
import org.openide.awt.ActionRegistration;
import org.openide.awt.ActionReference;
import org.openide.awt.ActionReferences;
import org.openide.awt.ActionID;
import org.openide.util.NbBundle.Messages;
@ActionID(category = "Build",
id = "project.action.SomeAction")
@ActionRegistration(displayName = "#CTL_SomeAction")
@ActionReferences({
@ActionReference(path = "Menu/File", position = 0)
})
@Messages("CTL_SomeAction=SomeAction")
public final class SomeAction implements ActionListener {
private final Project context;
public SomeAction(Project context) { // this is enable !!
this.context = context;
}
public void actionPerformed(ActionEvent ev) {
// TODO use context
}
}
吉尔卡