javax.swing.plaf.basic
Class BasicFileChooserUI

java.lang.Object
  extended byjavax.swing.plaf.ComponentUI
      extended byjavax.swing.plaf.FileChooserUI
          extended byjavax.swing.plaf.basic.BasicFileChooserUI
Direct Known Subclasses:
MetalFileChooserUI

public class BasicFileChooserUI
extends FileChooserUI

Basic L&F implementation of a FileChooser.

Author:
Jeff Dinkins

Nested Class Summary
protected  class BasicFileChooserUI.AcceptAllFileFilter
           
protected  class BasicFileChooserUI.ApproveSelectionAction
          Responds to an Open or Save request
protected  class BasicFileChooserUI.BasicFileView
           
protected  class BasicFileChooserUI.CancelSelectionAction
          Responds to a cancel request.
protected  class BasicFileChooserUI.ChangeToParentDirectoryAction
           
protected  class BasicFileChooserUI.DoubleClickListener
           
(package private) static class BasicFileChooserUI.FileTransferHandler
          Data transfer support for the file chooser.
(package private)  class BasicFileChooserUI.GlobFilter
           
protected  class BasicFileChooserUI.GoHomeAction
          Acts on the "home" key event or equivalent event.
protected  class BasicFileChooserUI.NewFolderAction
          Creates a new folder.
protected  class BasicFileChooserUI.SelectionListener
           
protected  class BasicFileChooserUI.UpdateAction
          Rescans the files in the current directory
 
Field Summary
private  BasicFileChooserUI.AcceptAllFileFilter acceptAllFileFilter
           
private  JPanel accessoryPanel
           
private  FileFilter actualFileFilter
           
private  Action approveSelectionAction
           
protected  int cancelButtonMnemonic
           
protected  String cancelButtonText
           
protected  String cancelButtonToolTipText
           
private  Action cancelSelectionAction
           
private  Action changeToParentDirectoryAction
           
protected  Icon computerIcon
           
private static TransferHandler defaultTransferHandler
           
protected  Icon detailsViewIcon
           
private  File directory
           
private  String directoryDescriptionText
           
protected  Icon directoryIcon
           
protected  int directoryOpenButtonMnemonic
          The mnemonic keycode used for the approve button when a directory is selected and the current selection mode is not DIRECTORIES_ONLY.
protected  String directoryOpenButtonText
          The label text displayed on the approve button when a directory is selected and the current selection mode is not DIRECTORIES_ONLY.
protected  String directoryOpenButtonToolTipText
          The tooltip text displayed on the approve button when a directory is selected and the current selection mode is not DIRECTORIES_ONLY.
private  boolean directorySelected
           
private  JFileChooser filechooser
           
private  String fileDescriptionText
           
protected  Icon fileIcon
           
private  BasicFileChooserUI.BasicFileView fileView
           
protected  Icon floppyDriveIcon
           
private  BasicFileChooserUI.GlobFilter globFilter
           
private  Action goHomeAction
           
protected  Icon hardDriveIcon
           
protected  int helpButtonMnemonic
           
protected  String helpButtonText
           
protected  String helpButtonToolTipText
           
protected  Icon homeFolderIcon
           
protected  Icon listViewIcon
           
private  BasicDirectoryModel model
           
private  Action newFolderAction
           
private  String newFolderErrorSeparator
           
private  String newFolderErrorText
           
protected  Icon newFolderIcon
           
protected  int openButtonMnemonic
           
protected  String openButtonText
           
protected  String openButtonToolTipText
           
private  String openDialogTitleText
           
private  java.beans.PropertyChangeListener propertyChangeListener
           
protected  int saveButtonMnemonic
           
protected  String saveButtonText
           
protected  String saveButtonToolTipText
           
private  String saveDialogTitleText
           
private  Action updateAction
           
protected  int updateButtonMnemonic
           
protected  String updateButtonText
           
protected  String updateButtonToolTipText
           
protected  Icon upFolderIcon
           
 
Constructor Summary
BasicFileChooserUI(JFileChooser b)
           
 
Method Summary
 void clearIconCache()
           
(package private)  ActionMap createActionMap()
           
protected  MouseListener createDoubleClickListener(JFileChooser fc, JList list)
           
 ListSelectionListener createListSelectionListener(JFileChooser fc)
           
protected  void createModel()
           
 java.beans.PropertyChangeListener createPropertyChangeListener(JFileChooser fc)
           
 void ensureFileIsVisible(JFileChooser fc, File f)
           
 FileFilter getAcceptAllFileFilter(JFileChooser fc)
          Returns the default accept all file filter
 JPanel getAccessoryPanel()
           
(package private)  ActionMap getActionMap()
           
protected  JButton getApproveButton(JFileChooser fc)
           
 int getApproveButtonMnemonic(JFileChooser fc)
           
 String getApproveButtonText(JFileChooser fc)
           
 String getApproveButtonToolTipText(JFileChooser fc)
           
 Action getApproveSelectionAction()
           
 Action getCancelSelectionAction()
           
 Action getChangeToParentDirectoryAction()
           
 String getDialogTitle(JFileChooser fc)
          Returns the title of this dialog
protected  File getDirectory()
          Property to remember the directory that is currently selected in the UI.
 String getDirectoryName()
           
 JFileChooser getFileChooser()
           
 String getFileName()
           
 FileView getFileView(JFileChooser fc)
           
 Action getGoHomeAction()
           
(package private)  InputMap getInputMap(int condition)
           
 BasicDirectoryModel getModel()
           
 Action getNewFolderAction()
           
 Action getUpdateAction()
           
 void installComponents(JFileChooser fc)
           
protected  void installDefaults(JFileChooser fc)
           
protected  void installIcons(JFileChooser fc)
           
protected  void installListeners(JFileChooser fc)
           
protected  void installStrings(JFileChooser fc)
           
 void installUI(JComponent c)
          Configures the specified component appropriate for the look and feel.
protected  boolean isDirectorySelected()
          Property to remember whether a directory is currently selected in the UI.
private static boolean isGlobPattern(String filename)
           
 void rescanCurrentDirectory(JFileChooser fc)
           
private  void resetGlobFilter()
           
protected  void setDirectory(File f)
          Property to remember the directory that is currently selected in the UI.
 void setDirectoryName(String dirname)
           
protected  void setDirectorySelected(boolean b)
          Property to remember whether a directory is currently selected in the UI.
 void setFileName(String filename)
           
 void uninstallComponents(JFileChooser fc)
           
protected  void uninstallDefaults(JFileChooser fc)
           
protected  void uninstallIcons(JFileChooser fc)
           
protected  void uninstallListeners(JFileChooser fc)
           
protected  void uninstallStrings(JFileChooser fc)
           
 void uninstallUI(JComponent c)
          Reverses configuration which was done on the specified component during installUI.
 
Methods inherited from class javax.swing.plaf.ComponentUI
contains, createUI, getAccessibleChild, getAccessibleChildrenCount, getMaximumSize, getMinimumSize, getPreferredSize, paint, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

directoryIcon

protected Icon directoryIcon

fileIcon

protected Icon fileIcon

computerIcon

protected Icon computerIcon

hardDriveIcon

protected Icon hardDriveIcon

floppyDriveIcon

protected Icon floppyDriveIcon

newFolderIcon

protected Icon newFolderIcon

upFolderIcon

protected Icon upFolderIcon

homeFolderIcon

protected Icon homeFolderIcon

listViewIcon

protected Icon listViewIcon

detailsViewIcon

protected Icon detailsViewIcon

saveButtonMnemonic

protected int saveButtonMnemonic

openButtonMnemonic

protected int openButtonMnemonic

cancelButtonMnemonic

protected int cancelButtonMnemonic

updateButtonMnemonic

protected int updateButtonMnemonic

helpButtonMnemonic

protected int helpButtonMnemonic

directoryOpenButtonMnemonic

protected int directoryOpenButtonMnemonic
The mnemonic keycode used for the approve button when a directory is selected and the current selection mode is not DIRECTORIES_ONLY.

Since:
1.4

saveButtonText

protected String saveButtonText

openButtonText

protected String openButtonText

cancelButtonText

protected String cancelButtonText

updateButtonText

protected String updateButtonText

helpButtonText

protected String helpButtonText

directoryOpenButtonText

protected String directoryOpenButtonText
The label text displayed on the approve button when a directory is selected and the current selection mode is not DIRECTORIES_ONLY.

Since:
1.4

openDialogTitleText

private String openDialogTitleText

saveDialogTitleText

private String saveDialogTitleText

saveButtonToolTipText

protected String saveButtonToolTipText

openButtonToolTipText

protected String openButtonToolTipText

cancelButtonToolTipText

protected String cancelButtonToolTipText

updateButtonToolTipText

protected String updateButtonToolTipText

helpButtonToolTipText

protected String helpButtonToolTipText

directoryOpenButtonToolTipText

protected String directoryOpenButtonToolTipText
The tooltip text displayed on the approve button when a directory is selected and the current selection mode is not DIRECTORIES_ONLY.

Since:
1.4

approveSelectionAction

private Action approveSelectionAction

cancelSelectionAction

private Action cancelSelectionAction

updateAction

private Action updateAction

newFolderAction

private Action newFolderAction

goHomeAction

private Action goHomeAction

changeToParentDirectoryAction

private Action changeToParentDirectoryAction

newFolderErrorSeparator

private String newFolderErrorSeparator

newFolderErrorText

private String newFolderErrorText

fileDescriptionText

private String fileDescriptionText

directoryDescriptionText

private String directoryDescriptionText

filechooser

private JFileChooser filechooser

directorySelected

private boolean directorySelected

directory

private File directory

propertyChangeListener

private java.beans.PropertyChangeListener propertyChangeListener

acceptAllFileFilter

private BasicFileChooserUI.AcceptAllFileFilter acceptAllFileFilter

actualFileFilter

private FileFilter actualFileFilter

globFilter

private BasicFileChooserUI.GlobFilter globFilter

model

private BasicDirectoryModel model

fileView

private BasicFileChooserUI.BasicFileView fileView

accessoryPanel

private JPanel accessoryPanel

defaultTransferHandler

private static final TransferHandler defaultTransferHandler
Constructor Detail

BasicFileChooserUI

public BasicFileChooserUI(JFileChooser b)
Method Detail

installUI

public void installUI(JComponent c)
Description copied from class: ComponentUI
Configures the specified component appropriate for the look and feel. This method is invoked when the ComponentUI instance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:
  1. Install any default property values for color, fonts, borders, icons, opacity, etc. on the component. Whenever possible, property values initialized by the client program should not be overridden.
  2. Install a LayoutManager on the component if necessary.
  3. Create/add any required sub-components to the component.
  4. Create/install event listeners on the component.
  5. Create/install a PropertyChangeListener on the component in order to detect and respond to component property changes appropriately.
  6. Install keyboard UI (mnemonics, traversal, etc.) on the component.
  7. Initialize any appropriate instance data.

Overrides:
installUI in class ComponentUI
Parameters:
c - the component where this UI delegate is being installed
See Also:
ComponentUI.uninstallUI(javax.swing.JComponent), JComponent.setUI(javax.swing.plaf.ComponentUI), JComponent.updateUI()

uninstallUI

public void uninstallUI(JComponent c)
Description copied from class: ComponentUI
Reverses configuration which was done on the specified component during installUI. This method is invoked when this UIComponent instance is being removed as the UI delegate for the specified component. This method should undo the configuration performed in installUI, being careful to leave the JComponent instance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:
  1. Remove any UI-set borders from the component.
  2. Remove any UI-set layout managers on the component.
  3. Remove any UI-added sub-components from the component.
  4. Remove any UI-added event/property listeners from the component.
  5. Remove any UI-installed keyboard UI from the component.
  6. Nullify any allocated instance data objects to allow for GC.

Overrides:
uninstallUI in class ComponentUI
Parameters:
c - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
See Also:
ComponentUI.installUI(javax.swing.JComponent), JComponent.updateUI()

installComponents

public void installComponents(JFileChooser fc)

uninstallComponents

public void uninstallComponents(JFileChooser fc)

installListeners

protected void installListeners(JFileChooser fc)

getInputMap

InputMap getInputMap(int condition)

getActionMap

ActionMap getActionMap()

createActionMap

ActionMap createActionMap()

uninstallListeners

protected void uninstallListeners(JFileChooser fc)

installDefaults

protected void installDefaults(JFileChooser fc)

installIcons

protected void installIcons(JFileChooser fc)

installStrings

protected void installStrings(JFileChooser fc)

uninstallDefaults

protected void uninstallDefaults(JFileChooser fc)

uninstallIcons

protected void uninstallIcons(JFileChooser fc)

uninstallStrings

protected void uninstallStrings(JFileChooser fc)

createModel

protected void createModel()

getModel

public BasicDirectoryModel getModel()

createPropertyChangeListener

public java.beans.PropertyChangeListener createPropertyChangeListener(JFileChooser fc)

getFileName

public String getFileName()

getDirectoryName

public String getDirectoryName()

setFileName

public void setFileName(String filename)

setDirectoryName

public void setDirectoryName(String dirname)

rescanCurrentDirectory

public void rescanCurrentDirectory(JFileChooser fc)
Specified by:
rescanCurrentDirectory in class FileChooserUI

ensureFileIsVisible

public void ensureFileIsVisible(JFileChooser fc,
                                File f)
Specified by:
ensureFileIsVisible in class FileChooserUI

getFileChooser

public JFileChooser getFileChooser()

getAccessoryPanel

public JPanel getAccessoryPanel()

getApproveButton

protected JButton getApproveButton(JFileChooser fc)

getApproveButtonToolTipText

public String getApproveButtonToolTipText(JFileChooser fc)

clearIconCache

public void clearIconCache()

createListSelectionListener

public ListSelectionListener createListSelectionListener(JFileChooser fc)

createDoubleClickListener

protected MouseListener createDoubleClickListener(JFileChooser fc,
                                                  JList list)

isDirectorySelected

protected boolean isDirectorySelected()
Property to remember whether a directory is currently selected in the UI.

Returns:
true iff a directory is currently selected.
Since:
1.4

setDirectorySelected

protected void setDirectorySelected(boolean b)
Property to remember whether a directory is currently selected in the UI. This is normally called by the UI on a selection event.

Parameters:
b - iff a directory is currently selected.
Since:
1.4

getDirectory

protected File getDirectory()
Property to remember the directory that is currently selected in the UI.

Returns:
the value of the directory property
Since:
1.4
See Also:
setDirectory(java.io.File)

setDirectory

protected void setDirectory(File f)
Property to remember the directory that is currently selected in the UI. This is normally called by the UI on a selection event.

Parameters:
f - the File object representing the directory that is currently selected
Since:
1.4

getAcceptAllFileFilter

public FileFilter getAcceptAllFileFilter(JFileChooser fc)
Returns the default accept all file filter

Specified by:
getAcceptAllFileFilter in class FileChooserUI

getFileView

public FileView getFileView(JFileChooser fc)
Specified by:
getFileView in class FileChooserUI

getDialogTitle

public String getDialogTitle(JFileChooser fc)
Returns the title of this dialog

Specified by:
getDialogTitle in class FileChooserUI

getApproveButtonMnemonic

public int getApproveButtonMnemonic(JFileChooser fc)

getApproveButtonText

public String getApproveButtonText(JFileChooser fc)
Specified by:
getApproveButtonText in class FileChooserUI

getNewFolderAction

public Action getNewFolderAction()

getGoHomeAction

public Action getGoHomeAction()

getChangeToParentDirectoryAction

public Action getChangeToParentDirectoryAction()

getApproveSelectionAction

public Action getApproveSelectionAction()

getCancelSelectionAction

public Action getCancelSelectionAction()

getUpdateAction

public Action getUpdateAction()

resetGlobFilter

private void resetGlobFilter()

isGlobPattern

private static boolean isGlobPattern(String filename)