public static File promptForFile()

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();
        }
    }