Как получить тип проекта на платформе Netbeans?

Есть ли способ узнать тип выбранного проекта? Я хотел бы выполнить некоторые конкретные действия в зависимости от типа проекта, такого как проект J2SE.

Ниже приведен единственный способ, который я нашел для этого:

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;

}}

person Fabio    schedule 11.06.2010    source источник


Ответы (1)


arrow_upward
2
arrow_downward

простой новый -> действие -> условно включено (проект) и все.

 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
}
}

Йирка

person user1722245    schedule 16.10.2012