source: josm/trunk/src/org/openstreetmap/josm/gui/widgets/SwingFileChooser.java@ 7578

Last change on this file since 7578 was 7578, checked in by Don-vip, 10 years ago

fix #10024 - Add an option in Preferences/Look-and-Feel to use native file-choosing dialogs.
They look nicer but they do not support file filters, so we cannot use them (yet) as default.
Based on patch by Lesath and code review by simon04.
The native dialogs are not used if selection mode is not supported ("files and directories" on all platforms, "directories" on systems other than OS X)

File size: 2.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.widgets;
3
4import java.awt.Component;
5import java.io.File;
6
7import javax.swing.JFileChooser;
8import javax.swing.filechooser.FileFilter;
9
10/**
11 * File chooser based on the Swing's {@link JFileChooser} implementation.
12 * @since 7578
13 */
14public class SwingFileChooser extends AbstractFileChooser {
15
16 /** The JFileChooser which we use for this. */
17 private final JFileChooser jFileChooser;
18
19 /**
20 * Constructs a new {@code SwingFileChooser}.
21 * @param file the current file/directory to point to
22 */
23 public SwingFileChooser(File file) {
24 jFileChooser = new JFileChooser(file);
25 }
26
27 @Override
28 public void addChoosableFileFilter(FileFilter filter) {
29 jFileChooser.addChoosableFileFilter(filter);
30 }
31
32 @Override
33 public FileFilter[] getChoosableFileFilters() {
34 return jFileChooser.getChoosableFileFilters();
35 }
36
37 @Override
38 public File getCurrentDirectory() {
39 return jFileChooser.getCurrentDirectory();
40 }
41
42 @Override
43 public FileFilter getFileFilter() {
44 return jFileChooser.getFileFilter();
45 }
46
47 @Override
48 public File getSelectedFile() {
49 return jFileChooser.getSelectedFile();
50 }
51
52 @Override
53 public File[] getSelectedFiles() {
54 return jFileChooser.getSelectedFiles();
55 }
56
57 @Override
58 public boolean isMultiSelectionEnabled() {
59 return jFileChooser.isMultiSelectionEnabled();
60 }
61
62 @Override
63 public void setAcceptAllFileFilterUsed(boolean b) {
64 jFileChooser.setAcceptAllFileFilterUsed(b);
65 }
66
67 @Override
68 public void setCurrentDirectory(File f) {
69 jFileChooser.setCurrentDirectory(f);
70 }
71
72 @Override
73 public void setDialogTitle(String title) {
74 jFileChooser.setDialogTitle(title);
75 }
76
77 @Override
78 public void setFileFilter(FileFilter cff) {
79 jFileChooser.setFileFilter(cff);
80 }
81
82 @Override
83 public void setFileSelectionMode(int selectionMode) {
84 jFileChooser.setFileSelectionMode(selectionMode);
85 }
86
87 @Override
88 public void setMultiSelectionEnabled(boolean multiple) {
89 jFileChooser.setMultiSelectionEnabled(multiple);
90 }
91
92 @Override
93 public void setSelectedFile(File file) {
94 jFileChooser.setSelectedFile(file);
95 }
96
97 @Override
98 public int showOpenDialog(Component parent) {
99 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}
Note: See TracBrowser for help on using the repository browser.