JIDE 3.5.15

com.jidesoft.swing
Class FolderChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JFileChooser
                  extended by com.jidesoft.swing.FolderChooser
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class FolderChooser
extends JFileChooser

FolderChooser provides a simple mechanism for the user to choose a folder.

In addition to supporting the basic folder choosing function, it also supports create new folder, delete an existing folder. Another useful feature is recent list. It allows you to set a list of recent selected folders so that user can choose them directly instead of navigating to it in the file system tree.

The following code pops up a folder chooser for user to choose a folder.

    FolderChooser chooser = new FolderChooser();
    int returnVal = chooser.showOpenDialog(parent);
    if(returnVal == FolderChooser.APPROVE_OPTION) {
       System.out.println("You chose to open this file: " +
            chooser.getSelectedFile().getName());
    }
 

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFileChooser
JFileChooser.AccessibleJFileChooser
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static int BUTTON_ALL
           
static int BUTTON_DELETE
           
static int BUTTON_DESKTOP
           
static int BUTTON_MY_DOCUMENTS
           
static int BUTTON_NEW
           
static int BUTTON_REFRESH
           
static String PROPERTY_AVAILABLE_BUTTONS
          Property for _availableButtons.
static String PROPERTY_NAVIGATION_FIELD_VISIBLE
          Bound property for _navigationFieldVisible.
static String PROPERTY_RECENTLIST
           
static String PROPERTY_RECENTLIST_VISIBLE
           
 
Fields inherited from class javax.swing.JFileChooser
ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY, accessibleContext, ACCESSORY_CHANGED_PROPERTY, APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY, APPROVE_BUTTON_TEXT_CHANGED_PROPERTY, APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY, APPROVE_OPTION, APPROVE_SELECTION, CANCEL_OPTION, CANCEL_SELECTION, CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY, CUSTOM_DIALOG, DIALOG_TITLE_CHANGED_PROPERTY, DIALOG_TYPE_CHANGED_PROPERTY, DIRECTORIES_ONLY, DIRECTORY_CHANGED_PROPERTY, ERROR_OPTION, FILE_FILTER_CHANGED_PROPERTY, FILE_HIDING_CHANGED_PROPERTY, FILE_SELECTION_MODE_CHANGED_PROPERTY, FILE_SYSTEM_VIEW_CHANGED_PROPERTY, FILE_VIEW_CHANGED_PROPERTY, FILES_AND_DIRECTORIES, FILES_ONLY, MULTI_SELECTION_ENABLED_CHANGED_PROPERTY, OPEN_DIALOG, SAVE_DIALOG, SELECTED_FILE_CHANGED_PROPERTY, SELECTED_FILES_CHANGED_PROPERTY
 
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
FolderChooser()
           
FolderChooser(File currentDirectory)
           
FolderChooser(File currentDirectory, FileSystemView fsv)
           
FolderChooser(FileSystemView fsv)
           
FolderChooser(String currentDirectoryPath)
           
FolderChooser(String currentDirectoryPath, FileSystemView fsv)
           
 
Method Summary
 int getAvailableButtons()
          Get the visibilities of each buttons on the title bar of dockable frame.
 Comparator<File> getFileComparator()
          Gets the comparator that will be used to compare the folders displayed in the FolderChooser.
 List<String> getRecentList()
          Gets recent selected folder list.
 File getSelectedFolder()
          Returns the selected folder.
 String getUIClassID()
          Returns a string that specifies the name of the L&F class that renders this component.
 boolean isNavigationFieldVisible()
          Determines whether the navigation text field is visible.
 boolean isRecentListVisible()
          Get the visibility of the recent list combobox.
 void setAvailableButtons(int availableButtons)
          Set the visibilities of each buttons on the title bar of dockable frame.
 void setFileComparator(Comparator<File> fileComparator)
          Sets the comparator that will be used to compare the folders displayed in the FolderChooser.
 void setFileFilter(FileFilter filter)
           
 void setNavigationFieldVisible(boolean navigationFieldVisible)
          Sets the navigation text fields visibility.
 void setRecentList(List<String> recentList)
          Sets the recent folder list.
 void setRecentListVisible(boolean recentListVisible)
          Set the visibility of the recent list combobox.
 void setSelectedFolder(File selectedFolder)
          Sets the selected folder.
 void updateUI()
          Resets the UI property to a value from the current look and feel.
 
Methods inherited from class javax.swing.JFileChooser
accept, addActionListener, addChoosableFileFilter, approveSelection, cancelSelection, changeToParentDirectory, createDialog, ensureFileIsVisible, fireActionPerformed, getAcceptAllFileFilter, getAccessibleContext, getAccessory, getActionListeners, getApproveButtonMnemonic, getApproveButtonText, getApproveButtonToolTipText, getChoosableFileFilters, getControlButtonsAreShown, getCurrentDirectory, getDescription, getDialogTitle, getDialogType, getDragEnabled, getFileFilter, getFileSelectionMode, getFileSystemView, getFileView, getIcon, getName, getSelectedFile, getSelectedFiles, getTypeDescription, getUI, isAcceptAllFileFilterUsed, isDirectorySelectionEnabled, isFileHidingEnabled, isFileSelectionEnabled, isMultiSelectionEnabled, isTraversable, paramString, removeActionListener, removeChoosableFileFilter, rescanCurrentDirectory, resetChoosableFileFilters, setAcceptAllFileFilterUsed, setAccessory, setApproveButtonMnemonic, setApproveButtonMnemonic, setApproveButtonText, setApproveButtonToolTipText, setControlButtonsAreShown, setCurrentDirectory, setDialogTitle, setDialogType, setDragEnabled, setFileHidingEnabled, setFileSelectionMode, setFileSystemView, setFileView, setMultiSelectionEnabled, setSelectedFile, setSelectedFiles, setup, showDialog, showOpenDialog, showSaveDialog
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PROPERTY_RECENTLIST

public static final String PROPERTY_RECENTLIST
See Also:
Constant Field Values

PROPERTY_RECENTLIST_VISIBLE

public static final String PROPERTY_RECENTLIST_VISIBLE
See Also:
Constant Field Values

BUTTON_ALL

public static final int BUTTON_ALL
See Also:
Constant Field Values

BUTTON_DELETE

public static final int BUTTON_DELETE
See Also:
Constant Field Values

BUTTON_NEW

public static final int BUTTON_NEW
See Also:
Constant Field Values

BUTTON_REFRESH

public static final int BUTTON_REFRESH
See Also:
Constant Field Values

BUTTON_DESKTOP

public static final int BUTTON_DESKTOP
See Also:
Constant Field Values

BUTTON_MY_DOCUMENTS

public static final int BUTTON_MY_DOCUMENTS
See Also:
Constant Field Values

PROPERTY_AVAILABLE_BUTTONS

public static final String PROPERTY_AVAILABLE_BUTTONS
Property for _availableButtons.

See Also:
setAvailableButtons(int), Constant Field Values

PROPERTY_NAVIGATION_FIELD_VISIBLE

public static final String PROPERTY_NAVIGATION_FIELD_VISIBLE
Bound property for _navigationFieldVisible.

See Also:
setNavigationFieldVisible(boolean), Constant Field Values
Constructor Detail

FolderChooser

public FolderChooser()

FolderChooser

public FolderChooser(String currentDirectoryPath)

FolderChooser

public FolderChooser(File currentDirectory)

FolderChooser

public FolderChooser(FileSystemView fsv)

FolderChooser

public FolderChooser(File currentDirectory,
                     FileSystemView fsv)

FolderChooser

public FolderChooser(String currentDirectoryPath,
                     FileSystemView fsv)
Method Detail

getRecentList

public List<String> getRecentList()
Gets recent selected folder list. The element in the list is File.

Returns:
the recent selected folder list.

setRecentList

public void setRecentList(List<String> recentList)
Sets the recent folder list. The element in the list should be File. Property change event on PROPERTY_RECENTLIST will be fired when recent folder list is changed.

Parameters:
recentList - the recent folder list.

updateUI

public void updateUI()
Resets the UI property to a value from the current look and feel.

Overrides:
updateUI in class JFileChooser
See Also:
JComponent.updateUI()

getUIClassID

public String getUIClassID()
Returns a string that specifies the name of the L&F class that renders this component.

Overrides:
getUIClassID in class JFileChooser
Returns:
the string "FolderChooserUI"
See Also:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

getSelectedFolder

public File getSelectedFolder()
Returns the selected folder. This can be set either by the programmer via setSelectedFolder or by a user action, such as selecting the folder from a 'folder tree' in the UI.

Returns:
the selected folder in the folder tree
See Also:
setSelectedFolder(java.io.File)

setSelectedFolder

public void setSelectedFolder(File selectedFolder)
Sets the selected folder.

Property change event JFileChooser.SELECTED_FILE_CHANGED_PROPERTY will be fired when a new folder is selected.

Parameters:
selectedFolder - the selected folder
See Also:
getSelectedFolder()

setNavigationFieldVisible

public void setNavigationFieldVisible(boolean navigationFieldVisible)
Sets the navigation text fields visibility.

Parameters:
navigationFieldVisible - if true, the navigation text field is displayed; otherwise it is hidden.

isNavigationFieldVisible

public boolean isNavigationFieldVisible()
Determines whether the navigation text field is visible.

Returns:
true if the navigation text field is visible; otherwise false.

getAvailableButtons

public int getAvailableButtons()
Get the visibilities of each buttons on the title bar of dockable frame.

Returns:
the visibilities of each buttons. It's a bit wise OR of values specified at BUTTON_XXX.

setAvailableButtons

public void setAvailableButtons(int availableButtons)
Set the visibilities of each buttons on the title bar of dockable frame.

Parameters:
availableButtons - the visibilities of each buttons. It's a bit wise OR of values specified at BUTTON_XXX.

isRecentListVisible

public boolean isRecentListVisible()
Get the visibility of the recent list combobox.

Returns:
the visibility of the combobox.

setRecentListVisible

public void setRecentListVisible(boolean recentListVisible)
Set the visibility of the recent list combobox.

Parameters:
recentListVisible - the visibility of the combobox

setFileFilter

public void setFileFilter(FileFilter filter)
Overrides:
setFileFilter in class JFileChooser

getFileComparator

public Comparator<File> getFileComparator()
Gets the comparator that will be used to compare the folders displayed in the FolderChooser. This comparator will determine the order of the folders. It returns null by default.

Returns:
the Comparator.

setFileComparator

public void setFileComparator(Comparator<File> fileComparator)
Sets the comparator that will be used to compare the folders displayed in the FolderChooser. This comparator will determine the order of the folders. For example, you can use AlphanumFileComparator to sort the folder alphanum-ly.

Parameters:
fileComparator - a new Comparator.

JIDE 3.5.15