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 153015
Collapse All | Expand All

(-)a/projectuiapi/apichanges.xml (+15 lines)
Lines 104-109 Link Here
104
    <!-- ACTUAL CHANGES BEGIN HERE: -->
104
    <!-- ACTUAL CHANGES BEGIN HERE: -->
105
105
106
    <changes>
106
    <changes>
107
        <change id="nodefactory-ann">
108
            <api name="general"/>
109
            <summary>Add annotation @NodeFactory.Registration</summary>
110
            <version major="1" minor="33"/>
111
            <date day="20" month="11" year="2008"/>
112
            <author login="mkleint"/>
113
            <compatibility addition="yes" binary="compatible" deletion="no" deprecation="no" modification="no" semantic="compatible" source="compatible"/>
114
            <description>
115
                <p>
116
                  Add annotation @NodeFactory.Registration to replace registration in layer files.
117
                </p>
118
            </description>
119
            <class package="org.netbeans.spi.project.ui.support" name="NodeFactory"/>
120
            <issue number="153015"/>
121
        </change>
107
        
122
        
108
        <change id="stop-repeat-build">
123
        <change id="stop-repeat-build">
109
           <api name="general"/>
124
           <api name="general"/>
(-)a/projectuiapi/nbproject/project.properties (-1 / +2 lines)
Lines 39-46 Link Here
39
39
40
javac.compilerargs=-Xlint -Xlint:-serial
40
javac.compilerargs=-Xlint -Xlint:-serial
41
javac.source=1.5
41
javac.source=1.5
42
spec.version.base=1.32.0
42
spec.version.base=1.33.0
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
cp.extra=${nb_all}/apisupport.harness/external/openjdk-javac-6-b12.jar
46
47
(-)6b1b3d4b9708 (+79 lines)
Added 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 org.netbeans.spi.project.ui.support.NodeFactory;
51
import org.openide.filesystems.annotations.LayerGeneratingProcessor;
52
import org.openide.filesystems.annotations.LayerGenerationException;
53
import org.openide.util.lookup.ServiceProvider;
54
55
/**
56
 * processor for NodeFactory.Registration annotation.
57
 * @author mkleint
58
 */
59
@ServiceProvider(service=Processor.class)
60
@SupportedSourceVersion(SourceVersion.RELEASE_6)
61
@SupportedAnnotationTypes("org.netbeans.spi.project.ui.support.NodeFactory.Registration")
62
public class NodeFactoryAnnotationProcessor extends LayerGeneratingProcessor {
63
64
    @Override
65
    protected boolean handleProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) throws LayerGenerationException {
66
        if (roundEnv.processingOver()) {
67
            return false;
68
        }
69
        for (Element e : roundEnv.getElementsAnnotatedWith(NodeFactory.Registration.class)) {
70
            NodeFactory.Registration lpr = e.getAnnotation(NodeFactory.Registration.class);
71
            for (String type : lpr.projectType()) {
72
                layer(e).instanceFile("Projects/" + type + "/Nodes", null, NodeFactory.class).
73
                        intvalue("position", lpr.position()).write();
74
            }
75
        }
76
        return true;
77
    }
78
79
}
(-)a/projectuiapi/src/org/netbeans/spi/project/ui/support/NodeFactory.java (+14 lines)
Lines 72-76 Link Here
72
    NodeList<?> createNodes(Project p);
72
    NodeList<?> createNodes(Project p);
73
    
73
    
74
//    Node findPath(Project p, Node root, Object target);
74
//    Node findPath(Project p, Node root, Object target);
75
    /**
76
     * annotation to register NodeFactory instances.
77
     * @since org.netbeans.modules.projectuiapi 1.33
78
     */
79
    public @interface Registration {
80
        /**
81
         * token(s) denoting one or more project types, eg. org-netbeans-modules-maven or org-netbeans-modules-java-j2seproject
82
         * @return
83
         */
84
        String[] projectType();
85
86
        int position() default Integer.MAX_VALUE;
87
;
88
    }
75
    
89
    
76
}
90
}

Return to bug 153015