2010-06-11 30 views
8

Seçilen bir projenin türünü bilmenin bir yolu var mı? Bir J2SE projesi gibi proje türüne bağlı olarak bazı özel eylemler yapmak istiyorum.Netbeans Platform'da proje türünü nasıl alabilirim?

Aşağıda bunu yapmak bulunan tek yoludur: -> aksiyon -

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; 

}} 

cevap

2

basit yeni> conditionaly (Proje) etkin ve hepsi bu.

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

Jirka

İlgili konular