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/resources/layer.xml (-31 lines)
Lines 51-87 Link Here
51
                <attr name="instantiatingWizardURL" urlvalue="nbresloc:/org/netbeans/modules/java/j2seproject/ui/resources/desktop.html"/>
51
                <attr name="instantiatingWizardURL" urlvalue="nbresloc:/org/netbeans/modules/java/j2seproject/ui/resources/desktop.html"/>
52
52
53
                <attr name="position" intvalue="100"/>
53
                <attr name="position" intvalue="100"/>
54
                <file name="emptyJ2SE.xml">
55
                    <attr name="position" intvalue="100"/>
56
                    <attr name="template" boolvalue="true"/>
57
                    <attr name="instantiatingIterator" newvalue="org.netbeans.modules.java.j2seproject.ui.wizards.NewJ2SEProjectWizardIterator"/>
58
                    <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.java.j2seproject.ui.wizards.Bundle"/>
59
                    <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/j2seproject/ui/resources/j2seProject.png"/>
60
                    <attr name="instantiatingWizardURL" urlvalue="nbresloc:/org/netbeans/modules/java/j2seproject/ui/resources/emptyProject.html"/>
61
                </file>
62
        
63
                
64
65
                <file name="emptyJ2SElibrary.xml">
66
                    <attr name="position" intvalue="200"/>
67
                    <attr name="template" boolvalue="true"/>
68
                    <attr name="instantiatingIterator" methodvalue="org.netbeans.modules.java.j2seproject.ui.wizards.NewJ2SEProjectWizardIterator.library"/>
69
                    <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.java.j2seproject.ui.wizards.Bundle"/>
70
                    <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/j2seproject/ui/resources/j2seProject.png"/>
71
                    <attr name="instantiatingWizardURL" urlvalue="nbresloc:/org/netbeans/modules/java/j2seproject/ui/resources/emptyLibrary.html"/>
72
                </file>                
73
74
                
75
76
                <file name="existingJ2SE.xml">
77
                    <attr name="position" intvalue="300"/>
78
                    <attr name="template" boolvalue="true"/>
79
                    <attr name="templateWizardIterator" methodvalue="org.netbeans.modules.java.j2seproject.ui.wizards.NewJ2SEProjectWizardIterator.existing"/>
80
                    <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.java.j2seproject.ui.wizards.Bundle"/>
81
                    <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/java/j2seproject/ui/resources/j2seProject.png"/>
82
                    <attr name="instantiatingWizardURL" urlvalue="nbresloc:/org/netbeans/modules/java/j2seproject/ui/resources/existingProject.html"/>
83
                </file>
84
85
            </folder>
54
            </folder>
86
        </folder>
55
        </folder>
87
    </folder>
56
    </folder>
(-)a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/Bundle.properties (-3 / +3 lines)
Lines 38-47 Link Here
38
# made subject to such option by the copyright holder.
38
# made subject to such option by the copyright holder.
39
39
40
#System file system
40
#System file system
41
Templates/Project/Standard/emptyJ2SE.xml=Java Application
42
Templates/Project/Standard/emptyJ2SElibrary.xml=Java Class Library
43
Templates/Project/Standard=Java
41
Templates/Project/Standard=Java
44
Templates/Project/Standard/existingJ2SE.xml= Java Project with Existing Sources
42
emptyJ2SE=Java Application
43
emptyJ2SElibrary=Java Class Library
44
existingJ2SE= Java Project with Existing Sources
45
#New project wizard
45
#New project wizard
46
TXT_DefaultPackageName=mypkg
46
TXT_DefaultPackageName=mypkg
47
47
(-)a/java.j2seproject/src/org/netbeans/modules/java/j2seproject/ui/wizards/NewJ2SEProjectWizardIterator.java (+18 lines)
Lines 69-74 Link Here
69
/**
69
/**
70
 * Wizard to create a new J2SE project.
70
 * Wizard to create a new J2SE project.
71
 */
71
 */
72
@WizardDescriptor.RegisteredInstantiatingIterator(
73
        templateCategory="Project/Standard",
74
        displayName="#emptyJ2SE",
75
        position=100,
76
        iconResource="org/netbeans/modules/java/j2seproject/ui/resources/j2seProject.png",
77
        descriptionResource="org/netbeans/modules/java/j2seproject/ui/resources/emptyProject.html")
72
public class NewJ2SEProjectWizardIterator implements WizardDescriptor.ProgressInstantiatingIterator {
78
public class NewJ2SEProjectWizardIterator implements WizardDescriptor.ProgressInstantiatingIterator {
73
79
74
    enum WizardType {APP, LIB, EXT}
80
    enum WizardType {APP, LIB, EXT}
Lines 90-99 Link Here
90
        this.type = type;
96
        this.type = type;
91
    }
97
    }
92
        
98
        
99
    @WizardDescriptor.RegisteredInstantiatingIterator(
100
            templateCategory="Project/Standard",
101
            displayName="#emptyJ2SElibrary",
102
            position=200,
103
            iconResource="org/netbeans/modules/java/j2seproject/ui/resources/j2seProject.png",
104
            descriptionResource="org/netbeans/modules/java/j2seproject/ui/resources/emptyLibrary.html")
93
    public static NewJ2SEProjectWizardIterator library() {
105
    public static NewJ2SEProjectWizardIterator library() {
94
        return new NewJ2SEProjectWizardIterator(WizardType.LIB);
106
        return new NewJ2SEProjectWizardIterator(WizardType.LIB);
95
    }
107
    }
96
    
108
    
109
    @WizardDescriptor.RegisteredInstantiatingIterator(
110
            templateCategory="Project/Standard",
111
            displayName="#existingJ2SE",
112
            position=300,
113
            iconResource="org/netbeans/modules/java/j2seproject/ui/resources/j2seProject.png",
114
            descriptionResource="org/netbeans/modules/java/j2seproject/ui/resources/existingProject.html")
97
    public static NewJ2SEProjectWizardIterator existing() {
115
    public static NewJ2SEProjectWizardIterator existing() {
98
        return new NewJ2SEProjectWizardIterator(WizardType.EXT);
116
        return new NewJ2SEProjectWizardIterator(WizardType.EXT);
99
    }
117
    }
(-)a/openide.dialogs/nbproject/project.properties (-1 / +1 lines)
Lines 43-46 Link Here
43
#javadoc.main.page=org/openide/doc-files/api.html
43
#javadoc.main.page=org/openide/doc-files/api.html
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/openide.dialogs/nbproject/project.xml (+8 lines)
Lines 73-78 Link Here
73
                    </run-dependency>
73
                    </run-dependency>
74
                </dependency>
74
                </dependency>
75
                <dependency>
75
                <dependency>
76
                    <code-name-base>org.openide.filesystems</code-name-base>
77
                    <build-prerequisite/>
78
                    <compile-dependency/>
79
                    <run-dependency>
80
                        <specification-version>7.13</specification-version>
81
                    </run-dependency>
82
                </dependency>
83
                <dependency>
76
                    <code-name-base>org.openide.util</code-name-base>
84
                    <code-name-base>org.openide.util</code-name-base>
77
                    <build-prerequisite/>
85
                    <build-prerequisite/>
78
                    <compile-dependency/>
86
                    <compile-dependency/>
(-)a/openide.dialogs/src/org/netbeans/modules/dialogs/InstantiatingIteratorProcessor.java (+94 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.dialogs;
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.ExecutableElement;
50
import javax.lang.model.element.TypeElement;
51
import org.openide.WizardDescriptor.InstantiatingIterator;
52
import org.openide.WizardDescriptor.RegisteredInstantiatingIterator;
53
import org.openide.filesystems.annotations.LayerBuilder;
54
import org.openide.filesystems.annotations.LayerGeneratingProcessor;
55
import org.openide.filesystems.annotations.LayerGenerationException;
56
import org.openide.util.lookup.ServiceProvider;
57
58
@ServiceProvider(service=Processor.class)
59
@SupportedSourceVersion(SourceVersion.RELEASE_6)
60
@SupportedAnnotationTypes("org.openide.WizardDescriptor.RegisteredInstantiatingIterator")
61
public class InstantiatingIteratorProcessor extends LayerGeneratingProcessor {
62
    protected boolean handleProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) throws LayerGenerationException{
63
        if (roundEnv.processingOver()) {
64
            return false;
65
        }
66
        for (Element e : roundEnv.getElementsAnnotatedWith(RegisteredInstantiatingIterator.class)) {
67
            RegisteredInstantiatingIterator ric = e.getAnnotation(RegisteredInstantiatingIterator.class);
68
            String name;
69
            switch (e.getKind()) {
70
                case CLASS:
71
                    name = e.toString();
72
                    break;
73
                case METHOD:
74
                    name = e.getEnclosingElement() + "." + ((ExecutableElement) e).getSimpleName();
75
                    break;
76
                default:
77
                    throw new IllegalArgumentException(e.toString());
78
            }
79
            LayerBuilder.File f = layer(e).file("Templates/" + ric.templateCategory() + "/" + name);
80
            f.instanceAttribute("instantiatingIterator", InstantiatingIterator.class);
81
            f.bundlevalue("displayName", ric.displayName());
82
            if (ric.iconResource().length() > 0) {
83
                f.stringvalue("iconBase", ric.iconResource());
84
            }
85
            if (ric.descriptionResource().length() > 0) {
86
                f.urlvalue("instantiatingWizardURL", "nbresloc:/" + ric.descriptionResource());
87
            }
88
            f.position(ric.position());
89
            f.boolvalue("template", true);
90
            f.write();
91
        }
92
        return true;
93
    }
94
}
(-)a/openide.dialogs/src/org/openide/WizardDescriptor.java (+14 lines)
Lines 64-69 Link Here
64
import java.beans.PropertyChangeEvent;
64
import java.beans.PropertyChangeEvent;
65
import java.beans.PropertyChangeListener;
65
import java.beans.PropertyChangeListener;
66
import java.io.IOException;
66
import java.io.IOException;
67
import java.lang.annotation.ElementType;
68
import java.lang.annotation.Retention;
69
import java.lang.annotation.RetentionPolicy;
70
import java.lang.annotation.Target;
67
import java.net.URL;
71
import java.net.URL;
68
import java.text.MessageFormat;
72
import java.text.MessageFormat;
69
import java.util.Arrays;
73
import java.util.Arrays;
Lines 1758-1763 Link Here
1758
         */
1762
         */
1759
        public void uninitialize(WizardDescriptor wizard);
1763
        public void uninitialize(WizardDescriptor wizard);
1760
    }
1764
    }
1765
1766
    @Retention(RetentionPolicy.SOURCE)
1767
    @Target({ElementType.TYPE, ElementType.METHOD})
1768
    public @interface RegisteredInstantiatingIterator {
1769
        String templateCategory();
1770
        String displayName();
1771
        String iconResource() default "";
1772
        String descriptionResource() default "";
1773
        int position() default Integer.MAX_VALUE;
1774
    }
1761
    
1775
    
1762
    /**
1776
    /**
1763
     * Iterator for a wizard that needs to somehow instantiate new objects outside ATW queue.
1777
     * Iterator for a wizard that needs to somehow instantiate new objects outside ATW queue.

Return to bug 149136