diff --git a/ganttproject/src/net/sourceforge/ganttproject/gui/TextFieldAndFileChooserComponent.java b/ganttproject/src/net/sourceforge/ganttproject/gui/TextFieldAndFileChooserComponent.java index 3f151c5112..ecd9b9493e 100644 --- a/ganttproject/src/net/sourceforge/ganttproject/gui/TextFieldAndFileChooserComponent.java +++ b/ganttproject/src/net/sourceforge/ganttproject/gui/TextFieldAndFileChooserComponent.java @@ -272,7 +272,7 @@ private JTextComponent getTextField(Container container) { myUiFacade.createDialog(fc, dialogActions, "").show(); } - private File getWorkingDir() { + protected File getWorkingDir() { return new File(System.getProperty("user.dir")); } diff --git a/ganttproject/src/net/sourceforge/ganttproject/importer/FileChooserPage.java b/ganttproject/src/net/sourceforge/ganttproject/importer/FileChooserPage.java index c44af29e88..12c55ef165 100644 --- a/ganttproject/src/net/sourceforge/ganttproject/importer/FileChooserPage.java +++ b/ganttproject/src/net/sourceforge/ganttproject/importer/FileChooserPage.java @@ -42,8 +42,8 @@ class FileChooserPage extends AbstractFileChooserPage { private final Importer myImporter; private File myFile; - public FileChooserPage(UIFacade uiFacade, Importer importer, Preferences prefs) { - super(uiFacade, prefs, GanttLanguage.getInstance().getText("importerFileChooserPageTitle"), createFileFilter(importer), createOptions(importer), false); + public FileChooserPage(UIFacade uiFacade, Importer importer, Preferences prefs, File defaultFolder) { + super(uiFacade, prefs, GanttLanguage.getInstance().getText("importerFileChooserPageTitle"), createFileFilter(importer), createOptions(importer), false, defaultFolder); myImporter = importer; } diff --git a/ganttproject/src/net/sourceforge/ganttproject/importer/ImportFileWizardImpl.java b/ganttproject/src/net/sourceforge/ganttproject/importer/ImportFileWizardImpl.java index 941e72bf6e..f06954a05b 100644 --- a/ganttproject/src/net/sourceforge/ganttproject/importer/ImportFileWizardImpl.java +++ b/ganttproject/src/net/sourceforge/ganttproject/importer/ImportFileWizardImpl.java @@ -44,7 +44,7 @@ public class ImportFileWizardImpl extends AbstractWizard { public ImportFileWizardImpl(UIFacade uiFacade, IGanttProject project, GanttOptions options) { super(uiFacade, i18n.getText("importWizard.dialog.title"), - new ImporterChooserPage(ourImporters, uiFacade, options.getPluginPreferences().node("/instance/net.sourceforge.ganttproject/import"))); + new ImporterChooserPage(ourImporters, uiFacade, project, options.getPluginPreferences().node("/instance/net.sourceforge.ganttproject/import"))); for (Importer importer : ourImporters) { importer.setContext(project, uiFacade, options.getPluginPreferences()); } diff --git a/ganttproject/src/net/sourceforge/ganttproject/importer/ImporterChooserPage.java b/ganttproject/src/net/sourceforge/ganttproject/importer/ImporterChooserPage.java index 8f43840ba6..f67c0671e4 100644 --- a/ganttproject/src/net/sourceforge/ganttproject/importer/ImporterChooserPage.java +++ b/ganttproject/src/net/sourceforge/ganttproject/importer/ImporterChooserPage.java @@ -18,14 +18,15 @@ */ package net.sourceforge.ganttproject.importer; -import java.awt.Component; import java.awt.event.ActionEvent; +import java.io.File; import java.util.List; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JComponent; +import net.sourceforge.ganttproject.IGanttProject; import org.osgi.service.prefs.Preferences; import biz.ganttproject.core.option.GPOptionGroup; @@ -40,15 +41,17 @@ */ class ImporterChooserPage implements WizardPage { private final List myImporters; + private final IGanttProject myProject; private AbstractWizard myWizard; private final UIFacade myUiFacade; private final Preferences myPrefs; private int mySelectedIndex; - ImporterChooserPage(List importers, UIFacade uiFacade, Preferences preferences) { + ImporterChooserPage(List importers, UIFacade uiFacade, IGanttProject project, Preferences preferences) { myImporters = importers; myUiFacade = uiFacade; myPrefs = preferences; + myProject = project; } @Override @@ -79,10 +82,14 @@ public void actionPerformed(ActionEvent e) { protected void onSelectImporter(Importer importer) { assert myWizard != null : "It is a bug: importer chooser has not been initialized properly"; - WizardPage filePage = new FileChooserPage(myUiFacade, importer, myPrefs.node(importer.getID())); + WizardPage filePage = new FileChooserPage(myUiFacade, importer, myPrefs.node(importer.getID()), getDefaultFolder()); myWizard.setNextPage(filePage); } + private File getDefaultFolder() { + return new File(myProject.getDocumentManager().getWorkingDirectory()); + } + @Override public void setActive(AbstractWizard wizard) { myWizard = wizard; diff --git a/ganttproject/src/net/sourceforge/ganttproject/wizard/AbstractFileChooserPage.java b/ganttproject/src/net/sourceforge/ganttproject/wizard/AbstractFileChooserPage.java index 254f76d7f0..ab1e5b4d63 100644 --- a/ganttproject/src/net/sourceforge/ganttproject/wizard/AbstractFileChooserPage.java +++ b/ganttproject/src/net/sourceforge/ganttproject/wizard/AbstractFileChooserPage.java @@ -79,6 +79,7 @@ public boolean accept(File f) { return true; } }; + private final File myDefaulFolder ; private JPanel myComponent; private TextFieldAndFileChooserComponent myChooser; @@ -96,13 +97,14 @@ public boolean accept(File f) { private final String myTitle; private AbstractWizard myWizard; - protected AbstractFileChooserPage(UIFacade uiFacade, Preferences prefs, String title, FileFilter fileFilter, GPOptionGroup[] options, boolean enableUrlChooser) { + protected AbstractFileChooserPage(UIFacade uiFacade, Preferences prefs, String title, FileFilter fileFilter, GPOptionGroup[] options, boolean enableUrlChooser, File defaultFolder) { myUiFacade = uiFacade; myPreferences = prefs; myTitle = title; myFileFilter = Objects.firstNonNull(fileFilter, ACCEPT_ALL); myOptions = Objects.firstNonNull(options, new GPOptionGroup[0]); isUrlChooserEnabled = enableUrlChooser; + myDefaulFolder = defaultFolder; myOptionsBuilder = new OptionsPageBuilder(); mySecondaryOptionsComponent = new JPanel(new BorderLayout()); mySecondaryOptionsComponent.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); @@ -120,6 +122,11 @@ public JComponent getComponent() { protected void onFileChosen(File file) { AbstractFileChooserPage.this.onSelectedFileChange(file); } + + @Override + protected File getWorkingDir() { + return myDefaulFolder; + } }; myChooser.setFileSelectionMode(getFileChooserSelectionMode()); JComponent contentPanel = new JPanel(new BorderLayout());