|
org.netbeans.modules.projectapi/1 1.31.1 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | |||||||||
@Retention(value=SOURCE)
@Target(value={TYPE,METHOD})
public @interface ProjectServiceProvider
Like LookupProvider but registers a single object into a project's lookup.
An annotated class must have one public constructor, which may take Project and/or Lookup parameters.
An annotated factory method must have similar parameters.
public final class TestAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.err.println("===> running action");
for (Project p : OpenProjects.getDefault().getOpenProjects()) {
Service s = p.getLookup().lookup(Service.class);
if (s != null) {
System.err.println("===> got a service: " + s.m());
} else {
System.err.println("===> nothing for " + p);
}
}
}
public static abstract class Service {
static {
System.err.println("===> loading Service");
}
public abstract String m();
}
@ProjectServiceProvider(service=Service.class,
projectType="org-netbeans-modules-java-j2seproject")
public static class ServiceImpl extends Service {
static {
System.err.println("===> loading ServiceImpl");
}
private final Project p;
public ServiceImpl(Project p) {
this.p = p;
System.err.println("===> new ServiceImpl on " + p);
}
public String m() {
return ProjectUtils.getInformation(p).getDisplayName();
}
}
}
| Required Element Summary | |
|---|---|
Class<?>[] |
service
Service class(es) to be registered. |
| Optional Element Summary | |
|---|---|
String[] |
projectType
Token(s) denoting one or more project types, e.g. |
LookupProvider.Registration.ProjectType[] |
projectTypes
Alternate registration of project types with positions. |
| Element Detail |
|---|
public abstract Class<?>[] service
public abstract String[] projectType
"org-netbeans-modules-java-j2seproject"
public abstract LookupProvider.Registration.ProjectType[] projectTypes
projectType() (or both).
|
org.netbeans.modules.projectapi/1 1.31.1 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT | |||||||||