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

(-)src/org/netbeans/modules/java/project/Bundle.properties (+1 lines)
Lines 20-25 Link Here
20
#layer
20
#layer
21
Templates/Classes/Enum.java=Java Enum
21
Templates/Classes/Enum.java=Java Enum
22
Templates/Classes/AnnotationType.java=Java Annotation Type
22
Templates/Classes/AnnotationType.java=Java Annotation Type
23
Templates/Classes/package-info.java=Java Package Info
23
24
24
#Actions
25
#Actions
25
LBL_CompileFile_Action=Compile File
26
LBL_CompileFile_Action=Compile File
(-)src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java (-11 / +18 lines)
Lines 40-46 Link Here
40
 *
40
 *
41
 * @author  Petr Hrebejk
41
 * @author  Petr Hrebejk
42
 */
42
 */
43
public final class JavaTargetChooserPanel implements WizardDescriptor.Panel, ChangeListener {
43
public final class JavaTargetChooserPanel implements WizardDescriptor.Panel, ChangeListener {    
44
44
45
    static final String FOLDER_TO_DELETE = "folderToDelete";    //NOI18N
45
    static final String FOLDER_TO_DELETE = "folderToDelete";    //NOI18N
46
46
Lines 52-69 Link Here
52
52
53
    private Project project;
53
    private Project project;
54
    private SourceGroup folders[];
54
    private SourceGroup folders[];
55
    private boolean isPackage;
55
    private int type;
56
    private boolean isValidPackageRequired;
56
    private boolean isValidPackageRequired;
57
    
57
    
58
    public JavaTargetChooserPanel( Project project, SourceGroup folders[], WizardDescriptor.Panel bottomPanel, boolean isPackage ) {
58
    public JavaTargetChooserPanel( Project project, SourceGroup folders[], WizardDescriptor.Panel bottomPanel, int type ) {
59
        this(project, folders, bottomPanel, isPackage, false);
59
        this(project, folders, bottomPanel, type, false);
60
    }
60
    }
61
    
61
    
62
    public JavaTargetChooserPanel( Project project, SourceGroup folders[], WizardDescriptor.Panel bottomPanel, boolean isPackage, boolean isValidPackageRequired ) {
62
    public JavaTargetChooserPanel( Project project, SourceGroup folders[], WizardDescriptor.Panel bottomPanel, int type, boolean isValidPackageRequired ) {
63
        this.project = project;
63
        this.project = project;
64
        this.folders = folders;
64
        this.folders = folders;
65
        this.bottomPanel = bottomPanel;
65
        this.bottomPanel = bottomPanel;
66
        this.isPackage = isPackage;
66
        this.type = type;
67
        if ( bottomPanel != null ) {
67
        if ( bottomPanel != null ) {
68
            bottomPanel.addChangeListener( this );
68
            bottomPanel.addChangeListener( this );
69
        }
69
        }
Lines 72-78 Link Here
72
72
73
    public Component getComponent() {
73
    public Component getComponent() {
74
        if (gui == null) {
74
        if (gui == null) {
75
            gui = new JavaTargetChooserPanelGUI( project, folders, bottomPanel == null ? null : bottomPanel.getComponent(), isPackage );
75
            gui = new JavaTargetChooserPanelGUI( project, folders, bottomPanel == null ? null : bottomPanel.getComponent(), type );
76
            gui.addChangeListener(this);
76
            gui.addChangeListener(this);
77
        }
77
        }
78
        return gui;
78
        return gui;
Lines 96-107 Link Here
96
           setErrorMessage( null );
96
           setErrorMessage( null );
97
           return false;
97
           return false;
98
        }        
98
        }        
99
        if ( isPackage ) {
99
        if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE) {
100
            if ( !isValidPackageName( gui.getTargetName() ) ) {
100
            if ( !isValidPackageName( gui.getTargetName() ) ) {
101
                setErrorMessage( "ERR_JavaTargetChooser_InvalidPackage" );
101
                setErrorMessage( "ERR_JavaTargetChooser_InvalidPackage" );
102
                return false;
102
                return false;
103
            }
103
            }
104
        }
104
        }
105
        else if (type == NewJavaFileWizardIterator.TYPE_PKG_INFO) {
106
            assert "package-info".equals( gui.getTargetName() );        //NOI18N
107
            if ( !isValidPackageName( gui.getPackageName() ) ) {
108
                setErrorMessage( "ERR_JavaTargetChooser_InvalidPackage" );
109
                return false;
110
            }
111
        }
105
        else {
112
        else {
106
            if ( !isValidTypeIdentifier( gui.getTargetName() ) ) {
113
            if ( !isValidTypeIdentifier( gui.getTargetName() ) ) {
107
                setErrorMessage( "ERR_JavaTargetChooser_InvalidClass" );
114
                setErrorMessage( "ERR_JavaTargetChooser_InvalidClass" );
Lines 119-125 Link Here
119
        boolean returnValue=true;
126
        boolean returnValue=true;
120
        FileObject rootFolder = gui.getRootFolder();
127
        FileObject rootFolder = gui.getRootFolder();
121
        SpecificationVersion specVersion = null;
128
        SpecificationVersion specVersion = null;
122
        if (!isPackage) {
129
        if (type != NewJavaFileWizardIterator.TYPE_PACKAGE) {
123
            String sl = SourceLevelQuery.getSourceLevel(rootFolder);
130
            String sl = SourceLevelQuery.getSourceLevel(rootFolder);
124
            specVersion = sl != null? new SpecificationVersion(sl): null;
131
            specVersion = sl != null? new SpecificationVersion(sl): null;
125
        }
132
        }
Lines 136-142 Link Here
136
               return false;
143
               return false;
137
        }
144
        }
138
        
145
        
139
        if (!isPackage && returnValue && gui.getPackageName().length() == 0 && specVersion != null && JDK_14.compareTo(specVersion)<=0) { 
146
        if (type != NewJavaFileWizardIterator.TYPE_PACKAGE && returnValue && gui.getPackageName().length() == 0 && specVersion != null && JDK_14.compareTo(specVersion)<=0) { 
140
            if(isValidPackageRequired){
147
            if(isValidPackageRequired){
141
                setErrorMessage( "ERR_JavaTargetChooser_CantUseDefaultPackage" );
148
                setErrorMessage( "ERR_JavaTargetChooser_CantUseDefaultPackage" );
142
                return false;
149
                return false;
Lines 230-236 Link Here
230
        assert gui != null;
237
        assert gui != null;
231
        FileObject rootFolder = gui.getRootFolder();
238
        FileObject rootFolder = gui.getRootFolder();
232
        FileObject folder = null;
239
        FileObject folder = null;
233
        if ( !isPackage ) {
240
        if ( type != NewJavaFileWizardIterator.TYPE_PACKAGE ) {
234
            String packageFileName = gui.getPackageFileName();
241
            String packageFileName = gui.getPackageFileName();
235
            folder = rootFolder.getFileObject( packageFileName );
242
            folder = rootFolder.getFileObject( packageFileName );
236
            if ( folder == null ) {
243
            if ( folder == null ) {
(-)src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form (+7 lines)
Lines 6-11 Link Here
6
      <ResourceString bundle="org/netbeans/modules/java/project/Bundle.properties" key="AD_JavaTargetChooserPanelGUI" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
6
      <ResourceString bundle="org/netbeans/modules/java/project/Bundle.properties" key="AD_JavaTargetChooserPanelGUI" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
7
    </Property>
7
    </Property>
8
  </AccessibilityProperties>
8
  </AccessibilityProperties>
9
  <AuxValues>
10
    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
11
    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
12
    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
13
    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
14
    <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
15
  </AuxValues>
9
16
10
  <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
17
  <Layout class="org.netbeans.modules.form.compat2.layouts.DesignGridBagLayout"/>
11
  <SubComponents>
18
  <SubComponents>
(-)src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.java (-15 / +24 lines)
Lines 59-84 Link Here
59
    private Project project;
59
    private Project project;
60
    private String expectedExtension;
60
    private String expectedExtension;
61
    private final List/*<ChangeListener>*/ listeners = new ArrayList();
61
    private final List/*<ChangeListener>*/ listeners = new ArrayList();
62
    private boolean isPackage;
62
    private int type;
63
    private SourceGroup groups[];
63
    private SourceGroup groups[];
64
    private boolean ignoreRootCombo;
64
    private boolean ignoreRootCombo;
65
    
65
    
66
    /** Creates new form SimpleTargetChooserGUI */
66
    /** Creates new form SimpleTargetChooserGUI */
67
    public JavaTargetChooserPanelGUI( Project p, SourceGroup[] groups, Component bottomPanel, boolean isPackage ) {
67
    public JavaTargetChooserPanelGUI( Project p, SourceGroup[] groups, Component bottomPanel, int type ) {
68
        this.isPackage = isPackage;
68
        this.type = type;
69
        this.project = p;
69
        this.project = p;
70
        this.groups = groups;
70
        this.groups = groups;
71
        
71
        
72
        initComponents();        
72
        initComponents();        
73
                
73
                
74
        if ( isPackage ) {
74
        if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) {
75
            packageComboBox.setVisible( false );
75
            packageComboBox.setVisible( false );
76
            packageLabel.setVisible( false );
76
            packageLabel.setVisible( false );
77
            Mnemonics.setLocalizedText (fileLabel, NbBundle.getMessage (JavaTargetChooserPanelGUI.class, "LBL_JavaTargetChooserPanelGUI_CreatedFolder_Label")); // NOI18N
77
            Mnemonics.setLocalizedText (fileLabel, NbBundle.getMessage (JavaTargetChooserPanelGUI.class, "LBL_JavaTargetChooserPanelGUI_CreatedFolder_Label")); // NOI18N
78
            Mnemonics.setLocalizedText (documentNameLabel, NbBundle.getMessage (JavaTargetChooserPanelGUI.class, "LBL_JavaTargetChooserPanelGUI_PackageName_Label")); // NOI18N
78
            Mnemonics.setLocalizedText (documentNameLabel, NbBundle.getMessage (JavaTargetChooserPanelGUI.class, "LBL_JavaTargetChooserPanelGUI_PackageName_Label")); // NOI18N
79
        }        
79
            documentNameTextField.getDocument().addDocumentListener( this );
80
        }
81
        else if ( type == NewJavaFileWizardIterator.TYPE_PKG_INFO ) {
82
            documentNameTextField.setEditable (false);
83
        }
80
        else {
84
        else {
81
            packageComboBox.getEditor().addActionListener( this );
85
            packageComboBox.getEditor().addActionListener( this );
86
            documentNameTextField.getDocument().addDocumentListener( this );
82
        }
87
        }
83
        
88
        
84
                
89
                
Lines 87-93 Link Here
87
        }
92
        }
88
                
93
                
89
        //initValues( project, null, null );
94
        //initValues( project, null, null );
90
        documentNameTextField.getDocument().addDocumentListener( this );
95
        
91
96
92
        // Not very nice
97
        // Not very nice
93
        Component packageEditor = packageComboBox.getEditor().getEditorComponent();
98
        Component packageEditor = packageComboBox.getEditor().getEditorComponent();
Lines 128-134 Link Here
128
        rootComboBox.setSelectedItem( preselectedGroup );                       
133
        rootComboBox.setSelectedItem( preselectedGroup );                       
129
        ignoreRootCombo = false;
134
        ignoreRootCombo = false;
130
        Object preselectedPackage = getPreselectedPackage(preselectedGroup, preselectedFolder, packageComboBox.getModel());
135
        Object preselectedPackage = getPreselectedPackage(preselectedGroup, preselectedFolder, packageComboBox.getModel());
131
        if ( isPackage ) {
136
        if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) {
132
            String docName = preselectedPackage == null || preselectedPackage.toString().length() == 0 ? 
137
            String docName = preselectedPackage == null || preselectedPackage.toString().length() == 0 ? 
133
                DEFAULT_NEW_PACKAGE_NAME : 
138
                DEFAULT_NEW_PACKAGE_NAME : 
134
                preselectedPackage.toString() + "." + DEFAULT_NEW_PACKAGE_NAME;
139
                preselectedPackage.toString() + "." + DEFAULT_NEW_PACKAGE_NAME;
Lines 146-157 Link Here
146
            }
151
            }
147
            if (template != null) {
152
            if (template != null) {
148
            	if ( documentNameTextField.getText().trim().length() == 0 ) { // To preserve the class name on back in the wiazard
153
            	if ( documentNameTextField.getText().trim().length() == 0 ) { // To preserve the class name on back in the wiazard
149
                    documentNameTextField.setText (NEW_CLASS_PREFIX + template.getName ());
154
                    if (this.type == NewJavaFileWizardIterator.TYPE_PKG_INFO) {
150
                    documentNameTextField.selectAll ();
155
                        documentNameTextField.setText (template.getName ());
156
                    }
157
                    else {
158
                        //Ordinary file
159
                        documentNameTextField.setText (NEW_CLASS_PREFIX + template.getName ());
160
                        documentNameTextField.selectAll ();
161
                    }
151
                }
162
                }
152
            }
163
            }
153
        }
154
        if ( !isPackage ) {
155
            updatePackages( false );
164
            updatePackages( false );
156
        }
165
        }
157
        // Determine the extension
166
        // Determine the extension
Lines 168-174 Link Here
168
    
177
    
169
    public String getPackageFileName() {
178
    public String getPackageFileName() {
170
        
179
        
171
        if ( isPackage ) {
180
        if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) {
172
            return ""; // NOI18N
181
            return ""; // NOI18N
173
        }
182
        }
174
        
183
        
Lines 180-186 Link Here
180
     * Name of selected package, or "" for default package.
189
     * Name of selected package, or "" for default package.
181
     */
190
     */
182
    String getPackageName() {
191
    String getPackageName() {
183
        if ( isPackage ) {
192
        if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) {
184
            return ""; // NOI18N
193
            return ""; // NOI18N
185
        }
194
        }
186
        return packageComboBox.getEditor().getItem().toString();
195
        return packageComboBox.getEditor().getItem().toString();
Lines 372-378 Link Here
372
        
381
        
373
    public void actionPerformed(java.awt.event.ActionEvent e) {
382
    public void actionPerformed(java.awt.event.ActionEvent e) {
374
        if ( rootComboBox == e.getSource() ) {            
383
        if ( rootComboBox == e.getSource() ) {            
375
            if ( !ignoreRootCombo && !isPackage ) {
384
            if ( !ignoreRootCombo && type != NewJavaFileWizardIterator.TYPE_PACKAGE ) {
376
                updatePackages( true );
385
                updatePackages( true );
377
            }
386
            }
378
            updateText();
387
            updateText();
Lines 459-465 Link Here
459
        FileObject rootFolder = g.getRootFolder();
468
        FileObject rootFolder = g.getRootFolder();
460
        String packageName = getPackageFileName();
469
        String packageName = getPackageFileName();
461
        String documentName = documentNameTextField.getText().trim();
470
        String documentName = documentNameTextField.getText().trim();
462
        if ( isPackage ) {
471
        if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) {
463
            documentName = documentName.replace( '.', '/' ); // NOI18N
472
            documentName = documentName.replace( '.', '/' ); // NOI18N
464
        }
473
        }
465
        else if ( documentName.length() > 0 ) {
474
        else if ( documentName.length() > 0 ) {
(-)src/org/netbeans/modules/java/project/NewJavaFileWizardIterator.java (-9 / +17 lines)
Lines 44-61 Link Here
44
    
44
    
45
    private static final long serialVersionUID = 1L;
45
    private static final long serialVersionUID = 1L;
46
    
46
    
47
    private boolean isPackage = false;
47
    public static final int TYPE_FILE = 0;
48
    public static final int TYPE_PACKAGE = 1;
49
    public static final int TYPE_PKG_INFO = 2;
50
    
51
    private int type = TYPE_FILE;
48
    
52
    
49
    /** Create a new wizard iterator. */
53
    /** Create a new wizard iterator. */
50
    public NewJavaFileWizardIterator() {}
54
    public NewJavaFileWizardIterator() {}
51
    
55
    
52
    
56
    
53
    private NewJavaFileWizardIterator( boolean isPackage ) {
57
    private NewJavaFileWizardIterator( int type ) {
54
        this.isPackage = isPackage;
58
        this.type = type;
55
    }    
59
    }    
56
    
60
    
57
    public static NewJavaFileWizardIterator packageWizard() {
61
    public static NewJavaFileWizardIterator packageWizard() {
58
        return new NewJavaFileWizardIterator( true );
62
        return new NewJavaFileWizardIterator( TYPE_PACKAGE );
63
    }
64
    
65
    public static NewJavaFileWizardIterator packageInfoWizard () {
66
        return new NewJavaFileWizardIterator( TYPE_PKG_INFO );
59
    }
67
    }
60
            
68
            
61
    private WizardDescriptor.Panel[] createPanels (WizardDescriptor wizardDescriptor) {
69
    private WizardDescriptor.Panel[] createPanels (WizardDescriptor wizardDescriptor) {
Lines 73-86 Link Here
73
        }
81
        }
74
        else {
82
        else {
75
            
83
            
76
            if ( isPackage ) {
84
            if ( this.type == TYPE_FILE ) {
77
                return new WizardDescriptor.Panel[] {
85
                return new WizardDescriptor.Panel[] {
78
                    new JavaTargetChooserPanel( project, groups, null, true ),
86
                    JavaTemplates.createPackageChooser( project, groups ),
79
                };
87
                };
80
            }
88
            }
81
            else {
89
            else {                                
82
                return new WizardDescriptor.Panel[] {
90
                return new WizardDescriptor.Panel[] {
83
                    JavaTemplates.createPackageChooser( project, groups ),
91
                    new JavaTargetChooserPanel( project, groups, null, this.type),
84
                };
92
                };
85
            }
93
            }
86
        }
94
        }
Lines 115-121 Link Here
115
        FileObject template = Templates.getTemplate( wiz );
123
        FileObject template = Templates.getTemplate( wiz );
116
        
124
        
117
        FileObject createdFile = null;
125
        FileObject createdFile = null;
118
        if ( isPackage ) {
126
        if ( this.type == TYPE_PACKAGE ) {
119
            targetName = targetName.replace( '.', '/' ); // NOI18N
127
            targetName = targetName.replace( '.', '/' ); // NOI18N
120
            createdFile = FileUtil.createFolder( dir, targetName );
128
            createdFile = FileUtil.createFolder( dir, targetName );
121
        }
129
        }
(-)src/org/netbeans/modules/java/project/layer.xml (-1 / +11 lines)
Lines 24-30 Link Here
24
      <attr name="Enum.java/AnnotationType.java" boolvalue="true"/>
24
      <attr name="Enum.java/AnnotationType.java" boolvalue="true"/>
25
      <attr name="AnnotationType.java/Exception.java" boolvalue="true"/>
25
      <attr name="AnnotationType.java/Exception.java" boolvalue="true"/>
26
      <attr name="Exception.java/Main.java" boolvalue="true"/>
26
      <attr name="Exception.java/Main.java" boolvalue="true"/>
27
      <attr name="Main.java/JApplet.java" boolvalue="true"/>
27
      <attr name="Main.java/package-info.java" boolvalue="true"/>
28
      <attr name="package-info.java/JApplet.java" boolvalue="true"/>
28
      <attr name="JApplet.java/Applet.java" boolvalue="true"/>
29
      <attr name="JApplet.java/Applet.java" boolvalue="true"/>
29
      <attr name="Applet.java/Package" boolvalue="true"/>
30
      <attr name="Applet.java/Package" boolvalue="true"/>
30
      
31
      
Lines 78-83 Link Here
78
         <attr name="templateCategory" stringvalue="java-classes"/>
79
         <attr name="templateCategory" stringvalue="java-classes"/>
79
         <attr name="javac.source" stringvalue="1.5" />
80
         <attr name="javac.source" stringvalue="1.5" />
80
      </file>
81
      </file>
82
83
      <file name="package-info.java" url="nbres:/org/netbeans/modules/java/project/resources/package-info.template">
84
         <attr name="template" boolvalue="true" />
85
         <attr name="instantiatingIterator" methodvalue="org.netbeans.modules.java.project.NewJavaFileWizardIterator.packageInfoWizard"/>
86
         <attr name="templateWizardURL" urlvalue="nbresloc:/org/netbeans/modules/java/project/resources/package-info.html" />
87
         <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.java.project.Bundle"/>
88
         <attr name="templateCategory" stringvalue="java-classes"/>
89
         <attr name="javac.source" stringvalue="1.5" />
90
      </file> 
81
    </folder>
91
    </folder>
82
    
92
    
83
  </folder>
93
  </folder>
(-)src/org/netbeans/modules/java/project/resources/package-info.html (+19 lines)
Added Link Here
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<!--
3
                Sun Public License Notice
4
5
The contents of this file are subject to the Sun Public License
6
Version 1.0 (the "License"). You may not use this file except in
7
compliance with the License. A copy of the License is available at
8
http://www.sun.com/
9
10
The Original Code is NetBeans. The Initial Developer of the Original
11
Code is Sun Microsystems, Inc. Portions Copyright 2005 Sun
12
Microsystems, Inc. All Rights Reserved.
13
-->
14
<html>
15
<body>
16
Creates a new Java package-info. To be able to use package annotations, 
17
your project must use JDK 5.0 or compatible. 
18
</body>
19
</html>
(-)src/org/netbeans/modules/java/project/resources/package-info.template (+10 lines)
Added Link Here
1
/*
2
 * __NAME__.java
3
 *
4
 * Created on __DATE__, __TIME__
5
 *
6
 * To change this template, choose Tools | Template Manager
7
 * and open the template in the editor.
8
 */
9
10
package Templates.Classes;
(-)src/org/netbeans/spi/java/project/support/ui/templates/JavaTemplates.java (-1 / +1 lines)
Lines 78-84 Link Here
78
        if (folders.length == 0) {
78
        if (folders.length == 0) {
79
            throw new IllegalArgumentException("No folders selected"); // NOI18N
79
            throw new IllegalArgumentException("No folders selected"); // NOI18N
80
        }
80
        }
81
        return new JavaTargetChooserPanel(project, folders, bottomPanel, false, validPackageRequired);
81
        return new JavaTargetChooserPanel(project, folders, bottomPanel, NewJavaFileWizardIterator.TYPE_FILE, validPackageRequired);
82
    } 
82
    } 
83
    
83
    
84
    /** Creates new WizardIterator containing standard Package chooser
84
    /** Creates new WizardIterator containing standard Package chooser

Return to bug 66847