magi.toolkit.dialogs.dirchooser
Class DirectoryChooser

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Dialog
                          |
                          +--javax.swing.JDialog
                                |
                                +--magi.toolkit.dialogs.CenteredDialog
                                      |
                                      +--magi.toolkit.dialogs.dirchooser.DirectoryChooser
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.lang.Runnable, java.io.Serializable, javax.swing.event.TreeSelectionListener, javax.swing.event.TreeWillExpandListener, javax.swing.WindowConstants

public class DirectoryChooser
extends CenteredDialog
implements java.awt.event.ActionListener, java.lang.Runnable, javax.swing.event.TreeSelectionListener, javax.swing.event.TreeWillExpandListener

DirectoryChooser. A user interface widget to allow the user to select a drive and directory from the hard drive.

Author:
Paul Atkinson, Magi Systems Pty Ltd.
See Also:
Serialized Form

Field Summary
(package private)  javax.swing.JButton btnCancel
           
(package private)  javax.swing.JButton btnOK
           
(package private)  javax.swing.JPanel panelBottom
           
(package private)  javax.swing.JPanel panelLeft
           
(package private)  javax.swing.JPanel panelRight
           
(package private)  javax.swing.JPanel panelTop
           
(package private)  javax.swing.JScrollPane scroller
           
(package private)  javax.swing.JTree treeDirectory
           
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
 
Fields inherited from class java.awt.Window
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DirectoryChooser(java.awt.Frame owner, java.lang.String title)
          Creates a hidden Directory Chooser dialog, that belongs to (and is modal on) the owner frame.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Capture button clicks.
 java.io.File getDirectory()
          Returns a File object containing the user selected path.
 java.lang.String getSelectedPath()
          Returns a String containing the user selected path.
 boolean isShowingHidden()
          Returns true if hidden directories are being displayed in the list.
 boolean isSortingList()
          Returns true if the list of directories is being sorted under each parent.
 void run()
          Worker thread to make the preset path visible, and scroll down to this path.
 void setDirectory(java.io.File currDir)
          Set the directory to display in this dialog.
 void setShowHidden(boolean showHidden)
          Informs this Directory Chooser to display "hidden" directories in the list.
 void setSortList(boolean sortList)
          Informs this Directory Chooser to sort the list of directories under each parent.
 void setVisible(boolean visible)
          Override the setVisible (go modal) on this dialog to pre-load the directory tree before displaying.
 void treeWillCollapse(javax.swing.event.TreeExpansionEvent event)
          Captures node collapse events.
 void treeWillExpand(javax.swing.event.TreeExpansionEvent event)
          Capture node expansion events.
 void valueChanged(javax.swing.event.TreeSelectionEvent e)
          Tree node selection event.
 boolean wasCancelled()
          Returns true if the Cancel button was used to dismiss this dialog.
 
Methods inherited from class magi.toolkit.dialogs.CenteredDialog
setSize, setSize
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, dispose, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

treeDirectory

javax.swing.JTree treeDirectory

panelBottom

javax.swing.JPanel panelBottom

panelTop

javax.swing.JPanel panelTop

panelLeft

javax.swing.JPanel panelLeft

panelRight

javax.swing.JPanel panelRight

btnOK

javax.swing.JButton btnOK

btnCancel

javax.swing.JButton btnCancel

scroller

javax.swing.JScrollPane scroller
Constructor Detail

DirectoryChooser

public DirectoryChooser(java.awt.Frame owner,
                        java.lang.String title)
Creates a hidden Directory Chooser dialog, that belongs to (and is modal on) the owner frame. The chooser displays the provided title String in the caption bar. To display this Directory Chooser and go modal, call setVisible(true).

Parameters:
owner - the parent of this directory chooser dialog.
title - the String title to display in the title bar.
Method Detail

setShowHidden

public void setShowHidden(boolean showHidden)
Informs this Directory Chooser to display "hidden" directories in the list.

Parameters:
showHidden - true if you wish to display "hidden" directories.

isShowingHidden

public boolean isShowingHidden()
Returns true if hidden directories are being displayed in the list.

Returns:
true if showing hidden directories.

setSortList

public void setSortList(boolean sortList)
Informs this Directory Chooser to sort the list of directories under each parent.

Parameters:
sortList - true if directories should be sorted alphabetically.

isSortingList

public boolean isSortingList()
Returns true if the list of directories is being sorted under each parent.

Returns:
true if sorted.

getSelectedPath

public java.lang.String getSelectedPath()
Returns a String containing the user selected path. Will return null if no selection has been made, or Cancel was pressed.

Returns:
the path of the selected directory.

getDirectory

public java.io.File getDirectory()
Returns a File object containing the user selected path. Will return null if no selection has been made, or Cancel was pressed.

Returns:
a File object for the selected directory.

setDirectory

public void setDirectory(java.io.File currDir)
Set the directory to display in this dialog. Once set, the directory tree will expand out to make this path visible and selected for the user.

Parameters:
currDir - the File object for the directory to start in.

wasCancelled

public boolean wasCancelled()
Returns true if the Cancel button was used to dismiss this dialog.

Returns:
true if the dialog was cancelled.

setVisible

public void setVisible(boolean visible)
Override the setVisible (go modal) on this dialog to pre-load the directory tree before displaying.

Overrides:
setVisible in class java.awt.Component
Parameters:
visible - true to display this dialog.

run

public void run()
Worker thread to make the preset path visible, and scroll down to this path.

Specified by:
run in interface java.lang.Runnable

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Capture button clicks.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

treeWillExpand

public void treeWillExpand(javax.swing.event.TreeExpansionEvent event)
                    throws javax.swing.tree.ExpandVetoException
Capture node expansion events. Not all sub-directories in the tree have been loaded, so the children are preloaded here if needed before a node opens.

Specified by:
treeWillExpand in interface javax.swing.event.TreeWillExpandListener
javax.swing.tree.ExpandVetoException

treeWillCollapse

public void treeWillCollapse(javax.swing.event.TreeExpansionEvent event)
                      throws javax.swing.tree.ExpandVetoException
Captures node collapse events.

Specified by:
treeWillCollapse in interface javax.swing.event.TreeWillExpandListener
javax.swing.tree.ExpandVetoException

valueChanged

public void valueChanged(javax.swing.event.TreeSelectionEvent e)
Tree node selection event.

Specified by:
valueChanged in interface javax.swing.event.TreeSelectionListener