summaryrefslogtreecommitdiff
path: root/libjava/classpath/javax/swing/JFileChooser.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/javax/swing/JFileChooser.java')
-rw-r--r--libjava/classpath/javax/swing/JFileChooser.java1190
1 files changed, 1190 insertions, 0 deletions
diff --git a/libjava/classpath/javax/swing/JFileChooser.java b/libjava/classpath/javax/swing/JFileChooser.java
new file mode 100644
index 00000000000..17292fa4f61
--- /dev/null
+++ b/libjava/classpath/javax/swing/JFileChooser.java
@@ -0,0 +1,1190 @@
+/* JFileChooser.java --
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.swing;
+
+import java.awt.Component;
+import java.awt.Frame;
+import java.awt.HeadlessException;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.util.ArrayList;
+import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleContext;
+import javax.swing.JDialog;
+import javax.swing.filechooser.FileFilter;
+import javax.swing.filechooser.FileSystemView;
+import javax.swing.filechooser.FileView;
+import javax.swing.plaf.FileChooserUI;
+
+
+/**
+ * DOCUMENT ME!
+ */
+public class JFileChooser extends JComponent implements Accessible
+{
+ private static final long serialVersionUID = 3162921138695327837L;
+
+ /** DOCUMENT ME! */
+ public static final int OPEN_DIALOG = 0;
+
+ /** DOCUMENT ME! */
+ public static final int SAVE_DIALOG = 1;
+
+ /** DOCUMENT ME! */
+ public static final int CUSTOM_DIALOG = 2;
+
+ /** DOCUMENT ME! */
+ public static final int CANCEL_OPTION = 1;
+
+ /** DOCUMENT ME! */
+ public static final int APPROVE_OPTION = 0;
+
+ /** DOCUMENT ME! */
+ public static final int ERROR_OPTION = -1;
+
+ /** DOCUMENT ME! */
+ public static final int FILES_ONLY = 0;
+
+ /** DOCUMENT ME! */
+ public static final int DIRECTORIES_ONLY = 1;
+
+ /** DOCUMENT ME! */
+ public static final int FILES_AND_DIRECTORIES = 2;
+
+ /** DOCUMENT ME! */
+ public static final String CANCEL_SELECTION = "CancelSelection";
+
+ /** DOCUMENT ME! */
+ public static final String APPROVE_SELECTION = "ApproveSelection";
+
+ /** DOCUMENT ME! */
+ public static final String APPROVE_BUTTON_TEXT_CHANGED_PROPERTY =
+ "ApproveButtonTextChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY =
+ "ApproveButtonToolTipTextChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY =
+ "ApproveButtonMnemonicChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY =
+ "ControlButtonsAreShownChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String DIRECTORY_CHANGED_PROPERTY = "directoryChanged";
+
+ /** DOCUMENT ME! */
+ public static final String SELECTED_FILE_CHANGED_PROPERTY =
+ "SelectedFileChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String SELECTED_FILES_CHANGED_PROPERTY =
+ "SelectedFilesChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String MULTI_SELECTION_ENABLED_CHANGED_PROPERTY =
+ "MultiSelectionEnabledChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String FILE_SYSTEM_VIEW_CHANGED_PROPERTY =
+ "FileSystemViewChanged";
+
+ /** DOCUMENT ME! */
+ public static final String FILE_VIEW_CHANGED_PROPERTY = "fileViewChanged";
+
+ /** DOCUMENT ME! */
+ public static final String FILE_HIDING_CHANGED_PROPERTY =
+ "FileHidingChanged";
+
+ /** DOCUMENT ME! */
+ public static final String FILE_FILTER_CHANGED_PROPERTY =
+ "fileFilterChanged";
+
+ /** DOCUMENT ME! */
+ public static final String FILE_SELECTION_MODE_CHANGED_PROPERTY =
+ "fileSelectionChanged";
+
+ /** DOCUMENT ME! */
+ public static final String ACCESSORY_CHANGED_PROPERTY =
+ "AccessoryChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY =
+ "acceptAllFileFilterUsedChanged";
+
+ /** DOCUMENT ME! */
+ public static final String DIALOG_TITLE_CHANGED_PROPERTY =
+ "DialogTitleChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String DIALOG_TYPE_CHANGED_PROPERTY =
+ "DialogTypeChangedProperty";
+
+ /** DOCUMENT ME! */
+ public static final String CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY =
+ "ChoosableFileFilterChangedProperty";
+
+ /** DOCUMENT ME! */
+ protected AccessibleContext accessibleContext;
+
+ /** DOCUMENT ME! */
+ private FileSystemView fsv;
+
+ /** DOCUMENT ME! */
+ private JComponent accessory;
+
+ /** DOCUMENT ME! */
+ private int approveButtonMnemonic = 0;
+
+ /** DOCUMENT ME! */
+ private String approveButtonText;
+
+ /** DOCUMENT ME! */
+ private String approveButtonToolTipText;
+
+ /** DOCUMENT ME! */
+ private ArrayList choosableFilters = new ArrayList();
+
+ /** DOCUMENT ME! */
+ private boolean isAcceptAll = true;
+
+ /** DOCUMENT ME! */
+ private String dialogTitle;
+
+ /** DOCUMENT ME! */
+ private int dialogType = OPEN_DIALOG;
+
+ /** DOCUMENT ME! */
+ private int retval = ERROR_OPTION;
+
+ /** DOCUMENT ME! */
+ private boolean multiSelection = false;
+
+ /** DOCUMENT ME! */
+ private boolean fileHiding = true;
+
+ /** DOCUMENT ME! */
+ private int fileSelectionMode = FILES_AND_DIRECTORIES;
+
+ /** DOCUMENT ME! */
+ private FileView fv = null;
+
+ /** DOCUMENT ME! */
+ private boolean controlButtonsShown = true;
+
+ /** DOCUMENT ME! */
+ private File currentDir = null;
+
+ /** DOCUMENT ME! */
+ private FileFilter currentFilter = null;
+
+ /** DOCUMENT ME! */
+ private File[] selectedFiles;
+
+ /** DOCUMENT ME! */
+ private File selectedFile;
+
+ /**
+ * Creates a new JFileChooser object.
+ */
+ public JFileChooser()
+ {
+ setup(null);
+ setCurrentDirectory(null);
+ }
+
+ /**
+ * Creates a new JFileChooser object.
+ *
+ * @param currentDirectoryPath DOCUMENT ME!
+ */
+ public JFileChooser(String currentDirectoryPath)
+ {
+ setup(null);
+ setCurrentDirectory(fsv.createFileObject(currentDirectoryPath));
+ }
+
+ /**
+ * Creates a new JFileChooser object with the specified directory and
+ * FileSystemView.
+ *
+ * @param currentDirectoryPath the directory that should initially be
+ * shown the filechooser
+ * @param fsv the FileSystemView object to use
+ */
+ public JFileChooser(String currentDirectoryPath, FileSystemView fsv)
+ {
+ setup(fsv);
+ setCurrentDirectory(fsv.createFileObject(currentDirectoryPath));
+ }
+
+ /**
+ * Creates a new JFileChooser object.
+ *
+ * @param currentDirectory DOCUMENT ME!
+ */
+ public JFileChooser(File currentDirectory)
+ {
+ setup(null);
+ setCurrentDirectory(currentDirectory);
+ }
+
+ /**
+ * Creates a new JFileChooser object.
+ *
+ * @param fsv DOCUMENT ME!
+ */
+ public JFileChooser(FileSystemView fsv)
+ {
+ setup(fsv);
+ setCurrentDirectory(null);
+ }
+
+ /**
+ * Creates a new JFileChooser object.
+ *
+ * @param currentDirectory DOCUMENT ME!
+ * @param fsv DOCUMENT ME!
+ */
+ public JFileChooser(File currentDirectory, FileSystemView fsv)
+ {
+ setup(fsv);
+ setCurrentDirectory(currentDirectory);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param view DOCUMENT ME!
+ */
+ protected void setup(FileSystemView view)
+ {
+ if (view == null)
+ view = FileSystemView.getFileSystemView();
+ setFileSystemView(view);
+ updateUI();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param b DOCUMENT ME!
+ */
+ public void setDragEnabled(boolean b)
+ {
+ // FIXME: Implement
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean getDragEnabled()
+ {
+ // FIXME: Implement
+ return false;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File getSelectedFile()
+ {
+ return selectedFile;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param file DOCUMENT ME!
+ */
+ public void setSelectedFile(File file)
+ {
+ if (selectedFile != file)
+ {
+ File old = selectedFile;
+ selectedFile = file;
+ firePropertyChange(SELECTED_FILE_CHANGED_PROPERTY, old, selectedFile);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File[] getSelectedFiles()
+ {
+ if (selectedFiles != null)
+ return selectedFiles;
+ if (selectedFile != null)
+ return new File[] { selectedFile };
+ return null;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param selectedFiles DOCUMENT ME!
+ */
+ public void setSelectedFiles(File[] selectedFiles)
+ {
+ if (this.selectedFiles != selectedFiles)
+ {
+ File[] old = this.selectedFiles;
+ this.selectedFiles = selectedFiles;
+ firePropertyChange(SELECTED_FILES_CHANGED_PROPERTY, old, selectedFiles);
+ }
+
+ if (selectedFiles != null)
+ setSelectedFile(selectedFiles[0]);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public File getCurrentDirectory()
+ {
+ return currentDir;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dir DOCUMENT ME!
+ */
+ public void setCurrentDirectory(File dir)
+ {
+ if (currentDir != dir || dir == null)
+ {
+ if (dir == null)
+ dir = fsv.getDefaultDirectory();
+
+ File old = currentDir;
+ currentDir = dir;
+ firePropertyChange(DIRECTORY_CHANGED_PROPERTY, old, currentDir);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void changeToParentDirectory()
+ {
+ setCurrentDirectory(fsv.getParentDirectory(currentDir));
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void rescanCurrentDirectory()
+ {
+ getUI().rescanCurrentDirectory(this);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ */
+ public void ensureFileIsVisible(File f)
+ {
+ getUI().ensureFileIsVisible(this, f);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param parent DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ *
+ * @throws HeadlessException DOCUMENT ME!
+ */
+ public int showOpenDialog(Component parent) throws HeadlessException
+ {
+ JDialog d = createDialog(parent);
+
+ // FIXME: Remove when we get ancestor property
+ d.setTitle("Open");
+ setDialogType(OPEN_DIALOG);
+
+ retval = ERROR_OPTION;
+
+ d.pack();
+ d.show();
+ return retval;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param parent DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ *
+ * @throws HeadlessException DOCUMENT ME!
+ */
+ public int showSaveDialog(Component parent) throws HeadlessException
+ {
+ JDialog d = createDialog(parent);
+ setDialogType(SAVE_DIALOG);
+
+ retval = ERROR_OPTION;
+
+ d.pack();
+ d.show();
+ return retval;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param parent DOCUMENT ME!
+ * @param approveButtonText DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ *
+ * @throws HeadlessException DOCUMENT ME!
+ */
+ public int showDialog(Component parent, String approveButtonText)
+ throws HeadlessException
+ {
+ JDialog d = createDialog(parent);
+ setApproveButtonText(approveButtonText);
+ setDialogType(CUSTOM_DIALOG);
+
+ retval = ERROR_OPTION;
+
+ d.pack();
+ d.show();
+ return retval;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param parent DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ *
+ * @throws HeadlessException DOCUMENT ME!
+ */
+ protected JDialog createDialog(Component parent) throws HeadlessException
+ {
+ Frame toUse = (Frame) SwingUtilities.getAncestorOfClass(Frame.class, parent);
+ if (toUse == null)
+ toUse = SwingUtilities.getOwnerFrame();
+
+ JDialog dialog = new JDialog(toUse);
+ setSelectedFile(null);
+ dialog.getContentPane().add(this);
+ dialog.setModal(true);
+ dialog.invalidate();
+ dialog.repaint();
+
+ return dialog;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean getControlButtonsAreShown()
+ {
+ return controlButtonsShown;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param b DOCUMENT ME!
+ */
+ public void setControlButtonsAreShown(boolean b)
+ {
+ if (controlButtonsShown != b)
+ {
+ controlButtonsShown = b;
+ firePropertyChange(CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY,
+ ! controlButtonsShown, controlButtonsShown);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getDialogType()
+ {
+ return dialogType;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dialogType DOCUMENT ME!
+ */
+ public void setDialogType(int dialogType)
+ {
+ if (dialogType != OPEN_DIALOG && dialogType != SAVE_DIALOG
+ && dialogType != CUSTOM_DIALOG)
+ throw new IllegalArgumentException("Choose allowable dialogType.");
+
+ if (this.dialogType != dialogType)
+ {
+ int old = this.dialogType;
+ this.dialogType = dialogType;
+ firePropertyChange(DIALOG_TYPE_CHANGED_PROPERTY, old, this.dialogType);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param dialogTitle DOCUMENT ME!
+ */
+ public void setDialogTitle(String dialogTitle)
+ {
+ if (this.dialogTitle != dialogTitle)
+ {
+ String old = this.dialogTitle;
+ this.dialogTitle = dialogTitle;
+ firePropertyChange(DIALOG_TITLE_CHANGED_PROPERTY, old, this.dialogTitle);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getDialogTitle()
+ {
+ return dialogTitle;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param toolTipText DOCUMENT ME!
+ */
+ public void setApproveButtonToolTipText(String toolTipText)
+ {
+ if (approveButtonToolTipText != toolTipText)
+ {
+ String oldText = approveButtonToolTipText;
+ approveButtonToolTipText = toolTipText;
+ firePropertyChange(APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY,
+ oldText, approveButtonToolTipText);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getApproveButtonToolTipText()
+ {
+ return approveButtonToolTipText;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getApproveButtonMnemonic()
+ {
+ return approveButtonMnemonic;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param mnemonic DOCUMENT ME!
+ */
+ public void setApproveButtonMnemonic(int mnemonic)
+ {
+ if (approveButtonMnemonic != mnemonic)
+ {
+ int oldMnemonic = approveButtonMnemonic;
+ approveButtonMnemonic = mnemonic;
+ firePropertyChange(APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY,
+ oldMnemonic, approveButtonMnemonic);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param mnemonic DOCUMENT ME!
+ */
+ public void setApproveButtonMnemonic(char mnemonic)
+ {
+ setApproveButtonMnemonic((int) Character.toUpperCase(mnemonic));
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param approveButtonText DOCUMENT ME!
+ */
+ public void setApproveButtonText(String approveButtonText)
+ {
+ if (this.approveButtonText != approveButtonText)
+ {
+ String oldText = this.approveButtonText;
+ this.approveButtonText = approveButtonText;
+ firePropertyChange(APPROVE_BUTTON_TEXT_CHANGED_PROPERTY, oldText,
+ this.approveButtonText);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getApproveButtonText()
+ {
+ return approveButtonText;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public FileFilter[] getChoosableFileFilters()
+ {
+ return (FileFilter[]) choosableFilters.toArray(new FileFilter[0]);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param filter DOCUMENT ME!
+ */
+ public void addChoosableFileFilter(FileFilter filter)
+ {
+ FileFilter[] old = getChoosableFileFilters();
+ choosableFilters.add(filter);
+ FileFilter[] newFilters = getChoosableFileFilters();
+ firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, old, newFilters);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean removeChoosableFileFilter(FileFilter f)
+ {
+ FileFilter[] old = getChoosableFileFilters();
+ if (! choosableFilters.remove(f))
+ return false;
+ FileFilter[] newFilters = getChoosableFileFilters();
+ firePropertyChange(CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, old, newFilters);
+ return true;
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void resetChoosableFileFilters()
+ {
+ choosableFilters.clear();
+ choosableFilters.add(getUI().getAcceptAllFileFilter(this));
+ setFileFilter((FileFilter) choosableFilters.get(0));
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public FileFilter getAcceptAllFileFilter()
+ {
+ return getUI().getAcceptAllFileFilter(this);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isAcceptAllFileFilterUsed()
+ {
+ return isAcceptAll;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param b DOCUMENT ME!
+ */
+ public void setAcceptAllFileFilterUsed(boolean b)
+ {
+ if (isAcceptAll != b)
+ {
+ isAcceptAll = b;
+ firePropertyChange(ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY,
+ ! isAcceptAll, isAcceptAll);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public JComponent getAccessory()
+ {
+ return accessory;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param newAccessory DOCUMENT ME!
+ */
+ public void setAccessory(JComponent newAccessory)
+ {
+ if (accessory != newAccessory)
+ {
+ JComponent old = accessory;
+ accessory = newAccessory;
+ firePropertyChange(ACCESSORY_CHANGED_PROPERTY, old, accessory);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param mode DOCUMENT ME!
+ */
+ public void setFileSelectionMode(int mode)
+ {
+ if (mode != FILES_ONLY && mode != DIRECTORIES_ONLY
+ && mode != FILES_AND_DIRECTORIES)
+ throw new IllegalArgumentException("Choose a correct file selection mode.");
+ if (fileSelectionMode != mode)
+ {
+ int old = fileSelectionMode;
+ fileSelectionMode = mode;
+ firePropertyChange(FILE_SELECTION_MODE_CHANGED_PROPERTY, old,
+ fileSelectionMode);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public int getFileSelectionMode()
+ {
+ return fileSelectionMode;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isFileSelectionEnabled()
+ {
+ return (fileSelectionMode == FILES_ONLY
+ || fileSelectionMode == FILES_AND_DIRECTORIES);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isDirectorySelectionEnabled()
+ {
+ return (fileSelectionMode == DIRECTORIES_ONLY
+ || fileSelectionMode == FILES_AND_DIRECTORIES);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param b DOCUMENT ME!
+ */
+ public void setMultiSelectionEnabled(boolean b)
+ {
+ if (multiSelection != b)
+ {
+ multiSelection = b;
+ firePropertyChange(MULTI_SELECTION_ENABLED_CHANGED_PROPERTY,
+ ! multiSelection, multiSelection);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isMultiSelectionEnabled()
+ {
+ return multiSelection;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isFileHidingEnabled()
+ {
+ return fileHiding;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param b DOCUMENT ME!
+ */
+ public void setFileHidingEnabled(boolean b)
+ {
+ if (fileHiding != b)
+ {
+ fileHiding = b;
+ firePropertyChange(FILE_HIDING_CHANGED_PROPERTY, ! fileHiding,
+ fileHiding);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param filter DOCUMENT ME!
+ */
+ public void setFileFilter(FileFilter filter)
+ {
+ if (currentFilter != filter)
+ {
+ FileFilter old = currentFilter;
+ currentFilter = filter;
+ firePropertyChange(FILE_FILTER_CHANGED_PROPERTY, old, currentFilter);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public FileFilter getFileFilter()
+ {
+ return currentFilter;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param fileView DOCUMENT ME!
+ */
+ public void setFileView(FileView fileView)
+ {
+ if (fv != fileView)
+ {
+ FileView old = fv;
+ fv = fileView;
+ firePropertyChange(FILE_VIEW_CHANGED_PROPERTY, old, fv);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public FileView getFileView()
+ {
+ return fv;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ private FileView getInternalFileView()
+ {
+ if (fv == null)
+ return getUI().getFileView(this);
+ return fv;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getName(File f)
+ {
+ return getInternalFileView().getName(f);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getDescription(File f)
+ {
+ return getInternalFileView().getDescription(f);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getTypeDescription(File f)
+ {
+ return getInternalFileView().getTypeDescription(f);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public Icon getIcon(File f)
+ {
+ return getInternalFileView().getIcon(f);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean isTraversable(File f)
+ {
+ return getFileSystemView().isTraversable(f).booleanValue();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param f DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public boolean accept(File f)
+ {
+ if (f == null)
+ return false;
+ return getFileFilter().accept(f);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param fsv DOCUMENT ME!
+ */
+ public void setFileSystemView(FileSystemView fsv)
+ {
+ if (this.fsv != fsv)
+ {
+ FileSystemView old = this.fsv;
+ this.fsv = fsv;
+ firePropertyChange(FILE_SYSTEM_VIEW_CHANGED_PROPERTY, old, this.fsv);
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public FileSystemView getFileSystemView()
+ {
+ return fsv;
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void approveSelection()
+ {
+ retval = APPROVE_OPTION;
+ fireActionPerformed(APPROVE_SELECTION);
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void cancelSelection()
+ {
+ retval = CANCEL_OPTION;
+ fireActionPerformed(CANCEL_SELECTION);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param l DOCUMENT ME!
+ */
+ public void addActionListener(ActionListener l)
+ {
+ listenerList.add(ActionListener.class, l);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param l DOCUMENT ME!
+ */
+ public void removeActionListener(ActionListener l)
+ {
+ try
+ {
+ listenerList.remove(ActionListener.class, l);
+ }
+ catch (IllegalArgumentException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public ActionListener[] getActionListeners()
+ {
+ return (ActionListener[]) getListeners(ActionListener.class);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param command DOCUMENT ME!
+ */
+ protected void fireActionPerformed(String command)
+ {
+ ActionListener[] list = getActionListeners();
+ ActionEvent event = new ActionEvent(this, ActionEvent.ACTION_PERFORMED,
+ command);
+
+ for (int i = 0; i < list.length; i++)
+ list[i].actionPerformed(event);
+ }
+
+ /**
+ * DOCUMENT ME!
+ */
+ public void updateUI()
+ {
+ setUI((FileChooserUI) UIManager.getUI(this));
+ revalidate();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public String getUIClassID()
+ {
+ return "FileChooserUI";
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public FileChooserUI getUI()
+ {
+ return (FileChooserUI) ui;
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ protected String paramString()
+ {
+ return "JFileChooser";
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ return null;
+ }
+}