in src/main/java/org/apache/log4j/chainsaw/helper/SwingHelper.java [97:147]
public static File promptForFile(Container parent, String defaultPath, String title, boolean loadDialog) {
if (SwingHelper.isMacOSX()) {
//use filedialog on mac
Component root = SwingUtilities.getRoot(parent);
Frame frame = null;
if (root instanceof Frame) {
frame = (Frame) root;
}
FileDialog fileDialog = new FileDialog(frame, title);
fileDialog.setModal(true);
fileDialog.setMode(loadDialog ? FileDialog.LOAD : FileDialog.SAVE);
if (defaultPath != null) {
fileDialog.setDirectory(defaultPath);
}
fileDialog.setVisible(true);
String fileString = fileDialog.getFile();
if (fileString == null) {
return null;
}
if (fileDialog.getDirectory() != null) {
return new File(fileDialog.getDirectory(), fileString);
} else {
return new File(fileString);
}
} else {
JFileChooser chooser;
if (defaultPath != null) {
chooser = new JFileChooser(defaultPath);
} else {
chooser = new JFileChooser();
}
chooser.setDialogTitle(title);
chooser.setAcceptAllFileFilterUsed(true);
int i;
if (loadDialog) {
i = chooser.showOpenDialog(parent);
} else {
i = chooser.showSaveDialog(parent);
}
if (i != JFileChooser.APPROVE_OPTION) {
return null;
}
return chooser.getSelectedFile();
}
}