Skip to content

Commit

Permalink
Use a more factory like pattern to crate fileDialogs
Browse files Browse the repository at this point in the history
Avoids unnecessary constructor overloads
  • Loading branch information
Siedlerchr committed May 2, 2016
1 parent e1eb25c commit 5371fd4
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions src/main/java/net/sf/jabref/gui/NewFileDialogs.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

import net.sf.jabref.Globals;
import net.sf.jabref.JabRefPreferences;
Expand All @@ -20,6 +22,53 @@
*/
public class NewFileDialogs {

private final JFileChooser fileChooser = new JFileChooser();
private final JFrame parent;
private final String directory;
private FileFilter extFilter;


public NewFileDialogs(JFrame owner) {
this(owner, getWorkingDir());
}

public NewFileDialogs(JFrame owner, String dir) {
this.parent = owner;
this.directory = dir;
fileChooser.setCurrentDirectory(Paths.get(dir).toFile());

}

public NewFileDialogs SaveFileDialog() {
fileChooser.setDialogType(JFileChooser.SAVE_DIALOG);
return this;
}

public NewFileDialogs OpenFileDialog() {
fileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
return this;
}

public NewFileDialogs withExtension(String... ext) {
extFilter = new FileNameExtensionFilter("", ext);
fileChooser.setFileFilter(extFilter);
return this;
}

public NewFileDialogs updateWorkingDirectory() {
updateWorkingDirectorySetting(this.directory);
return this;
}

public List<String> getMultipleFileNames() {
return Collections.emptyList();

}

public String getFileName() {
return "";
}

public static List<String> getMultipleFiles(JFrame owner, String extension, boolean workingDir,
boolean updateWorkingDirSetting) {

Expand Down Expand Up @@ -56,6 +105,10 @@ public static List<String> getMultipleFiles(JFrame owner, Path directory, String

}

private static String getWorkingDir() {
return Globals.prefs.get(JabRefPreferences.WORKING_DIRECTORY);
}

private static void updateWorkingDirectorySetting(String dir) {
Globals.prefs.put(JabRefPreferences.WORKING_DIRECTORY, dir);

Expand Down

0 comments on commit 5371fd4

Please sign in to comment.