Package adams.gui.chooser
Class BaseDirectoryChooser
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JFileChooser
-
- com.jidesoft.swing.FolderChooser
-
- adams.gui.chooser.BaseDirectoryChooser
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
public class BaseDirectoryChooser extends com.jidesoft.swing.FolderChooser
Extended version of the com.jidesoft.swing.FolderChooser to handle PlaceholderFile objects.- Author:
- FracPete (fracpete at waikat dot ac dot nz)
- 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
Fields Modifier and Type Field Description protected OneTouchPanel
m_OneTouchPanel
the panel for showing/hiding the bookmarks.protected FileChooserBookmarksPanel
m_PanelBookmarks
the bookmarks.-
Fields inherited from class com.jidesoft.swing.FolderChooser
BUTTON_ALL, BUTTON_DELETE, BUTTON_DESKTOP, BUTTON_MY_DOCUMENTS, BUTTON_NEW, BUTTON_REFRESH, PROPERTY_AVAILABLE_BUTTONS, PROPERTY_NAVIGATION_FIELD_VISIBLE, PROPERTY_RECENTLIST, 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
Constructors Constructor Description BaseDirectoryChooser()
Creates a BaseDirectoryChooser pointing to the user's home directory.BaseDirectoryChooser(File currentDirectory)
Creates a BaseDirectoryChooser using the given File as the path.BaseDirectoryChooser(File currentDirectory, FileSystemView fsv)
Creates a BaseDirectoryChooser using the given current directory and FileSystemView.BaseDirectoryChooser(String currentDirectoryPath)
Creates a BaseDirectoryChooser using the given path.BaseDirectoryChooser(String currentDirectoryPath, FileSystemView fsv)
Creates a BaseDirectoryChooser using the given path and FileSystemView.BaseDirectoryChooser(FileSystemView fsv)
Creates a BaseDirectoryChooser using the given FileSystemView.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChoosableFileFilter(FileFilter filter)
Does nothing.protected JComponent
createAccessoryPanel()
Creates an accessory panel displayed next to the files.protected static File
findExistingDir(File dir)
Returns a directory that exists, starting with the provided one.File
getCurrentDirectory()
Returns the current directory.PlaceholderDirectory[]
getSelectedDirectories()
Returns the selected directories.PlaceholderDirectory
getSelectedDirectory()
Returns the selected directory.File
getSelectedFile()
Returns the selected file.File[]
getSelectedFiles()
Returns a list of selected files if the file chooser is set to allow multiple selection.protected void
initialize()
For initializing some stuff.static void
main(String[] args)
For testing only.void
setCurrentDirectory(File dir)
Sets the current directory.void
setSelectedFile(File file)
Sets the selected file.void
setSelectedFiles(File[] selectedFiles)
Sets the list of selected files if the file chooser is set to allow multiple selection.protected void
showBookmarks(boolean value)
Either displays or hides the bookmarks.int
showDialog(Component parent, String approveButtonText)
Displays the dialog.-
Methods inherited from class com.jidesoft.swing.FolderChooser
getAvailableButtons, getFileComparator, getRecentList, getSelectedFolder, getUIClassID, isNavigationFieldVisible, isRecentListVisible, setAvailableButtons, setFileComparator, setFileFilter, setNavigationFieldVisible, setRecentList, setRecentListVisible, setSelectedFolder, updateUI
-
Methods inherited from class javax.swing.JFileChooser
accept, addActionListener, approveSelection, cancelSelection, changeToParentDirectory, createDialog, ensureFileIsVisible, fireActionPerformed, getAcceptAllFileFilter, getAccessibleContext, getAccessory, getActionListeners, getApproveButtonMnemonic, getApproveButtonText, getApproveButtonToolTipText, getChoosableFileFilters, getControlButtonsAreShown, getDescription, getDialogTitle, getDialogType, getDragEnabled, getFileFilter, getFileSelectionMode, getFileSystemView, getFileView, getIcon, getName, getTypeDescription, getUI, isAcceptAllFileFilterUsed, isDirectorySelectionEnabled, isFileHidingEnabled, isFileSelectionEnabled, isMultiSelectionEnabled, isTraversable, paramString, removeActionListener, removeChoosableFileFilter, rescanCurrentDirectory, resetChoosableFileFilters, setAcceptAllFileFilterUsed, setAccessory, setApproveButtonMnemonic, setApproveButtonMnemonic, setApproveButtonText, setApproveButtonToolTipText, setControlButtonsAreShown, setDialogTitle, setDialogType, setDragEnabled, setFileHidingEnabled, setFileSelectionMode, setFileSystemView, setFileView, setMultiSelectionEnabled, setup, 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
m_PanelBookmarks
protected FileChooserBookmarksPanel m_PanelBookmarks
the bookmarks.
-
m_OneTouchPanel
protected OneTouchPanel m_OneTouchPanel
the panel for showing/hiding the bookmarks.
-
-
Constructor Detail
-
BaseDirectoryChooser
public BaseDirectoryChooser()
Creates a BaseDirectoryChooser pointing to the user's home directory.
-
BaseDirectoryChooser
public BaseDirectoryChooser(File currentDirectory)
Creates a BaseDirectoryChooser using the given File as the path.- Parameters:
currentDirectory
- the directory to start in
-
BaseDirectoryChooser
public BaseDirectoryChooser(File currentDirectory, FileSystemView fsv)
Creates a BaseDirectoryChooser using the given current directory and FileSystemView.- Parameters:
currentDirectory
- the directory to start infsv
- the view to use
-
BaseDirectoryChooser
public BaseDirectoryChooser(FileSystemView fsv)
Creates a BaseDirectoryChooser using the given FileSystemView.- Parameters:
fsv
- the view to use
-
BaseDirectoryChooser
public BaseDirectoryChooser(String currentDirectoryPath)
Creates a BaseDirectoryChooser using the given path.- Parameters:
currentDirectoryPath
- the directory to start in
-
BaseDirectoryChooser
public BaseDirectoryChooser(String currentDirectoryPath, FileSystemView fsv)
Creates a BaseDirectoryChooser using the given path and FileSystemView.- Parameters:
currentDirectoryPath
- the directory to start infsv
- the view to use
-
-
Method Detail
-
initialize
protected void initialize()
For initializing some stuff.
Default implementation does nothing.
-
createAccessoryPanel
protected JComponent createAccessoryPanel()
Creates an accessory panel displayed next to the files.- Returns:
- the panel or null if none available
-
showBookmarks
protected void showBookmarks(boolean value)
Either displays or hides the bookmarks.- Parameters:
value
- true if to show bookmarks
-
findExistingDir
protected static File findExistingDir(File dir)
Returns a directory that exists, starting with the provided one. If path cannot be used at all, they current working directory ("user.dir") is returned.- Parameters:
dir
- the starting dir- Returns:
- the existing dir
-
addChoosableFileFilter
public void addChoosableFileFilter(FileFilter filter)
Does nothing.- Overrides:
addChoosableFileFilter
in classJFileChooser
- Parameters:
filter
- ignored
-
setSelectedFile
public void setSelectedFile(File file)
Sets the selected file. If the file's parent directory is not the current directory, changes the current directory to be the file's parent directory.- Overrides:
setSelectedFile
in classJFileChooser
- Parameters:
file
- the selected file- See Also:
getSelectedFile()
-
getSelectedFile
public File getSelectedFile()
Returns the selected file. This can be set either by the programmer viasetFile
or by a user action, such as either typing the filename into the UI or selecting the file from a list in the UI.- Overrides:
getSelectedFile
in classJFileChooser
- Returns:
- the selected file
-
getSelectedDirectory
public PlaceholderDirectory getSelectedDirectory()
Returns the selected directory.- Returns:
- the selected directory
-
setSelectedFiles
public void setSelectedFiles(File[] selectedFiles)
Sets the list of selected files if the file chooser is set to allow multiple selection.- Overrides:
setSelectedFiles
in classJFileChooser
- Parameters:
selectedFiles
- the files to select initially
-
getSelectedFiles
public File[] getSelectedFiles()
Returns a list of selected files if the file chooser is set to allow multiple selection.- Overrides:
getSelectedFiles
in classJFileChooser
- Returns:
- the selected file
-
getSelectedDirectories
public PlaceholderDirectory[] getSelectedDirectories()
Returns the selected directories.- Returns:
- the selected directories
-
getCurrentDirectory
public File getCurrentDirectory()
Returns the current directory.- Overrides:
getCurrentDirectory
in classJFileChooser
- Returns:
- the current directory, as PlaceholderFile
- See Also:
setCurrentDirectory(java.io.File)
-
setCurrentDirectory
public void setCurrentDirectory(File dir)
Sets the current directory. Passing innull
sets the file chooser to point to the user's default directory. This default depends on the operating system. It is typically the "My Documents" folder on Windows, and the user's home directory on Unix. If the file passed in ascurrentDirectory
is not a directory, the parent of the file will be used as the currentDirectory. If the parent is not traversable, then it will walk up the parent tree until it finds a traversable directory, or hits the root of the file system.- Overrides:
setCurrentDirectory
in classJFileChooser
- Parameters:
dir
- the current directory to point to- See Also:
getCurrentDirectory()
-
showDialog
public int showDialog(Component parent, String approveButtonText) throws HeadlessException
Displays the dialog.- Overrides:
showDialog
in classJFileChooser
- Parameters:
parent
- the parent component of the dialog; can benull
approveButtonText
- the text of theApproveButton
- Returns:
- the return state of the file chooser on popdown
- Throws:
HeadlessException
- if GraphicsEnvironment.isHeadless() returns true.- See Also:
GraphicsEnvironment.isHeadless()
-
main
public static void main(String[] args)
For testing only.- Parameters:
args
- ignored
-
-