Replaced AWT FileDialog with Swing JFileChooser in GuiFileChooser

This commit is contained in:
CrushedPixel
2015-07-14 01:36:00 +02:00
parent 0d7065d45d
commit 654c2200d5

View File

@@ -3,11 +3,10 @@ package eu.crushedpixel.replaymod.gui.elements;
import eu.crushedpixel.replaymod.gui.elements.listeners.FileChooseListener; import eu.crushedpixel.replaymod.gui.elements.listeners.FileChooseListener;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.apache.commons.io.FilenameUtils;
import java.awt.*; import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File; import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -57,41 +56,31 @@ public class GuiFileChooser extends GuiAdvancedButton {
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
Frame frame = new Frame(); try {
FileDialog fileDialog = new FileDialog(frame); UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {
e.printStackTrace();
}
fileDialog.setMode(save ? FileDialog.SAVE : FileDialog.LOAD); JFrame frame = new JFrame();
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(new FileNameExtensionFilter("Image Files", allowedExtensions));
if(selectedFile != null) { if(selectedFile != null) {
fileDialog.setDirectory(selectedFile.getParentFile().getAbsolutePath()); fileChooser.setCurrentDirectory(selectedFile.getParentFile());
fileDialog.setFile(selectedFile.getName()); fileChooser.setSelectedFile(selectedFile);
} }
fileDialog.setFilenameFilter(new FilenameFilter() { fileChooser.setFileSelectionMode(save ? JFileChooser.SAVE_DIALOG : JFileChooser.OPEN_DIALOG);
@Override fileChooser.setVisible(true);
public boolean accept(File dir, String name) { fileChooser.grabFocus();
if(allowedExtensions == null) return true; fileChooser.showOpenDialog(frame);
for(String extension : allowedExtensions) {
String[] split = name.split("\\.");
String ext = split[split.length - 1];
if(extension.equalsIgnoreCase(ext)) return true;
}
return false; File file = fileChooser.getSelectedFile();
}
});
if(file != null) {
fileDialog.setVisible(true); selectedFile = file;
String filename = fileDialog.getFile();
if(filename != null && FilenameUtils.getExtension(filename).isEmpty() && allowedExtensions.length > 0) {
filename += "."+allowedExtensions[0];
}
String directory = fileDialog.getDirectory();
if(filename != null) {
selectedFile = new File(directory, filename);
updateDisplayString(); updateDisplayString();