Filed GuiFileChooser opening an "Open" dialog when a "Save" dialog should be opened

This commit is contained in:
CrushedPixel
2015-07-15 23:57:58 +02:00
parent 5816ff1f80
commit 57100735a4

View File

@@ -74,27 +74,43 @@ public class GuiFileChooser extends GuiAdvancedButton {
public void run() {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileNameExtensionFilter(null, allowedExtensions));
StringBuilder sb = new StringBuilder();
int i = 0;
for(String extension : allowedExtensions) {
sb.append(".").append(extension);
if(i < allowedExtensions.length - 1) sb.append(",");
i++;
}
fileChooser.setFileFilter(new FileNameExtensionFilter(sb.toString(), allowedExtensions));
if(selectedFile != null) {
fileChooser.setCurrentDirectory(selectedFile.getParentFile());
fileChooser.setSelectedFile(selectedFile);
}
fileChooser.setFileSelectionMode(save ? JFileChooser.SAVE_DIALOG : JFileChooser.OPEN_DIALOG);
fileChooser.setVisible(true);
//fileChooser.grabFocus();
fileChooser.showOpenDialog(jFrame);
File file = fileChooser.getSelectedFile();
int result;
if(file != null) {
selectedFile = file;
if(save) {
result = fileChooser.showSaveDialog(jFrame);
} else {
result = fileChooser.showOpenDialog(jFrame);
}
updateDisplayString();
if(result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
for(FileChooseListener listener : listeners) {
listener.onFileChosen(selectedFile);
if(file != null) {
selectedFile = file;
updateDisplayString();
for(FileChooseListener listener : listeners) {
listener.onFileChosen(selectedFile);
}
}
}