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

(-)a/projectapi/src/org/netbeans/api/project/ProjectUtils.java (-6 / +7 lines)
Lines 60-65 Link Here
60
import javax.swing.Icon;
60
import javax.swing.Icon;
61
import javax.swing.event.ChangeListener;
61
import javax.swing.event.ChangeListener;
62
import org.netbeans.api.annotations.common.NonNull;
62
import org.netbeans.api.annotations.common.NonNull;
63
import org.netbeans.api.annotations.common.NullAllowed;
63
import org.netbeans.modules.projectapi.AuxiliaryConfigBasedPreferencesProvider;
64
import org.netbeans.modules.projectapi.AuxiliaryConfigBasedPreferencesProvider;
64
import org.netbeans.modules.projectapi.AuxiliaryConfigImpl;
65
import org.netbeans.modules.projectapi.AuxiliaryConfigImpl;
65
import org.netbeans.spi.project.AuxiliaryConfiguration;
66
import org.netbeans.spi.project.AuxiliaryConfiguration;
Lines 97-103 Link Here
97
     * @return some information about it
98
     * @return some information about it
98
     * @see Project#getLookup
99
     * @see Project#getLookup
99
     */
100
     */
100
    public static ProjectInformation getInformation(Project p) {
101
    public static ProjectInformation getInformation(@NonNull Project p) {
101
        Lookup l = p.getLookup();
102
        Lookup l = p.getLookup();
102
        ProjectInformation pi = l.lookup(ProjectInformation.class);
103
        ProjectInformation pi = l.lookup(ProjectInformation.class);
103
        return new AnnotateIconProxyProjectInformation(pi != null ? pi : new BasicInformation(p));
104
        return new AnnotateIconProxyProjectInformation(pi != null ? pi : new BasicInformation(p));
Lines 112-118 Link Here
112
     * @return a list of sources for it
113
     * @return a list of sources for it
113
     * @see Project#getLookup
114
     * @see Project#getLookup
114
     */
115
     */
115
    public static Sources getSources(Project p) {
116
    public static Sources getSources(@NonNull Project p) {
116
        Lookup l = p.getLookup();
117
        Lookup l = p.getLookup();
117
        Sources s = l.lookup(Sources.class);
118
        Sources s = l.lookup(Sources.class);
118
        if (s != null) {
119
        if (s != null) {
Lines 181-187 Link Here
181
     * @return {@link Preferences} for the given project
182
     * @return {@link Preferences} for the given project
182
     * @since 1.16
183
     * @since 1.16
183
     */
184
     */
184
    public static Preferences getPreferences(Project project, Class clazz, boolean shared) {
185
    public static Preferences getPreferences(@NonNull Project project, @NonNull Class clazz, boolean shared) {
185
        Parameters.notNull("project", project);
186
        Parameters.notNull("project", project);
186
        Parameters.notNull("clazz", clazz);
187
        Parameters.notNull("clazz", clazz);
187
        
188
        
Lines 195-201 Link Here
195
     * @param master the original master project (for use with candidate param)
196
     * @param master the original master project (for use with candidate param)
196
     * @param candidate a candidate added subproject for master, or null
197
     * @param candidate a candidate added subproject for master, or null
197
     */
198
     */
198
    private static boolean visit(Map<Project,Boolean> encountered, Project curr, Project master, Project candidate) {
199
    private static boolean visit(@NonNull Map<Project,Boolean> encountered, @NonNull Project curr, Project master, @NullAllowed Project candidate) {
199
        if (encountered.containsKey(curr)) {
200
        if (encountered.containsKey(curr)) {
200
            if (encountered.get(curr)) {
201
            if (encountered.get(curr)) {
201
                return false;
202
                return false;
Lines 376-382 Link Here
376
     * @return an auxiliary configuration handle
377
     * @return an auxiliary configuration handle
377
     * @since org.netbeans.modules.projectapi/1 1.17
378
     * @since org.netbeans.modules.projectapi/1 1.17
378
     */
379
     */
379
    public static AuxiliaryConfiguration getAuxiliaryConfiguration(Project project) {
380
    public static AuxiliaryConfiguration getAuxiliaryConfiguration(@NonNull Project project) {
380
        Parameters.notNull("project", project);
381
        Parameters.notNull("project", project);
381
        return new AuxiliaryConfigImpl(project);
382
        return new AuxiliaryConfigImpl(project);
382
    }
383
    }
Lines 395-401 Link Here
395
     * @throws IOException if no such directory could be created
396
     * @throws IOException if no such directory could be created
396
     * @since org.netbeans.modules.projectapi/1 1.26
397
     * @since org.netbeans.modules.projectapi/1 1.26
397
     */
398
     */
398
    public static FileObject getCacheDirectory(Project project, Class<?> owner) throws IOException {
399
    public static FileObject getCacheDirectory(@NonNull Project project, @NonNull Class<?> owner) throws IOException {
399
        FileObject d;
400
        FileObject d;
400
        CacheDirectoryProvider cdp = project.getLookup().lookup(CacheDirectoryProvider.class);
401
        CacheDirectoryProvider cdp = project.getLookup().lookup(CacheDirectoryProvider.class);
401
        if (cdp != null) {
402
        if (cdp != null) {
(-)a/projectapi/src/org/netbeans/modules/projectapi/AuxiliaryConfigBasedPreferencesProvider.java (-1 / +2 lines)
Lines 61-66 Link Here
61
import java.util.prefs.AbstractPreferences;
61
import java.util.prefs.AbstractPreferences;
62
import java.util.prefs.BackingStoreException;
62
import java.util.prefs.BackingStoreException;
63
import java.util.prefs.Preferences;
63
import java.util.prefs.Preferences;
64
import org.netbeans.api.annotations.common.NonNull;
64
import org.netbeans.api.project.Project;
65
import org.netbeans.api.project.Project;
65
import org.netbeans.api.project.ProjectManager;
66
import org.netbeans.api.project.ProjectManager;
66
import org.netbeans.api.project.ProjectUtils;
67
import org.netbeans.api.project.ProjectUtils;
Lines 323-329 Link Here
323
        modified = true;
324
        modified = true;
324
    }
325
    }
325
    
326
    
326
    public static String findCNBForClass(Class<?> cls) {
327
    public static String findCNBForClass(@NonNull Class<?> cls) {
327
        String absolutePath;
328
        String absolutePath;
328
        ModuleInfo owner = Modules.getDefault().ownerOf(cls);
329
        ModuleInfo owner = Modules.getDefault().ownerOf(cls);
329
        if (owner != null) {
330
        if (owner != null) {
(-)a/projectui/src/org/netbeans/modules/project/ui/NewFileWizard.java (-2 / +6 lines)
Lines 47-52 Link Here
47
import java.beans.PropertyChangeListener;
47
import java.beans.PropertyChangeListener;
48
import java.text.MessageFormat;
48
import java.text.MessageFormat;
49
import javax.swing.JComponent;
49
import javax.swing.JComponent;
50
import org.netbeans.api.annotations.common.NonNull;
50
import org.netbeans.api.project.Project;
51
import org.netbeans.api.project.Project;
51
import org.netbeans.api.project.ProjectUtils;
52
import org.netbeans.api.project.ProjectUtils;
52
import org.netbeans.api.project.Sources;
53
import org.netbeans.api.project.Sources;
Lines 62-79 Link Here
62
63
63
public final class NewFileWizard extends TemplateWizard {
64
public final class NewFileWizard extends TemplateWizard {
64
65
66
    @NonNull
65
    private Project currP;
67
    private Project currP;
66
    private MessageFormat format;
68
    private MessageFormat format;
67
    // private String[] recommendedTypes;
69
    // private String[] recommendedTypes;
70
71
    @NonNull
68
    private Project getCurrentProject() {
72
    private Project getCurrentProject() {
69
        return currP;
73
        return currP;
70
    }
74
    }
71
75
72
    private void setCurrentProject(Project p) {
76
    private void setCurrentProject(@NonNull Project p) {
73
        this.currP = p;
77
        this.currP = p;
74
    }
78
    }
75
79
76
    public NewFileWizard(Project project /*, String recommendedTypes[] */) {
80
    public NewFileWizard(@NonNull Project project /*, String recommendedTypes[] */) {
77
        setCurrentProject(project);
81
        setCurrentProject(project);
78
        putProperty(ProjectChooserFactory.WIZARD_KEY_PROJECT, getCurrentProject());
82
        putProperty(ProjectChooserFactory.WIZARD_KEY_PROJECT, getCurrentProject());
79
        format = new MessageFormat(NbBundle.getBundle(NewFileWizard.class).getString("LBL_NewFileWizard_MessageFormat"));
83
        format = new MessageFormat(NbBundle.getBundle(NewFileWizard.class).getString("LBL_NewFileWizard_MessageFormat"));
(-)a/projectui/src/org/netbeans/modules/project/ui/OpenProjectList.java (-4 / +5 lines)
Lines 956-962 Link Here
956
            LOAD.exit();
956
            LOAD.exit();
957
        }
957
        }
958
    }
958
    }
959
        
959
960
    @NonNull
960
    public Project[] getOpenProjects() {
961
    public Project[] getOpenProjects() {
961
        return ProjectManager.mutex().readAccess(new Mutex.Action<Project[]>() {
962
        return ProjectManager.mutex().readAccess(new Mutex.Action<Project[]>() {
962
            public @Override Project[] run() {
963
            public @Override Project[] run() {
Lines 1087-1093 Link Here
1087
1088
1088
               
1089
               
1089
    // Used from NewFile action        
1090
    // Used from NewFile action        
1090
    public List<DataObject> getTemplatesLRU( Project project,  PrivilegedTemplates priv ) {
1091
    public List<DataObject> getTemplatesLRU( @NonNull Project project,  PrivilegedTemplates priv ) {
1091
        List<FileObject> pLRU = getTemplateNamesLRU( project,  priv );
1092
        List<FileObject> pLRU = getTemplateNamesLRU( project,  priv );
1092
        List<DataObject> templates = new ArrayList<DataObject>();
1093
        List<DataObject> templates = new ArrayList<DataObject>();
1093
        for( Iterator<FileObject> it = pLRU.iterator(); it.hasNext(); ) {
1094
        for( Iterator<FileObject> it = pLRU.iterator(); it.hasNext(); ) {
Lines 1264-1270 Link Here
1264
            this.icon = icon;
1265
            this.icon = icon;
1265
        }
1266
        }
1266
    }
1267
    }
1267
    public static List<TemplateItem> prepareTemplates(Project project, Lookup lookup) {
1268
    public static List<TemplateItem> prepareTemplates(@NonNull Project project, @NonNull Lookup lookup) {
1268
        // check the action context for recommmended/privileged templates..
1269
        // check the action context for recommmended/privileged templates..
1269
        PrivilegedTemplates privs = lookup.lookup(PrivilegedTemplates.class);
1270
        PrivilegedTemplates privs = lookup.lookup(PrivilegedTemplates.class);
1270
        final List<TemplateItem> items = new ArrayList<TemplateItem>();
1271
        final List<TemplateItem> items = new ArrayList<TemplateItem>();
Lines 1353-1359 Link Here
1353
            OpenProjectListSettings.getInstance().setMainProjectURL( mainRoot );
1354
            OpenProjectListSettings.getInstance().setMainProjectURL( mainRoot );
1354
    }
1355
    }
1355
        
1356
        
1356
    private ArrayList<FileObject> getTemplateNamesLRU( final Project project, PrivilegedTemplates priv ) {
1357
    private ArrayList<FileObject> getTemplateNamesLRU( @NonNull final Project project, PrivilegedTemplates priv ) {
1357
        // First take recently used templates and try to find those which
1358
        // First take recently used templates and try to find those which
1358
        // are supported by the project.
1359
        // are supported by the project.
1359
        
1360
        
(-)a/projectui/src/org/netbeans/modules/project/ui/ProjectChooserFactoryImpl.java (-1 / +2 lines)
Lines 46-51 Link Here
46
46
47
import java.io.File;
47
import java.io.File;
48
import javax.swing.JFileChooser;
48
import javax.swing.JFileChooser;
49
import org.netbeans.api.annotations.common.NonNull;
49
import org.netbeans.api.project.Project;
50
import org.netbeans.api.project.Project;
50
import org.netbeans.modules.project.uiapi.ProjectChooserFactory;
51
import org.netbeans.modules.project.uiapi.ProjectChooserFactory;
51
import org.netbeans.api.project.SourceGroup;
52
import org.netbeans.api.project.SourceGroup;
Lines 65-71 Link Here
65
        return ProjectChooserAccessory.createProjectChooser( false );
66
        return ProjectChooserAccessory.createProjectChooser( false );
66
    }
67
    }
67
68
68
    public @Override WizardDescriptor.Panel<WizardDescriptor> createSimpleTargetChooser(Project project, SourceGroup[] folders,
69
    public @Override WizardDescriptor.Panel<WizardDescriptor> createSimpleTargetChooser(@NonNull Project project, @NonNull SourceGroup[] folders,
69
            WizardDescriptor.Panel<WizardDescriptor> bottomPanel, boolean freeFileExtension) {
70
            WizardDescriptor.Panel<WizardDescriptor> bottomPanel, boolean freeFileExtension) {
70
        return new SimpleTargetChooserPanel(project, folders, bottomPanel, false, freeFileExtension);
71
        return new SimpleTargetChooserPanel(project, folders, bottomPanel, false, freeFileExtension);
71
    }
72
    }
(-)a/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java (-1 / +4 lines)
Lines 49-54 Link Here
49
import javax.swing.JPanel;
49
import javax.swing.JPanel;
50
import javax.swing.event.ChangeEvent;
50
import javax.swing.event.ChangeEvent;
51
import javax.swing.event.ChangeListener;
51
import javax.swing.event.ChangeListener;
52
import org.netbeans.api.annotations.common.NonNull;
52
import org.netbeans.api.project.Project;
53
import org.netbeans.api.project.Project;
53
import org.netbeans.api.project.SourceGroup;
54
import org.netbeans.api.project.SourceGroup;
54
import static org.netbeans.modules.project.ui.Bundle.*;
55
import static org.netbeans.modules.project.ui.Bundle.*;
Lines 69-75 Link Here
69
    private final ChangeSupport changeSupport = new ChangeSupport(this);
70
    private final ChangeSupport changeSupport = new ChangeSupport(this);
70
    private SimpleTargetChooserPanelGUI gui;
71
    private SimpleTargetChooserPanelGUI gui;
71
72
73
    @NonNull
72
    private Project project;
74
    private Project project;
75
    @NonNull
73
    private SourceGroup[] folders;
76
    private SourceGroup[] folders;
74
    private WizardDescriptor.Panel<WizardDescriptor> bottomPanel;
77
    private WizardDescriptor.Panel<WizardDescriptor> bottomPanel;
75
    private WizardDescriptor wizard;
78
    private WizardDescriptor wizard;
Lines 77-83 Link Here
77
    private boolean freeFileExtension;
80
    private boolean freeFileExtension;
78
    
81
    
79
    @SuppressWarnings("LeakingThisInConstructor")
82
    @SuppressWarnings("LeakingThisInConstructor")
80
    SimpleTargetChooserPanel(Project project, SourceGroup[] folders,
83
    SimpleTargetChooserPanel(@NonNull Project project, @NonNull SourceGroup[] folders,
81
            WizardDescriptor.Panel<WizardDescriptor> bottomPanel, boolean isFolder, boolean freeFileExtension) {
84
            WizardDescriptor.Panel<WizardDescriptor> bottomPanel, boolean isFolder, boolean freeFileExtension) {
82
        this.folders = folders;
85
        this.folders = folders;
83
        this.project = project;
86
        this.project = project;
(-)a/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java (-4 / +11 lines)
Lines 56-61 Link Here
56
import javax.swing.event.ChangeListener;
56
import javax.swing.event.ChangeListener;
57
import javax.swing.event.DocumentEvent;
57
import javax.swing.event.DocumentEvent;
58
import javax.swing.event.DocumentListener;
58
import javax.swing.event.DocumentListener;
59
import org.netbeans.api.annotations.common.CheckForNull;
60
import org.netbeans.api.annotations.common.NonNull;
61
import org.netbeans.api.annotations.common.NullAllowed;
59
import org.netbeans.api.project.Project;
62
import org.netbeans.api.project.Project;
60
import org.netbeans.api.project.ProjectUtils;
63
import org.netbeans.api.project.ProjectUtils;
61
import org.netbeans.api.project.SourceGroup;
64
import org.netbeans.api.project.SourceGroup;
Lines 79-95 Link Here
79
    private static final Dimension PREF_DIM = new Dimension(500, 340);
82
    private static final Dimension PREF_DIM = new Dimension(500, 340);
80
    
83
    
81
    private final ListCellRenderer CELL_RENDERER = new GroupCellRenderer();
84
    private final ListCellRenderer CELL_RENDERER = new GroupCellRenderer();
82
        
85
86
    @NonNull
83
    private Project project;
87
    private Project project;
84
    private String expectedExtension;
88
    private String expectedExtension;
85
    private final ChangeSupport changeSupport = new ChangeSupport(this);
89
    private final ChangeSupport changeSupport = new ChangeSupport(this);
90
    @NonNull
86
    private SourceGroup[] folders;
91
    private SourceGroup[] folders;
87
    private boolean isFolder;
92
    private boolean isFolder;
88
    private boolean freeFileExtension;
93
    private boolean freeFileExtension;
89
    
94
    
90
    @SuppressWarnings("LeakingThisInConstructor")
95
    @SuppressWarnings("LeakingThisInConstructor")
91
    @Messages("LBL_SimpleTargetChooserPanel_Name=Name and Location")
96
    @Messages("LBL_SimpleTargetChooserPanel_Name=Name and Location")
92
    public SimpleTargetChooserPanelGUI( Project project, SourceGroup[] folders, Component bottomPanel, boolean isFolder, boolean freeFileExtension) {
97
    public SimpleTargetChooserPanelGUI( @NonNull Project project, @NonNull SourceGroup[] folders, Component bottomPanel, boolean isFolder, boolean freeFileExtension) {
93
        this.project = project;
98
        this.project = project;
94
        this.folders = folders.clone();
99
        this.folders = folders.clone();
95
        this.isFolder = isFolder;
100
        this.isFolder = isFolder;
Lines 123-129 Link Here
123
        "LBL_TargetChooser_CreatedFile_Label=&Created File:",
128
        "LBL_TargetChooser_CreatedFile_Label=&Created File:",
124
        "# sample folder name", "LBL_folder_name=folder"
129
        "# sample folder name", "LBL_folder_name=folder"
125
    })
130
    })
126
    final void initValues(FileObject template, FileObject preselectedFolder, String documentName) {
131
    final void initValues(FileObject template, @NullAllowed FileObject preselectedFolder, String documentName) {
127
        assert project != null;
132
        assert project != null;
128
        
133
        
129
        projectTextField.setText(ProjectUtils.getInformation(project).getDisplayName());
134
        projectTextField.setText(ProjectUtils.getInformation(project).getDisplayName());
Lines 206-212 Link Here
206
    public SourceGroup getTargetGroup() {
211
    public SourceGroup getTargetGroup() {
207
        return (SourceGroup)locationComboBox.getSelectedItem();
212
        return (SourceGroup)locationComboBox.getSelectedItem();
208
    }
213
    }
209
        
214
215
    @CheckForNull
210
    public String getTargetFolder() {
216
    public String getTargetFolder() {
211
        
217
        
212
        String folderName = folderTextField.getText().trim();
218
        String folderName = folderTextField.getText().trim();
Lines 392-397 Link Here
392
    private javax.swing.JSeparator targetSeparator;
398
    private javax.swing.JSeparator targetSeparator;
393
    // End of variables declaration//GEN-END:variables
399
    // End of variables declaration//GEN-END:variables
394
400
401
    @CheckForNull
395
    private SourceGroup getPreselectedGroup( SourceGroup[] groups, FileObject folder ) {        
402
    private SourceGroup getPreselectedGroup( SourceGroup[] groups, FileObject folder ) {        
396
        for( int i = 0; folder != null && i < groups.length; i++ ) {
403
        for( int i = 0; folder != null && i < groups.length; i++ ) {
397
            if( FileUtil.isParentOf( groups[i].getRootFolder(), folder )
404
            if( FileUtil.isParentOf( groups[i].getRootFolder(), folder )
(-)a/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanel.java (-1 / +3 lines)
Lines 49-54 Link Here
49
import java.awt.event.ActionListener;
49
import java.awt.event.ActionListener;
50
import javax.swing.event.ChangeEvent;
50
import javax.swing.event.ChangeEvent;
51
import javax.swing.event.ChangeListener;
51
import javax.swing.event.ChangeListener;
52
import org.netbeans.api.annotations.common.NonNull;
52
import org.netbeans.api.project.Project;
53
import org.netbeans.api.project.Project;
53
import org.netbeans.modules.project.uiapi.ProjectChooserFactory;
54
import org.netbeans.modules.project.uiapi.ProjectChooserFactory;
54
import org.netbeans.spi.project.ui.templates.support.Templates;
55
import org.netbeans.spi.project.ui.templates.support.Templates;
Lines 73-83 Link Here
73
    private final ChangeSupport changeSupport = new ChangeSupport(this);
74
    private final ChangeSupport changeSupport = new ChangeSupport(this);
74
    private TemplateChooserPanelGUI gui;
75
    private TemplateChooserPanelGUI gui;
75
76
77
    @NonNull
76
    private Project project;
78
    private Project project;
77
    // private String[] recommendedTypes;
79
    // private String[] recommendedTypes;
78
    private WizardDescriptor wizard;
80
    private WizardDescriptor wizard;
79
81
80
    TemplateChooserPanel( Project p /*, String recommendedTypes[] */ ) {
82
    TemplateChooserPanel( @NonNull Project p /*, String recommendedTypes[] */ ) {
81
        this.project = p;
83
        this.project = p;
82
        /* this.recommendedTypes = recommendedTypes; */
84
        /* this.recommendedTypes = recommendedTypes; */
83
    }
85
    }
(-)a/projectui/src/org/netbeans/modules/project/ui/TemplateChooserPanelGUI.java (-1 / +1 lines)
Lines 110-116 Link Here
110
        projectsComboBox.setRenderer (projectCellRenderer);
110
        projectsComboBox.setRenderer (projectCellRenderer);
111
     }
111
     }
112
    
112
    
113
    public void readValues (Project p, String category, String template) {
113
    public void readValues (@NonNull Project p, String category, String template) {
114
        assert p != null : "Project can not be null";   //NOI18N
114
        assert p != null : "Project can not be null";   //NOI18N
115
        boolean wf;
115
        boolean wf;
116
        synchronized (this) {
116
        synchronized (this) {
(-)a/projectui/src/org/netbeans/modules/project/ui/actions/ActionsUtil.java (+2 lines)
Lines 53-58 Link Here
53
import java.util.Set;
53
import java.util.Set;
54
import java.util.logging.Level;
54
import java.util.logging.Level;
55
import java.util.logging.Logger;
55
import java.util.logging.Logger;
56
import org.netbeans.api.annotations.common.NonNull;
56
import org.netbeans.api.project.FileOwnerQuery;
57
import org.netbeans.api.project.FileOwnerQuery;
57
import org.netbeans.api.project.Project;
58
import org.netbeans.api.project.Project;
58
import org.netbeans.spi.project.ActionProvider;
59
import org.netbeans.spi.project.ActionProvider;
Lines 76-81 Link Here
76
     * have the command supported it will return array including the project. If there
77
     * have the command supported it will return array including the project. If there
77
     * is one project with the command disabled it will return empty array.
78
     * is one project with the command disabled it will return empty array.
78
     */
79
     */
80
    @NonNull
79
    public static Project[] getProjectsFromLookup( Lookup lookup, String command ) {    
81
    public static Project[] getProjectsFromLookup( Lookup lookup, String command ) {    
80
        // First find out whether there is a project directly in the Lookup
82
        // First find out whether there is a project directly in the Lookup
81
        Set<Project> result = new LinkedHashSet<Project>(); // XXX or use OpenProjectList.projectByDisplayName?
83
        Set<Project> result = new LinkedHashSet<Project>(); // XXX or use OpenProjectList.projectByDisplayName?
(-)a/projectui/src/org/netbeans/modules/project/ui/actions/NewFile.java (-2 / +4 lines)
Lines 63-68 Link Here
63
import javax.swing.JMenu;
63
import javax.swing.JMenu;
64
import javax.swing.JMenuItem;
64
import javax.swing.JMenuItem;
65
import javax.swing.JPopupMenu.Separator;
65
import javax.swing.JPopupMenu.Separator;
66
import org.netbeans.api.annotations.common.NonNull;
66
import org.netbeans.api.project.Project;
67
import org.netbeans.api.project.Project;
67
import org.netbeans.modules.project.ui.NewFileWizard;
68
import org.netbeans.modules.project.ui.NewFileWizard;
68
import org.netbeans.modules.project.ui.NoProjectNew;
69
import org.netbeans.modules.project.ui.NoProjectNew;
Lines 91-97 Link Here
91
@Messages({
92
@Messages({
92
    "LBL_NewFileAction_Name=&New File...",
93
    "LBL_NewFileAction_Name=&New File...",
93
    "LBL_NewFileAction_PopupName=New",
94
    "LBL_NewFileAction_PopupName=New",
94
    "#{0} Name of the template", "LBL_NewFileAction_Template_PopupName={0}..."
95
    "# {0} - Name of the template", "LBL_NewFileAction_Template_PopupName={0}..."
95
})
96
})
96
public class NewFile extends ProjectAction implements PropertyChangeListener, Popup {
97
public class NewFile extends ProjectAction implements PropertyChangeListener, Popup {
97
98
Lines 239-244 Link Here
239
240
240
    // Private methods ---------------------------------------------------------
241
    // Private methods ---------------------------------------------------------
241
242
243
    @NonNull
242
    private Project preselectedProject( Lookup context ) {
244
    private Project preselectedProject( Lookup context ) {
243
        Project preselectedProject = null;
245
        Project preselectedProject = null;
244
246
Lines 298-304 Link Here
298
        "LBL_NewFileAction_File_PopupName=Other...",
300
        "LBL_NewFileAction_File_PopupName=Other...",
299
        "NewFile.please_wait=Please wait..."
301
        "NewFile.please_wait=Please wait..."
300
    })
302
    })
301
    private void fillSubMenu(final JMenu menuItem, final Project project) {
303
    private void fillSubMenu(final JMenu menuItem, @NonNull final Project project) {
302
        menuItem.removeAll();
304
        menuItem.removeAll();
303
        JMenuItem wait = new JMenuItem(NewFile_please_wait());
305
        JMenuItem wait = new JMenuItem(NewFile_please_wait());
304
        wait.setEnabled(false);
306
        wait.setEnabled(false);
(-)a/projectuiapi/src/org/netbeans/modules/project/uiapi/ProjectChooserFactory.java (-2 / +3 lines)
Lines 46-57 Link Here
46
46
47
import java.io.File;
47
import java.io.File;
48
import javax.swing.JFileChooser;
48
import javax.swing.JFileChooser;
49
import org.netbeans.api.annotations.common.NonNull;
49
import org.netbeans.api.project.Project;
50
import org.netbeans.api.project.Project;
50
import org.netbeans.api.project.SourceGroup;
51
import org.netbeans.api.project.SourceGroup;
51
import org.openide.WizardDescriptor;
52
import org.openide.WizardDescriptor;
52
53
53
/**
54
/**
54
 * Factory to be implemented bu the ui implementation
55
 * Factory to be implemented by the UI implementation
55
 * @author Petr Hrebejk
56
 * @author Petr Hrebejk
56
 */
57
 */
57
public interface ProjectChooserFactory {
58
public interface ProjectChooserFactory {
Lines 70-76 Link Here
70
71
71
    public JFileChooser createProjectChooser(); 
72
    public JFileChooser createProjectChooser(); 
72
    
73
    
73
    public WizardDescriptor.Panel<WizardDescriptor> createSimpleTargetChooser(Project project, SourceGroup[] folders,
74
    public WizardDescriptor.Panel<WizardDescriptor> createSimpleTargetChooser(@NonNull Project project, @NonNull SourceGroup[] folders,
74
            WizardDescriptor.Panel<WizardDescriptor> bottomPanel, boolean freeFileExtension);
75
            WizardDescriptor.Panel<WizardDescriptor> bottomPanel, boolean freeFileExtension);
75
            
76
            
76
}
77
}
(-)a/projectuiapi/src/org/netbeans/spi/project/ui/templates/support/Templates.java (-2 / +5 lines)
Lines 45-50 Link Here
45
package org.netbeans.spi.project.ui.templates.support;
45
package org.netbeans.spi.project.ui.templates.support;
46
46
47
import java.io.IOException;
47
import java.io.IOException;
48
import org.netbeans.api.annotations.common.NonNull;
48
import org.netbeans.api.project.FileOwnerQuery;
49
import org.netbeans.api.project.FileOwnerQuery;
49
import org.netbeans.api.project.Project;
50
import org.netbeans.api.project.Project;
50
import org.netbeans.api.project.SourceGroup;
51
import org.netbeans.api.project.SourceGroup;
Lines 267-273 Link Here
267
     * @return a builder which can be used to customize and then create the target chooser
268
     * @return a builder which can be used to customize and then create the target chooser
268
     * @since org.netbeans.modules.projectuiapi/1 1.45
269
     * @since org.netbeans.modules.projectuiapi/1 1.45
269
     */
270
     */
270
    public static SimpleTargetChooserBuilder buildSimpleTargetChooser(Project project, SourceGroup[] folders) {
271
    public static SimpleTargetChooserBuilder buildSimpleTargetChooser(@NonNull Project project, @NonNull SourceGroup[] folders) {
271
        Parameters.notNull("project", project);
272
        Parameters.notNull("project", project);
272
        Parameters.notNull("folders", folders);
273
        Parameters.notNull("folders", folders);
273
        return new SimpleTargetChooserBuilder(project, folders);
274
        return new SimpleTargetChooserBuilder(project, folders);
Lines 279-289 Link Here
279
     * @since org.netbeans.modules.projectuiapi/1 1.45
280
     * @since org.netbeans.modules.projectuiapi/1 1.45
280
     */
281
     */
281
    public static final class SimpleTargetChooserBuilder {
282
    public static final class SimpleTargetChooserBuilder {
283
        @NonNull
282
        final Project project;
284
        final Project project;
285
        @NonNull
283
        final SourceGroup[] folders;
286
        final SourceGroup[] folders;
284
        WizardDescriptor.Panel<WizardDescriptor> bottomPanel;
287
        WizardDescriptor.Panel<WizardDescriptor> bottomPanel;
285
        boolean freeFileExtension;
288
        boolean freeFileExtension;
286
        SimpleTargetChooserBuilder(Project project, SourceGroup[] folders) {
289
        SimpleTargetChooserBuilder(@NonNull Project project, @NonNull SourceGroup[] folders) {
287
            this.project = project;
290
            this.project = project;
288
            this.folders = folders;
291
            this.folders = folders;
289
        }
292
        }

Return to bug 186943