001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.widgets;
003
004import java.awt.Component;
005import java.io.File;
006
007import javax.swing.ActionMap;
008import javax.swing.JFileChooser;
009import javax.swing.filechooser.FileFilter;
010
011/**
012 * File chooser based on the Swing's {@link JFileChooser} implementation.
013 * @since 7578
014 */
015public class SwingFileChooser extends AbstractFileChooser {
016
017    /** The JFileChooser which we use for this. */
018    private final JFileChooser jFileChooser;
019
020    /**
021     * Constructs a new {@code SwingFileChooser}.
022     * @param file the current file/directory to point to
023     */
024    public SwingFileChooser(File file) {
025        jFileChooser = new JFileChooser(file);
026    }
027
028    @Override
029    public void addChoosableFileFilter(FileFilter filter) {
030        jFileChooser.addChoosableFileFilter(filter);
031    }
032
033    @Override
034    public FileFilter[] getChoosableFileFilters() {
035        return jFileChooser.getChoosableFileFilters();
036    }
037
038    @Override
039    public File getCurrentDirectory() {
040        return jFileChooser.getCurrentDirectory();
041    }
042
043    @Override
044    public FileFilter getFileFilter() {
045        return jFileChooser.getFileFilter();
046    }
047
048    @Override
049    public File getSelectedFile() {
050        return jFileChooser.getSelectedFile();
051    }
052
053    @Override
054    public File[] getSelectedFiles() {
055        return jFileChooser.getSelectedFiles();
056    }
057
058    @Override
059    public boolean isMultiSelectionEnabled() {
060        return jFileChooser.isMultiSelectionEnabled();
061    }
062
063    @Override
064    public void setAcceptAllFileFilterUsed(boolean b) {
065        jFileChooser.setAcceptAllFileFilterUsed(b);
066    }
067
068    @Override
069    public void setCurrentDirectory(File f) {
070        jFileChooser.setCurrentDirectory(f);
071    }
072
073    @Override
074    public void setDialogTitle(String title) {
075        jFileChooser.setDialogTitle(title);
076    }
077
078    @Override
079    public void setFileFilter(FileFilter cff) {
080        jFileChooser.setFileFilter(cff);
081    }
082
083    @Override
084    public void setFileSelectionMode(int selectionMode) {
085        jFileChooser.setFileSelectionMode(selectionMode);
086    }
087
088    @Override
089    public void setMultiSelectionEnabled(boolean multiple) {
090        jFileChooser.setMultiSelectionEnabled(multiple);
091    }
092
093    @Override
094    public void setSelectedFile(File file) {
095        jFileChooser.setSelectedFile(file);
096    }
097
098    @Override
099    public int showOpenDialog(Component parent) {
100        jFileChooser.setLocale(locale);
101        return jFileChooser.showOpenDialog(parent);
102    }
103
104    @Override
105    public int showSaveDialog(Component parent) {
106        jFileChooser.setLocale(locale);
107        return jFileChooser.showSaveDialog(parent);
108    }
109
110    @Override
111    public ActionMap getActionMap() {
112        return jFileChooser.getActionMap();
113    }
114}