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}