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 (+109 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.net.MalformedURLException;
43
import java.net.URL;
44
import java.util.Set;
45
import javax.annotation.processing.Processor;
46
import javax.annotation.processing.RoundEnvironment;
47
import javax.annotation.processing.SupportedAnnotationTypes;
48
import javax.annotation.processing.SupportedSourceVersion;
49
import javax.lang.model.SourceVersion;
50
import javax.lang.model.element.Element;
51
import javax.lang.model.element.ExecutableElement;
52
import javax.lang.model.element.TypeElement;
53
import javax.tools.Diagnostic.Kind;
54
import org.openide.WizardDescriptor.InstantiatingIterator;
55
import org.openide.WizardDescriptor.RegisteredInstantiatingIterator;
56
import org.openide.filesystems.annotations.LayerBuilder;
57
import org.openide.filesystems.annotations.LayerGeneratingProcessor;
58
import org.openide.util.Exceptions;
59
import org.openide.util.lookup.ServiceProvider;
60
61
@ServiceProvider(service=Processor.class)
62
@SupportedSourceVersion(SourceVersion.RELEASE_6)
63
@SupportedAnnotationTypes("org.openide.WizardDescriptor.RegisteredInstantiatingIterator")
64
public class InstantiatingIteratorProcessor extends LayerGeneratingProcessor {
65
66
    @Override
67
    protected boolean doProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
68
        if (roundEnv.processingOver()) {
69
            return false;
70
        }
71
        for (Element e : roundEnv.getElementsAnnotatedWith(RegisteredInstantiatingIterator.class)) {
72
            RegisteredInstantiatingIterator ric = e.getAnnotation(RegisteredInstantiatingIterator.class);
73
            try {
74
                String name;
75
                switch (e.getKind()) {
76
                    case CLASS:
77
                        name = e.toString();
78
                        break;
79
                    case METHOD:
80
                        name = e.getEnclosingElement() + "." + ((ExecutableElement) e).getSimpleName();
81
                        break;
82
                    default:
83
                        throw new IllegalArgumentException(e.toString());
84
                }
85
                LayerBuilder.File f = new LayerBuilder(layer(e)).file("Templates/" + ric.templateCategory() + "/" + name);
86
                f.instanceAttribute("instantiatingIterator", e, InstantiatingIterator.class, processingEnv);
87
                f.bundlevalue("displayName", ric.displayName(), e, processingEnv.getFiler());
88
                if (ric.iconResource().length() > 0) {
89
                    f.stringvalue("iconBase", ric.iconResource());
90
                }
91
                if (ric.descriptionResource().length() > 0) {
92
                    try {
93
                        f.urlvalue("instantiatingWizardURL", new URL("nbresloc:/" + ric.descriptionResource()));
94
                    } catch (MalformedURLException ex) {
95
                        Exceptions.printStackTrace(ex);
96
                    }
97
                }
98
                f.position(ric.position());
99
                f.boolvalue("template", true);
100
                f.write();
101
            } catch (IllegalArgumentException x) {
102
                processingEnv.getMessager().printMessage(Kind.ERROR, x.getLocalizedMessage());
103
                continue;
104
            }
105
        }
106
        return true;
107
    }
108
109
}
(-)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