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