edu.rice.cs.util.swing
Class DirectorySelectorComponent

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by edu.rice.cs.util.swing.DirectorySelectorComponent
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class DirectorySelectorComponent
extends JPanel

A JPanel with a text box and a "..." button to select a file or directory. The file name is editable in the text box, and a JFileChooser is displayed if the user clicks the "..." button.

Version:
$Id: DirectorySelectorComponent.java 4461 2008-05-02 17:28:50Z mgricken $
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
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
protected  DirectoryChooser _chooser
          File chooser to open when clicking the "..." button.
protected  JButton _chooserButton
          "..." button to open the file chooser.
protected  File _file
          The current file
protected  JTextField _fileField
          Text field with the name of the selected file.
protected  boolean _mustExist
          true if the file specified must exist and a file that doesn't exist will be rejected.
protected  Component _parent
          The parent component of this component.
static float DEFAULT_FONT_SIZE
          The default font size for the text box.
static int DEFAULT_NUM_COLS
          The default number of columns for the text box.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
DirectorySelectorComponent(Component parent, DirectoryChooser chooser)
          Creates a new DirectorySelectorComponent with default dimensions whose file must exist.
DirectorySelectorComponent(Component parent, DirectoryChooser chooser, int numCols, float fontSize)
          Creates a new DirectorySelectorComponent whose file must exist.
DirectorySelectorComponent(Component parent, DirectoryChooser chooser, int numCols, float fontSize, boolean mustExist)
          Creates a new DirectorySelectorComponent.
 
Method Summary
protected  void _chooseFile()
          Opens the file chooser to select a file, putting the result in the file field.
 void addChoosableFileFilter(FileFilter filter)
          Adds a filter to decide if a directory can be chosen.
 void clearChoosableFileFilters()
           
 DirectoryChooser getFileChooser()
          Returns the file chooser.
 JTextField getFileField()
          Returns the file text field.
 File getFileFromField()
          Returns the file currently typed into the file field.
 void removeChoosableFileFilter(FileFilter filter)
          Removes the given filefilter from the chooser.
 void resetFileField()
           
 void setEnabled(boolean isEnabled)
           
 void setFileField(File file)
          Sets the text of the file field to be the given file.
 void setToolTipText(String text)
           
 boolean validateTextField()
          The chooser method for the validation of filenames that are manually entered into the text field.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
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, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, 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

DEFAULT_NUM_COLS

public static final int DEFAULT_NUM_COLS
The default number of columns for the text box.

See Also:
Constant Field Values

DEFAULT_FONT_SIZE

public static final float DEFAULT_FONT_SIZE
The default font size for the text box.

See Also:
Constant Field Values

_parent

protected final Component _parent
The parent component of this component.


_fileField

protected final JTextField _fileField
Text field with the name of the selected file.


_chooserButton

protected final JButton _chooserButton
"..." button to open the file chooser.


_chooser

protected final DirectoryChooser _chooser
File chooser to open when clicking the "..." button.


_file

protected File _file
The current file


_mustExist

protected boolean _mustExist
true if the file specified must exist and a file that doesn't exist will be rejected.

Constructor Detail

DirectorySelectorComponent

public DirectorySelectorComponent(Component parent,
                                  DirectoryChooser chooser)
Creates a new DirectorySelectorComponent with default dimensions whose file must exist.

Parameters:
parent - Parent of this component.
chooser - File chooser to display from the "..." button.

DirectorySelectorComponent

public DirectorySelectorComponent(Component parent,
                                  DirectoryChooser chooser,
                                  int numCols,
                                  float fontSize)
Creates a new DirectorySelectorComponent whose file must exist.

Parameters:
parent - Parent of this component.
chooser - File chooser to display from the "..." button.
numCols - Number of columns to display in the text field
fontSize - Font size for the text field

DirectorySelectorComponent

public DirectorySelectorComponent(Component parent,
                                  DirectoryChooser chooser,
                                  int numCols,
                                  float fontSize,
                                  boolean mustExist)
Creates a new DirectorySelectorComponent.

Parameters:
parent - Parent of this component.
chooser - File chooser to display from the "..." button.
numCols - Number of columns to display in the text field
fontSize - Font size for the text field
mustExist - true if the file specified in the field must exist
Method Detail

setEnabled

public void setEnabled(boolean isEnabled)
Overrides:
setEnabled in class JComponent

getFileField

public JTextField getFileField()
Returns the file text field.


getFileChooser

public DirectoryChooser getFileChooser()
Returns the file chooser.


getFileFromField

public File getFileFromField()
Returns the file currently typed into the file field. THE SIDE EFFECTS OF THIS METHOD ARE OBSCENE! Corky 2/5/06


setFileField

public void setFileField(File file)
Sets the text of the file field to be the given file.

Parameters:
file - File to display in the file field.

resetFileField

public void resetFileField()

setToolTipText

public void setToolTipText(String text)
Overrides:
setToolTipText in class JComponent

addChoosableFileFilter

public void addChoosableFileFilter(FileFilter filter)
Adds a filter to decide if a directory can be chosen.


removeChoosableFileFilter

public void removeChoosableFileFilter(FileFilter filter)
Removes the given filefilter from the chooser.


clearChoosableFileFilters

public void clearChoosableFileFilters()

validateTextField

public boolean validateTextField()
The chooser method for the validation of filenames that are manually entered into the text field.

Returns:
False, if file does not exist. True, otherwise.

_chooseFile

protected void _chooseFile()
Opens the file chooser to select a file, putting the result in the file field.