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

(-)java/project/src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java (+4 lines)
Lines 188-193 Link Here
188
        
188
        
189
        if ( gui != null ) {
189
        if ( gui != null ) {
190
            // Try to preselect a folder
190
            // Try to preselect a folder
191
            //TODO preselection ought to work on non-existing SGs as well.
191
            FileObject preselectedFolder = Templates.getTargetFolder( wizard );            
192
            FileObject preselectedFolder = Templates.getTargetFolder( wizard );            
192
            // Init values
193
            // Init values
193
            gui.initValues( Templates.getTemplate( wizard ), preselectedFolder );
194
            gui.initValues( Templates.getTemplate( wizard ), preselectedFolder );
Lines 372-377 Link Here
372
    private static boolean existFileName(FileObject targetFolder, String relFileName) {
373
    private static boolean existFileName(FileObject targetFolder, String relFileName) {
373
        boolean result = false;
374
        boolean result = false;
374
        File fileForTargetFolder = FileUtil.toFile(targetFolder);
375
        File fileForTargetFolder = FileUtil.toFile(targetFolder);
376
        if (fileForTargetFolder == null) {
377
            return false;
378
        }
375
        if (fileForTargetFolder.exists()) {
379
        if (fileForTargetFolder.exists()) {
376
            result = new File (fileForTargetFolder, relFileName).exists();
380
            result = new File (fileForTargetFolder, relFileName).exists();
377
        } else {
381
        } else {
(-)java/project/src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.java (-3 / +21 lines)
Lines 36-41 Link Here
36
import javax.swing.event.ChangeEvent;
36
import javax.swing.event.ChangeEvent;
37
import javax.swing.event.ChangeListener;
37
import javax.swing.event.ChangeListener;
38
import javax.swing.event.DocumentListener;
38
import javax.swing.event.DocumentListener;
39
import org.netbeans.api.project.PotentialSourceGroup;
39
import org.netbeans.api.project.Project;
40
import org.netbeans.api.project.Project;
40
import org.netbeans.api.project.ProjectUtils;
41
import org.netbeans.api.project.ProjectUtils;
41
import org.netbeans.api.project.SourceGroup;
42
import org.netbeans.api.project.SourceGroup;
Lines 43-48 Link Here
43
import org.openide.filesystems.FileObject;
44
import org.openide.filesystems.FileObject;
44
import org.openide.filesystems.FileUtil;
45
import org.openide.filesystems.FileUtil;
45
import org.openide.awt.Mnemonics;
46
import org.openide.awt.Mnemonics;
47
import org.openide.filesystems.URLMapper;
46
import org.openide.loaders.DataObject;
48
import org.openide.loaders.DataObject;
47
import org.openide.loaders.DataObjectNotFoundException;
49
import org.openide.loaders.DataObjectNotFoundException;
48
import org.openide.util.NbBundle;
50
import org.openide.util.NbBundle;
Lines 190-196 Link Here
190
    }
192
    }
191
        
193
        
192
    public FileObject getRootFolder() {
194
    public FileObject getRootFolder() {
193
        return ((SourceGroup) rootComboBox.getSelectedItem()).getRootFolder();        
195
        SourceGroup sg = (SourceGroup) rootComboBox.getSelectedItem();
196
        if (sg instanceof PotentialSourceGroup) {
197
            File file = new File(((PotentialSourceGroup)sg).getPotencialRootFolder());
198
            file.mkdirs();
199
            return FileUtil.toFileObject(file);
200
        }
201
        return sg.getRootFolder();        
194
    }
202
    }
195
    
203
    
196
    public String getPackageFileName() {
204
    public String getPackageFileName() {
Lines 477-483 Link Here
477
    private void updateText() {
485
    private void updateText() {
478
        
486
        
479
        SourceGroup g = (SourceGroup) rootComboBox.getSelectedItem();
487
        SourceGroup g = (SourceGroup) rootComboBox.getSelectedItem();
480
        FileObject rootFolder = g.getRootFolder();
481
        String packageName = getPackageFileName();
488
        String packageName = getPackageFileName();
482
        String documentName = documentNameTextField.getText().trim();
489
        String documentName = documentNameTextField.getText().trim();
483
        if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) {
490
        if ( type == NewJavaFileWizardIterator.TYPE_PACKAGE ) {
Lines 486-492 Link Here
486
        else if ( documentName.length() > 0 ) {
493
        else if ( documentName.length() > 0 ) {
487
            documentName = documentName + expectedExtension;
494
            documentName = documentName + expectedExtension;
488
        }
495
        }
489
        String createdFileName = FileUtil.getFileDisplayName( rootFolder ) + 
496
        String start = "";
497
        if (g instanceof PotentialSourceGroup) {
498
            start = ((PotentialSourceGroup)g).getPotencialRootFolder().getPath();
499
        } else {
500
            FileObject rootFolder = g.getRootFolder();
501
            start = FileUtil.getFileDisplayName( rootFolder );
502
        }
503
        String createdFileName = start + 
490
            ( packageName.startsWith("/") || packageName.startsWith( File.separator ) ? "" : "/" ) + // NOI18N
504
            ( packageName.startsWith("/") || packageName.startsWith( File.separator ) ? "" : "/" ) + // NOI18N
491
            packageName + 
505
            packageName + 
492
            ( packageName.endsWith("/") || packageName.endsWith( File.separator ) || packageName.length() == 0 ? "" : "/" ) + // NOI18N
506
            ( packageName.endsWith("/") || packageName.endsWith( File.separator ) || packageName.length() == 0 ? "" : "/" ) + // NOI18N
Lines 497-502 Link Here
497
    
511
    
498
    private SourceGroup getPreselectedGroup(FileObject folder) {
512
    private SourceGroup getPreselectedGroup(FileObject folder) {
499
        for(int i = 0; folder != null && i < groups.length; i++) {
513
        for(int i = 0; folder != null && i < groups.length; i++) {
514
            if (groups[i] instanceof PotentialSourceGroup) {
515
                // not a parent for sure.
516
                continue;
517
            }
500
            FileObject root = groups[i].getRootFolder();
518
            FileObject root = groups[i].getRootFolder();
501
            if (root.equals(folder) || FileUtil.isParentOf(root, folder)) {
519
            if (root.equals(folder) || FileUtil.isParentOf(root, folder)) {
502
                return groups[i];
520
                return groups[i];
(-)java/project/src/org/netbeans/spi/java/project/support/ui/PackageView.java (-1 / +9 lines)
Lines 41-46 Link Here
41
import javax.swing.plaf.UIResource;
41
import javax.swing.plaf.UIResource;
42
import org.netbeans.api.progress.ProgressHandle;
42
import org.netbeans.api.progress.ProgressHandle;
43
import org.netbeans.api.progress.ProgressHandleFactory;
43
import org.netbeans.api.progress.ProgressHandleFactory;
44
import org.netbeans.api.project.PotentialSourceGroup;
44
import org.netbeans.api.project.SourceGroup;
45
import org.netbeans.api.project.SourceGroup;
45
import org.netbeans.api.queries.VisibilityQuery;
46
import org.netbeans.api.queries.VisibilityQuery;
46
import org.netbeans.modules.java.project.PackageDisplayUtils;
47
import org.netbeans.modules.java.project.PackageDisplayUtils;
Lines 50-55 Link Here
50
import org.openide.nodes.AbstractNode;
51
import org.openide.nodes.AbstractNode;
51
import org.openide.nodes.FilterNode;
52
import org.openide.nodes.FilterNode;
52
import org.openide.nodes.Node;
53
import org.openide.nodes.Node;
54
import org.openide.util.HelpCtx;
53
import org.openide.util.NbBundle;
55
import org.openide.util.NbBundle;
54
import org.openide.util.WeakListeners;
56
import org.openide.util.WeakListeners;
55
57
Lines 117-123 Link Here
117
    
119
    
118
    public static ComboBoxModel createListView(SourceGroup group) {        
120
    public static ComboBoxModel createListView(SourceGroup group) {        
119
        SortedSet<PackageItem> data = new TreeSet<PackageItem>();
121
        SortedSet<PackageItem> data = new TreeSet<PackageItem>();
120
        findNonExcludedPackages(null, data, group.getRootFolder(), group, false);
122
        if (! (group instanceof PotentialSourceGroup)) {
123
            findNonExcludedPackages(null, data, group.getRootFolder(), group, false);
124
        }
121
        return new DefaultComboBoxModel(data.toArray(new PackageItem[data.size()]));
125
        return new DefaultComboBoxModel(data.toArray(new PackageItem[data.size()]));
122
    }
126
    }
123
    
127
    
Lines 257-262 Link Here
257
                    });
261
                    });
258
                }
262
                }
259
            }
263
            }
264
        }
265
        
266
        public HelpCtx getHelpCtx() {
267
            return new HelpCtx(PackageView.class);
260
        }
268
        }
261
        
269
        
262
        private static Node getOriginalNode(SourceGroup group) {
270
        private static Node getOriginalNode(SourceGroup group) {
(-)java/source/src/org/netbeans/modules/java/source/tasklist/ErrorAnnotator.java (+4 lines)
Lines 30-35 Link Here
30
import javax.swing.Action;
30
import javax.swing.Action;
31
import org.netbeans.api.fileinfo.NonRecursiveFolder;
31
import org.netbeans.api.fileinfo.NonRecursiveFolder;
32
import org.netbeans.api.project.FileOwnerQuery;
32
import org.netbeans.api.project.FileOwnerQuery;
33
import org.netbeans.api.project.PotentialSourceGroup;
33
import org.netbeans.api.project.Project;
34
import org.netbeans.api.project.Project;
34
import org.netbeans.api.project.ProjectManager;
35
import org.netbeans.api.project.ProjectManager;
35
import org.netbeans.api.project.ProjectUtils;
36
import org.netbeans.api.project.ProjectUtils;
Lines 90-95 Link Here
90
                        
91
                        
91
                        if (p != null) {
92
                        if (p != null) {
92
                            for (SourceGroup sg : ProjectUtils.getSources(p).getSourceGroups("java"/*JavaProjectConstants.SOURCES_TYPE_JAVA*/)) {
93
                            for (SourceGroup sg : ProjectUtils.getSources(p).getSourceGroups("java"/*JavaProjectConstants.SOURCES_TYPE_JAVA*/)) {
94
                                if (sg instanceof PotentialSourceGroup) {
95
                                    continue;
96
                                }
93
                                FileObject sgRoot = sg.getRootFolder();
97
                                FileObject sgRoot = sg.getRootFolder();
94
                                
98
                                
95
                                if ((FileUtil.isParentOf(f, sgRoot) || f == sgRoot) && TaskCache.getDefault().isInError(sgRoot, true)) {
99
                                if ((FileUtil.isParentOf(f, sgRoot) || f == sgRoot) && TaskCache.getDefault().isInError(sgRoot, true)) {
(-)projects/projectapi/src/org/netbeans/api/project/PotentialSourceGroup.java (+31 lines)
Added Link Here
1
/*
2
 * The contents of this file are subject to the terms of the Common Development
3
 * and Distribution License (the License). You may not use this file except in
4
 * compliance with the License.
5
 * 
6
 * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7
 * or http://www.netbeans.org/cddl.txt.
8
 * 
9
 * When distributing Covered Code, include this CDDL Header Notice in each file
10
 * and include the License file at http://www.netbeans.org/cddl.txt.
11
 * If applicable, add the following below the CDDL Header, with the fields
12
 * enclosed by brackets [] replaced by your own identifying information:
13
 * "Portions Copyrighted [year] [name of copyright owner]"
14
 * 
15
 * The Original Software is NetBeans. The Initial Developer of the Original
16
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17
 * Microsystems, Inc. All Rights Reserved.
18
 */
19
package org.netbeans.api.project;
20
21
import java.net.URI;
22
23
/**
24
 *
25
 * @author mkleint
26
 */
27
public interface PotentialSourceGroup extends SourceGroup {
28
29
    URI getPotencialRootFolder();
30
    
31
}

Return to bug 102711