# HG changeset patch # Parent 8bc7ff0b3d4be809a147a4982045a38d12fa89c6 Bug#230147 - User can't create file or folder in Favorites tab (remote host) diff --git a/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java b/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java --- a/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java +++ b/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanel.java @@ -147,8 +147,8 @@ targetFolder = gui.getTargetFolder(); } else if (gui.getTargetFolder() != null) { - rootFolder = FileUtil.toFileObject(FileUtil.normalizeFile(new File(gui.getTargetFolder()))); - targetFolder = ""; + rootFolder = gui.getRootFolder(); + targetFolder = gui.getTargetFolder(); } else { rootFolder = null; @@ -260,8 +260,8 @@ folderName = gui.getTargetFolder(); } else if (gui.getTargetFolder() != null) { - rootFolder = FileUtil.toFileObject(FileUtil.normalizeFile(new File(gui.getTargetFolder()))); - folderName = ""; + rootFolder = gui.getRootFolder(); + folderName = gui.getTargetFolder(); } else { rootFolder = null; diff --git a/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java b/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java --- a/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java +++ b/projectui/src/org/netbeans/modules/project/ui/SimpleTargetChooserPanelGUI.java @@ -70,6 +70,10 @@ import org.openide.util.ChangeSupport; import static org.netbeans.modules.project.ui.Bundle.*; import org.openide.filesystems.FileChooserBuilder; +import org.openide.filesystems.FileStateInvalidException; +import org.openide.filesystems.FileSystem; +import org.openide.filesystems.LocalFileSystem; +import org.openide.util.Exceptions; import org.openide.util.NbBundle.Messages; /** @@ -91,6 +95,7 @@ private final SourceGroup[] folders; private boolean isFolder; private boolean freeFileExtension; + private FileSystem fs; @SuppressWarnings("LeakingThisInConstructor") @Messages("LBL_SimpleTargetChooserPanel_Name=Name and Location") @@ -150,6 +155,15 @@ } locationComboBox.setModel( new DefaultComboBoxModel( folders ) ); + + if (preselectedFolder != null) { + try { + fs = preselectedFolder.getFileSystem(); + } catch (FileStateInvalidException ex) { + fs = null; + } + } + // Guess the group we want to create the file in SourceGroup preselectedGroup = getPreselectedGroup( folders, preselectedFolder ); // Create OS dependent relative name @@ -242,6 +256,10 @@ return folderName.replace( File.separatorChar, '/' ); // NOI18N } } + + public FileObject getRootFolder() { + return (fs == null) ? FileUtil.toFileObject(new File("")) : fs.getRoot(); // NOI18N + } public String getTargetName() {