This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 149136
Collapse All | Expand All

(-)a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/LibrariesNodeFactory.java (-2 / +7 lines)
Lines 61-66 Link Here
61
import org.netbeans.spi.project.support.ant.ReferenceHelper;
61
import org.netbeans.spi.project.support.ant.ReferenceHelper;
62
import org.netbeans.spi.project.ui.support.NodeFactory;
62
import org.netbeans.spi.project.ui.support.NodeFactory;
63
import org.netbeans.spi.project.ui.support.NodeList;
63
import org.netbeans.spi.project.ui.support.NodeList;
64
import org.netbeans.spi.project.ui.support.RegisteredNodeFactory;
64
import org.openide.nodes.Node;
65
import org.openide.nodes.Node;
65
import org.openide.util.ChangeSupport;
66
import org.openide.util.ChangeSupport;
66
import org.openide.util.NbBundle;
67
import org.openide.util.NbBundle;
Lines 70-78 Link Here
70
 * @author mkleint
71
 * @author mkleint
71
 */
72
 */
72
public final class LibrariesNodeFactory implements NodeFactory {
73
public final class LibrariesNodeFactory implements NodeFactory {
74
75
@RegisteredNodeFactory(projectType="org-netbeans-modules-java-j2seproject", position=300)
76
    static NodeFactory factory() {
77
        return new LibrariesNodeFactory(42);
78
    }
73
    
79
    
74
    /** Creates a new instance of LibrariesNodeFactory */
80
    LibrariesNodeFactory(int whatever) {
75
    public LibrariesNodeFactory() {
76
    }
81
    }
77
82
78
    public NodeList createNodes(Project p) {
83
    public NodeList createNodes(Project p) {
(-)a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/SourceNodeFactory.java (+2 lines)
Lines 60-65 Link Here
60
import org.netbeans.spi.java.project.support.ui.PackageView;
60
import org.netbeans.spi.java.project.support.ui.PackageView;
61
import org.netbeans.spi.project.ui.support.NodeFactory;
61
import org.netbeans.spi.project.ui.support.NodeFactory;
62
import org.netbeans.spi.project.ui.support.NodeList;
62
import org.netbeans.spi.project.ui.support.NodeList;
63
import org.netbeans.spi.project.ui.support.RegisteredNodeFactory;
63
import org.openide.filesystems.FileObject;
64
import org.openide.filesystems.FileObject;
64
import org.openide.nodes.FilterNode;
65
import org.openide.nodes.FilterNode;
65
import org.openide.nodes.Node;
66
import org.openide.nodes.Node;
Lines 70-75 Link Here
70
 *
71
 *
71
 * @author mkleint
72
 * @author mkleint
72
 */
73
 */
74
@RegisteredNodeFactory(projectType="org-netbeans-modules-java-j2seproject", position=200)
73
public final class SourceNodeFactory implements NodeFactory {
75
public final class SourceNodeFactory implements NodeFactory {
74
    public SourceNodeFactory() {
76
    public SourceNodeFactory() {
75
    }
77
    }
(-)a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/resources/layer.xml (-9 lines)
Lines 131-145 Link Here
131
                </folder>
131
                </folder>
132
            </folder>
132
            </folder>
133
            
133
            
134
            <folder name="Nodes">
135
                <file name="org-netbeans-modules-java-j2seproject-ui-SourceNodeFactory.instance">
136
                    <attr name="position" intvalue="200"/>
137
                </file>
138
                <file name="org-netbeans-modules-java-j2seproject-ui-LibrariesNodeFactory.instance">
139
                    <attr name="position" intvalue="300"/>
140
                </file>
141
            </folder>
142
            
143
            <folder name="Lookup"/>
134
            <folder name="Lookup"/>
144
            
135
            
145
        </folder>
136
        </folder>
(-)a/projectuiapi/nbproject/project.properties (-1 / +1 lines)
Lines 43-46 Link Here
43
is.autoload=true
43
is.autoload=true
44
javadoc.arch=${basedir}/arch.xml
44
javadoc.arch=${basedir}/arch.xml
45
javadoc.apichanges=${basedir}/apichanges.xml
45
javadoc.apichanges=${basedir}/apichanges.xml
46
46
cp.extra=${nb_all}/libs.javacapi/external/javac-api-nb-7.0-b07.jar
(-)a/projectuiapi/src/org/netbeans/modules/project/uiapi/RegisteredNodeFactoryProcessor.java (+80 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of either the GNU
7
 * General Public License Version 2 only ("GPL") or the Common
8
 * Development and Distribution License("CDDL") (collectively, the
9
 * "License"). You may not use this file except in compliance with the
10
 * License. You can obtain a copy of the License at
11
 * http://www.netbeans.org/cddl-gplv2.html
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
 * specific language governing permissions and limitations under the
14
 * License.  When distributing the software, include this License Header
15
 * Notice in each file and include the License file at
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
17
 * particular file as subject to the "Classpath" exception as provided
18
 * by Sun in the GPL Version 2 section of the License file that
19
 * accompanied this code. If applicable, add the following below the
20
 * License Header, with the fields enclosed by brackets [] replaced by
21
 * your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * If you wish your version of this file to be governed by only the CDDL
25
 * or only the GPL Version 2, indicate your decision by adding
26
 * "[Contributor] elects to include this software in this distribution
27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
28
 * single choice of license, a recipient has the option to distribute
29
 * your version of this file under either the CDDL, the GPL Version 2 or
30
 * to extend the choice of license to its licensees as provided above.
31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
32
 * Version 2 license, then the option applies only if the new code is
33
 * made subject to such option by the copyright holder.
34
 *
35
 * Contributor(s):
36
 *
37
 * Portions Copyrighted 2008 Sun Microsystems, Inc.
38
 */
39
40
package org.netbeans.modules.project.uiapi;
41
42
import java.util.Set;
43
import javax.annotation.processing.Processor;
44
import javax.annotation.processing.RoundEnvironment;
45
import javax.annotation.processing.SupportedAnnotationTypes;
46
import javax.annotation.processing.SupportedSourceVersion;
47
import javax.lang.model.SourceVersion;
48
import javax.lang.model.element.Element;
49
import javax.lang.model.element.TypeElement;
50
import javax.tools.Diagnostic.Kind;
51
import org.netbeans.spi.project.ui.support.NodeFactory;
52
import org.netbeans.spi.project.ui.support.RegisteredNodeFactory;
53
import org.openide.filesystems.annotations.LayerBuilder;
54
import org.openide.filesystems.annotations.LayerGeneratingProcessor;
55
import org.openide.util.lookup.Service;
56
57
@Service(Processor.class)
58
@SupportedSourceVersion(SourceVersion.RELEASE_6)
59
@SupportedAnnotationTypes("org.netbeans.spi.project.ui.support.RegisteredNodeFactory")
60
public class RegisteredNodeFactoryProcessor extends LayerGeneratingProcessor {
61
62
    @Override
63
    protected boolean doProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
64
        if (roundEnv.processingOver()) {
65
            return false;
66
        }
67
        for (Element e : roundEnv.getElementsAnnotatedWith(RegisteredNodeFactory.class)) {
68
            RegisteredNodeFactory rnf = e.getAnnotation(RegisteredNodeFactory.class);
69
            try {
70
                instanceFile(new LayerBuilder(layer(e)), e, "Projects/" + rnf.projectType() + "/Nodes", null, NodeFactory.class).
71
                        position(rnf.position()).write();
72
            } catch (IllegalArgumentException x) {
73
                processingEnv.getMessager().printMessage(Kind.ERROR, x.getLocalizedMessage());
74
                continue;
75
            }
76
        }
77
        return true;
78
    }
79
80
}
(-)a/projectuiapi/src/org/netbeans/spi/project/ui/support/RegisteredNodeFactory.java (+57 lines)
Line 0 Link Here
1
/*
2
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3
 *
4
 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
5
 *
6
 * The contents of this file are subject to the terms of either the GNU
7
 * General Public License Version 2 only ("GPL") or the Common
8
 * Development and Distribution License("CDDL") (collectively, the
9
 * "License"). You may not use this file except in compliance with the
10
 * License. You can obtain a copy of the License at
11
 * http://www.netbeans.org/cddl-gplv2.html
12
 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13
 * specific language governing permissions and limitations under the
14
 * License.  When distributing the software, include this License Header
15
 * Notice in each file and include the License file at
16
 * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
17
 * particular file as subject to the "Classpath" exception as provided
18
 * by Sun in the GPL Version 2 section of the License file that
19
 * accompanied this code. If applicable, add the following below the
20
 * License Header, with the fields enclosed by brackets [] replaced by
21
 * your own identifying information:
22
 * "Portions Copyrighted [year] [name of copyright owner]"
23
 *
24
 * If you wish your version of this file to be governed by only the CDDL
25
 * or only the GPL Version 2, indicate your decision by adding
26
 * "[Contributor] elects to include this software in this distribution
27
 * under the [CDDL or GPL Version 2] license." If you do not indicate a
28
 * single choice of license, a recipient has the option to distribute
29
 * your version of this file under either the CDDL, the GPL Version 2 or
30
 * to extend the choice of license to its licensees as provided above.
31
 * However, if you add GPL Version 2 code and therefore, elected the GPL
32
 * Version 2 license, then the option applies only if the new code is
33
 * made subject to such option by the copyright holder.
34
 *
35
 * Contributor(s):
36
 *
37
 * Portions Copyrighted 2008 Sun Microsystems, Inc.
38
 */
39
40
package org.netbeans.spi.project.ui.support;
41
42
/**
43
 * Annotation to register a {@link NodeFactory} among a project type's nodes.
44
 */
45
public @interface RegisteredNodeFactory {
46
47
    /**
48
     * Project type identifier, e.g. {@code "org-netbeans-modules-java-j2seproject"}
49
     */
50
    String projectType();
51
52
    /**
53
     * Optional position to order this factory.
54
     */
55
    int position() default Integer.MAX_VALUE;
56
57
}

Return to bug 149136