Skip to content

Commit

Permalink
Simplify and make robust: just do this at the FileUtils level
Browse files Browse the repository at this point in the history
  • Loading branch information
artoonie committed Nov 25, 2024
1 parent c2fe271 commit 5bb22aa
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 19 deletions.
13 changes: 12 additions & 1 deletion src/main/java/network/brightspots/rcv/FileUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,18 @@ private FileUtils() {}
// return userDirectory if it exists
// fallback to current working directory
static String getUserDirectory() {
return userDirectory == null ? System.getProperty("user.dir") : userDirectory;
String result;
if (userDirectory == null) {
result = System.getProperty("user.dir");
} else if (Files.isDirectory(new File(userDirectory).toPath())) {
result = userDirectory;
} else {
Logger.warning("User directory %s does not exist. Using current working directory.",
userDirectory);
result = System.getProperty("user.home");
}

return result;
}

static void setUserDirectory(String userDirectory) {
Expand Down
23 changes: 5 additions & 18 deletions src/main/java/network/brightspots/rcv/GuiConfigController.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import java.io.StringWriter;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
Expand Down Expand Up @@ -412,7 +411,7 @@ public void menuItemLoadConfigClicked() {
if (checkForSaveAndContinue()) {
FileChooser fc = new FileChooser();
if (selectedFile == null) {
fc.setInitialDirectory(getInitialDirectory());
fc.setInitialDirectory(new File(FileUtils.getUserDirectory()));
} else {
fc.setInitialDirectory(new File(selectedFile.getParent()));
}
Expand All @@ -433,7 +432,7 @@ public String getSelectedFilePath() {
private File getSaveFile(Stage stage) {
FileChooser fc = new FileChooser();
if (selectedFile == null) {
fc.setInitialDirectory(getInitialDirectory());
fc.setInitialDirectory(new File(FileUtils.getUserDirectory()));
} else {
fc.setInitialDirectory(new File(selectedFile.getParent()));
fc.setInitialFileName(selectedFile.getName());
Expand Down Expand Up @@ -659,7 +658,7 @@ public void menuItemExitClicked() {
*/
public void buttonOutputDirectoryClicked() {
DirectoryChooser dc = new DirectoryChooser();
dc.setInitialDirectory(getInitialDirectory());
dc.setInitialDirectory(new File(FileUtils.getUserDirectory()));
dc.setTitle("Output Directory");
File outputDirectory = dc.showDialog(GuiContext.getInstance().getMainWindow());
if (outputDirectory != null) {
Expand All @@ -674,23 +673,11 @@ public void buttonClearDatePickerContestDateClicked() {
datePickerContestDate.setValue(null);
}

private File getInitialDirectory() {
File initialDirectory = new File(FileUtils.getUserDirectory());
if (Files.isDirectory(initialDirectory.toPath())) {
return initialDirectory;
} else {
Logger.warning("User directory %s does not exist. Using current working directory.",
initialDirectory.getAbsolutePath());
return new File(System.getProperty("user.home"));
}
}

private List<File> chooseFile(Provider provider, ExtensionFilter filter) {
FileChooser fc = new FileChooser();
fc.setInitialDirectory(getInitialDirectory());
fc.setInitialDirectory(new File(FileUtils.getUserDirectory()));
fc.getExtensionFilters().add(filter);
fc.setTitle("Select " + provider + " Cast Vote Record Files");

return fc.showOpenMultipleDialog(GuiContext.getInstance().getMainWindow());
}

Expand All @@ -709,7 +696,7 @@ public void buttonCvrFilePathClicked() {
chooseFile(provider, new ExtensionFilter("CSV file(s)", "*.csv"));
case DOMINION, HART -> {
DirectoryChooser dc = new DirectoryChooser();
dc.setInitialDirectory(getInitialDirectory());
dc.setInitialDirectory(new File(FileUtils.getUserDirectory()));
dc.setTitle("Select " + provider + " Cast Vote Record Folder");
selectedDirectory = dc.showDialog(GuiContext.getInstance().getMainWindow());
}
Expand Down

0 comments on commit 5bb22aa

Please sign in to comment.