Index: src/org/netbeans/modules/java/project/Bundle.properties =================================================================== RCS file: /cvs/java/project/src/org/netbeans/modules/java/project/Bundle.properties,v retrieving revision 1.34 diff -u -r1.34 Bundle.properties --- src/org/netbeans/modules/java/project/Bundle.properties 4 Oct 2005 11:40:56 -0000 1.34 +++ src/org/netbeans/modules/java/project/Bundle.properties 27 Oct 2005 07:15:18 -0000 @@ -20,6 +20,7 @@ #layer Templates/Classes/Enum.java=Java Enum Templates/Classes/AnnotationType.java=Java Annotation Type +Templates/Classes/package-info.java=Java Package Info #Actions LBL_CompileFile_Action=Compile File Index: src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java =================================================================== RCS file: /cvs/java/project/src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java,v retrieving revision 1.25 diff -u -r1.25 JavaTargetChooserPanel.java --- src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java 23 Mar 2005 20:04:35 -0000 1.25 +++ src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java 27 Oct 2005 07:15:20 -0000 @@ -40,7 +40,7 @@ * * @author Petr Hrebejk */ -public final class JavaTargetChooserPanel implements WizardDescriptor.Panel, ChangeListener { +public final class JavaTargetChooserPanel implements WizardDescriptor.Panel, ChangeListener { static final String FOLDER_TO_DELETE = "folderToDelete"; //NOI18N @@ -52,18 +52,18 @@ private Project project; private SourceGroup folders[]; - private boolean isPackage; + private int type; private boolean isValidPackageRequired; - public JavaTargetChooserPanel( Project project, SourceGroup folders[], WizardDescriptor.Panel bottomPanel, boolean isPackage ) { - this(project, folders, bottomPanel, isPackage, false); + public JavaTargetChooserPanel( Project project, SourceGroup folders[], WizardDescriptor.Panel bottomPanel, int type ) { + this(project, folders, bottomPanel, type, false); } - public JavaTargetChooserPanel( Project project, SourceGroup folders[], WizardDescriptor.Panel bottomPanel, boolean isPackage, boolean isValidPackageRequired ) { + public JavaTargetChooserPanel( Project project, SourceGroup folders[], WizardDescriptor.Panel bottomPanel, int type, boolean isValidPackageRequired ) { this.project = project; this.folders = folders; this.bottomPanel = bottomPanel; - this.isPackage = isPackage; + this.type = type; if ( bottomPanel != null ) { bottomPanel.addChangeListener( this ); } @@ -72,7 +72,7 @@ public Component getComponent() { if (gui == null) { - gui = new JavaTargetChooserPanelGUI( project, folders, bottomPanel == null ? null : bottomPanel.getComponent(), isPackage ); + gui = new JavaTargetChooserPanelGUI( project, folders, bottomPanel == null ? null : bottomPanel.getComponent(), type ); gui.addChangeListener(this); } return gui; @@ -96,12 +96,19 @@ setErrorMessage( null ); return false; } - if ( isPackage ) { + if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE) { if ( !isValidPackageName( gui.getTargetName() ) ) { setErrorMessage( "ERR_JavaTargetChooser_InvalidPackage" ); return false; } } + else if (type == NewJavaFileWizardIterator.TYPE_PKG_INFO) { + assert "package-info".equals( gui.getTargetName() ); //NOI18N + if ( !isValidPackageName( gui.getPackageName() ) ) { + setErrorMessage( "ERR_JavaTargetChooser_InvalidPackage" ); + return false; + } + } else { if ( !isValidTypeIdentifier( gui.getTargetName() ) ) { setErrorMessage( "ERR_JavaTargetChooser_InvalidClass" ); @@ -119,7 +126,7 @@ boolean returnValue=true; FileObject rootFolder = gui.getRootFolder(); SpecificationVersion specVersion = null; - if (!isPackage) { + if (type != NewJavaFileWizardIterator.TYPE_PACKAGE) { String sl = SourceLevelQuery.getSourceLevel(rootFolder); specVersion = sl != null? new SpecificationVersion(sl): null; } @@ -136,7 +143,7 @@ return false; } - if (!isPackage && returnValue && gui.getPackageName().length() == 0 && specVersion != null && JDK_14.compareTo(specVersion)<=0) { + if (type != NewJavaFileWizardIterator.TYPE_PACKAGE && returnValue && gui.getPackageName().length() == 0 && specVersion != null && JDK_14.compareTo(specVersion)<=0) { if(isValidPackageRequired){ setErrorMessage( "ERR_JavaTargetChooser_CantUseDefaultPackage" ); return false; @@ -230,7 +237,7 @@ assert gui != null; FileObject rootFolder = gui.getRootFolder(); FileObject folder = null; - if ( !isPackage ) { + if ( type != NewJavaFileWizardIterator.TYPE_PACKAGE ) { String packageFileName = gui.getPackageFileName(); folder = rootFolder.getFileObject( packageFileName ); if ( folder == null ) { Index: src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form =================================================================== RCS file: /cvs/java/project/src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form,v retrieving revision 1.9 diff -u -r1.9 JavaTargetChooserPanelGUI.form --- src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form 13 Jul 2004 13:24:35 -0000 1.9 +++ src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form 27 Oct 2005 07:15:22 -0000 @@ -6,6 +6,13 @@ + + + + + + + Index: src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.java =================================================================== RCS file: /cvs/java/project/src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.java,v retrieving revision 1.25 diff -u -r1.25 JavaTargetChooserPanelGUI.java --- src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.java 21 Mar 2005 18:05:39 -0000 1.25 +++ src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.java 27 Oct 2005 07:15:25 -0000 @@ -59,26 +59,31 @@ private Project project; private String expectedExtension; private final List/**/ listeners = new ArrayList(); - private boolean isPackage; + private int type; private SourceGroup groups[]; private boolean ignoreRootCombo; /** Creates new form SimpleTargetChooserGUI */ - public JavaTargetChooserPanelGUI( Project p, SourceGroup[] groups, Component bottomPanel, boolean isPackage ) { - this.isPackage = isPackage; + public JavaTargetChooserPanelGUI( Project p, SourceGroup[] groups, Component bottomPanel, int type ) { + this.type = type; this.project = p; this.groups = groups; initComponents(); - if ( isPackage ) { + if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) { packageComboBox.setVisible( false ); packageLabel.setVisible( false ); Mnemonics.setLocalizedText (fileLabel, NbBundle.getMessage (JavaTargetChooserPanelGUI.class, "LBL_JavaTargetChooserPanelGUI_CreatedFolder_Label")); // NOI18N Mnemonics.setLocalizedText (documentNameLabel, NbBundle.getMessage (JavaTargetChooserPanelGUI.class, "LBL_JavaTargetChooserPanelGUI_PackageName_Label")); // NOI18N - } + documentNameTextField.getDocument().addDocumentListener( this ); + } + else if ( type == NewJavaFileWizardIterator.TYPE_PKG_INFO ) { + documentNameTextField.setEditable (false); + } else { packageComboBox.getEditor().addActionListener( this ); + documentNameTextField.getDocument().addDocumentListener( this ); } @@ -87,7 +92,7 @@ } //initValues( project, null, null ); - documentNameTextField.getDocument().addDocumentListener( this ); + // Not very nice Component packageEditor = packageComboBox.getEditor().getEditorComponent(); @@ -128,7 +133,7 @@ rootComboBox.setSelectedItem( preselectedGroup ); ignoreRootCombo = false; Object preselectedPackage = getPreselectedPackage(preselectedGroup, preselectedFolder, packageComboBox.getModel()); - if ( isPackage ) { + if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) { String docName = preselectedPackage == null || preselectedPackage.toString().length() == 0 ? DEFAULT_NEW_PACKAGE_NAME : preselectedPackage.toString() + "." + DEFAULT_NEW_PACKAGE_NAME; @@ -146,12 +151,16 @@ } if (template != null) { if ( documentNameTextField.getText().trim().length() == 0 ) { // To preserve the class name on back in the wiazard - documentNameTextField.setText (NEW_CLASS_PREFIX + template.getName ()); - documentNameTextField.selectAll (); + if (this.type == NewJavaFileWizardIterator.TYPE_PKG_INFO) { + documentNameTextField.setText (template.getName ()); + } + else { + //Ordinary file + documentNameTextField.setText (NEW_CLASS_PREFIX + template.getName ()); + documentNameTextField.selectAll (); + } } } - } - if ( !isPackage ) { updatePackages( false ); } // Determine the extension @@ -168,7 +177,7 @@ public String getPackageFileName() { - if ( isPackage ) { + if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) { return ""; // NOI18N } @@ -180,7 +189,7 @@ * Name of selected package, or "" for default package. */ String getPackageName() { - if ( isPackage ) { + if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) { return ""; // NOI18N } return packageComboBox.getEditor().getItem().toString(); @@ -372,7 +381,7 @@ public void actionPerformed(java.awt.event.ActionEvent e) { if ( rootComboBox == e.getSource() ) { - if ( !ignoreRootCombo && !isPackage ) { + if ( !ignoreRootCombo && type != NewJavaFileWizardIterator.TYPE_PACKAGE ) { updatePackages( true ); } updateText(); @@ -459,7 +468,7 @@ FileObject rootFolder = g.getRootFolder(); String packageName = getPackageFileName(); String documentName = documentNameTextField.getText().trim(); - if ( isPackage ) { + if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) { documentName = documentName.replace( '.', '/' ); // NOI18N } else if ( documentName.length() > 0 ) { Index: src/org/netbeans/modules/java/project/NewJavaFileWizardIterator.java =================================================================== RCS file: /cvs/java/project/src/org/netbeans/modules/java/project/NewJavaFileWizardIterator.java,v retrieving revision 1.16 diff -u -r1.16 NewJavaFileWizardIterator.java --- src/org/netbeans/modules/java/project/NewJavaFileWizardIterator.java 25 Aug 2004 02:23:36 -0000 1.16 +++ src/org/netbeans/modules/java/project/NewJavaFileWizardIterator.java 27 Oct 2005 07:15:25 -0000 @@ -44,18 +44,26 @@ private static final long serialVersionUID = 1L; - private boolean isPackage = false; + public static final int TYPE_FILE = 0; + public static final int TYPE_PACKAGE = 1; + public static final int TYPE_PKG_INFO = 2; + + private int type = TYPE_FILE; /** Create a new wizard iterator. */ public NewJavaFileWizardIterator() {} - private NewJavaFileWizardIterator( boolean isPackage ) { - this.isPackage = isPackage; + private NewJavaFileWizardIterator( int type ) { + this.type = type; } public static NewJavaFileWizardIterator packageWizard() { - return new NewJavaFileWizardIterator( true ); + return new NewJavaFileWizardIterator( TYPE_PACKAGE ); + } + + public static NewJavaFileWizardIterator packageInfoWizard () { + return new NewJavaFileWizardIterator( TYPE_PKG_INFO ); } private WizardDescriptor.Panel[] createPanels (WizardDescriptor wizardDescriptor) { @@ -73,14 +81,14 @@ } else { - if ( isPackage ) { + if ( this.type == TYPE_FILE ) { return new WizardDescriptor.Panel[] { - new JavaTargetChooserPanel( project, groups, null, true ), + JavaTemplates.createPackageChooser( project, groups ), }; } - else { + else { return new WizardDescriptor.Panel[] { - JavaTemplates.createPackageChooser( project, groups ), + new JavaTargetChooserPanel( project, groups, null, this.type), }; } } @@ -115,7 +123,7 @@ FileObject template = Templates.getTemplate( wiz ); FileObject createdFile = null; - if ( isPackage ) { + if ( this.type == TYPE_PACKAGE ) { targetName = targetName.replace( '.', '/' ); // NOI18N createdFile = FileUtil.createFolder( dir, targetName ); } Index: src/org/netbeans/modules/java/project/layer.xml =================================================================== RCS file: /cvs/java/project/src/org/netbeans/modules/java/project/layer.xml,v retrieving revision 1.20 diff -u -r1.20 layer.xml --- src/org/netbeans/modules/java/project/layer.xml 5 Apr 2005 18:31:37 -0000 1.20 +++ src/org/netbeans/modules/java/project/layer.xml 27 Oct 2005 07:15:26 -0000 @@ -24,7 +24,8 @@ - + + @@ -78,6 +79,15 @@ + + + + + + + + + Index: src/org/netbeans/modules/java/project/resources/package-info.html =================================================================== RCS file: src/org/netbeans/modules/java/project/resources/package-info.html diff -N src/org/netbeans/modules/java/project/resources/package-info.html --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/netbeans/modules/java/project/resources/package-info.html 27 Oct 2005 07:15:26 -0000 @@ -0,0 +1,19 @@ + + + + +Creates a new Java package-info. To be able to use package annotations, +your project must use JDK 5.0 or compatible. + + Index: src/org/netbeans/modules/java/project/resources/package-info.template =================================================================== RCS file: src/org/netbeans/modules/java/project/resources/package-info.template diff -N src/org/netbeans/modules/java/project/resources/package-info.template --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/netbeans/modules/java/project/resources/package-info.template 27 Oct 2005 07:15:26 -0000 @@ -0,0 +1,10 @@ +/* + * __NAME__.java + * + * Created on __DATE__, __TIME__ + * + * To change this template, choose Tools | Template Manager + * and open the template in the editor. + */ + +package Templates.Classes; Index: src/org/netbeans/spi/java/project/support/ui/templates/JavaTemplates.java =================================================================== RCS file: /cvs/java/project/src/org/netbeans/spi/java/project/support/ui/templates/JavaTemplates.java,v retrieving revision 1.15 diff -u -r1.15 JavaTemplates.java --- src/org/netbeans/spi/java/project/support/ui/templates/JavaTemplates.java 30 Mar 2005 08:39:35 -0000 1.15 +++ src/org/netbeans/spi/java/project/support/ui/templates/JavaTemplates.java 27 Oct 2005 07:15:27 -0000 @@ -78,7 +78,7 @@ if (folders.length == 0) { throw new IllegalArgumentException("No folders selected"); // NOI18N } - return new JavaTargetChooserPanel(project, folders, bottomPanel, false, validPackageRequired); + return new JavaTargetChooserPanel(project, folders, bottomPanel, NewJavaFileWizardIterator.TYPE_FILE, validPackageRequired); } /** Creates new WizardIterator containing standard Package chooser