package org.jabref.gui.util;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Optional;
public class DirectoryDialogConfiguration {
private final Path initialDirectory;
private DirectoryDialogConfiguration(Path initialDirectory) {
this.initialDirectory = initialDirectory;
}
public Optional<Path> getInitialDirectory() {
return Optional.ofNullable(initialDirectory);
}
public static class Builder {
private Path initialDirectory;
public DirectoryDialogConfiguration build() {
return new DirectoryDialogConfiguration(initialDirectory);
}
public Builder withInitialDirectory(Path directory) {
directory = directory.toAbsolutePath();
//Dir must be a folder, not a file
if (!Files.isDirectory(directory)) {
directory = directory.getParent();
}
//The lines above work also if the dir does not exist at all!
//NULL is accepted by the filechooser as no inital path
if (!Files.exists(directory)) {
directory = null;
}
initialDirectory = directory;
return this;
}
public Builder withInitialDirectory(String directory) {
withInitialDirectory(Paths.get(directory));
return this;
}
}
}