edu.rice.cs.util.swing
Class FileSelectorComponent

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.FileSelectorComponent
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class FileSelectorComponent
extends JPanel

A JPanel with a text box and a "..." button used 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. TODO: make this inherit from FileSelectorStringComponent or factor the common code into an abstract class! Duplicated code!

Version:
$Id: FileSelectorComponent.java 5175 2010-01-20 08:46:32Z 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  JFileChooser _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  FileFilter _fileFilter
          File filter to use in the chooser.
protected  boolean _mustExist
          True if file must exist.
protected  SwingFrame _parent
          The parent frame 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
FileSelectorComponent(SwingFrame parent, JFileChooser chooser)
          Creates a new FileSelectorComponent with default dimensions.
FileSelectorComponent(SwingFrame parent, JFileChooser chooser, int numCols, float fontSize)
          Creates a new FileSelectorComponent.
FileSelectorComponent(SwingFrame parent, JFileChooser chooser, int numCols, float fontSize, boolean mustExist)
          Creates a new FileSelectorComponent.
 
Method Summary
protected  void _chooseFile()
          Opens the file chooser to select a file, putting the result in the file field.
 JFileChooser getFileChooser()
          Returns the file chooser.
 JTextField getFileField()
          Returns the file text field.
 File getFileFromField()
          Returns the file currently typed into the file field.
 void resetFileField()
           
 void setEnabled(boolean isEnabled)
           
 void setFileField(File file)
          Sets the text of the file field to be the given file.
 void setFileFilter(FileFilter filter)
          Sets the file filter to use.
 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 SwingFrame _parent
The parent frame 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 JFileChooser _chooser
File chooser to open when clicking the "..." button.


_fileFilter

protected volatile FileFilter _fileFilter
File filter to use in the chooser.


_file

protected volatile File _file
The current file


_mustExist

protected volatile boolean _mustExist
True if file must exist.

Constructor Detail

FileSelectorComponent

public FileSelectorComponent(SwingFrame parent,
                             JFileChooser chooser)
Creates a new FileSelectorComponent with default dimensions.

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

FileSelectorComponent

public FileSelectorComponent(SwingFrame parent,
                             JFileChooser chooser,
                             int numCols,
                             float fontSize)
Creates a new FileSelectorComponent.

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

FileSelectorComponent

public FileSelectorComponent(SwingFrame parent,
                             JFileChooser chooser,
                             int numCols,
                             float fontSize,
                             boolean mustExist)
Creates a new FileSelectorComponent.

Parameters:
parent - Parent of this component; may be null if the FileSelector is supposed to stand-alone.
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 - force selection of existing file
Method Detail

setEnabled

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

getFileField

public JTextField getFileField()
Returns the file text field.


getFileChooser

public JFileChooser getFileChooser()
Returns the file chooser.


getFileFromField

public File getFileFromField()
Returns the file currently typed into the file field.


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()

setFileFilter

public void setFileFilter(FileFilter filter)
Sets the file filter to use.


setToolTipText

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

_chooseFile

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


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.