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() { public void run() {
JFileChooser fileChooser = new JFileChooser(); 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) { if(selectedFile != null) {
fileChooser.setCurrentDirectory(selectedFile.getParentFile()); fileChooser.setCurrentDirectory(selectedFile.getParentFile());
fileChooser.setSelectedFile(selectedFile); fileChooser.setSelectedFile(selectedFile);
} }
fileChooser.setFileSelectionMode(save ? JFileChooser.SAVE_DIALOG : JFileChooser.OPEN_DIALOG);
fileChooser.setVisible(true); fileChooser.setVisible(true);
//fileChooser.grabFocus();
fileChooser.showOpenDialog(jFrame);
File file = fileChooser.getSelectedFile(); int result;
if(file != null) { if(save) {
selectedFile = file; result = fileChooser.showSaveDialog(jFrame);
} else {
result = fileChooser.showOpenDialog(jFrame);
}
updateDisplayString(); if(result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
for(FileChooseListener listener : listeners) { if(file != null) {
listener.onFileChosen(selectedFile); selectedFile = file;
updateDisplayString();
for(FileChooseListener listener : listeners) {
listener.onFileChosen(selectedFile);
}
} }
} }