FreeHEP API
Version v1.1

org.freehep.application
Class RecentItemTextField

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JComboBox
                          |
                          +--org.freehep.application.RecentItemTextField
All Implemented Interfaces:
Accessible, ActionListener, EventListener, ImageObserver, ItemSelectable, KeyListener, ListDataListener, MenuContainer, Serializable

public final class RecentItemTextField
extends JComboBox
implements KeyListener

This class is ideal if you want to have a text field for user input but also have a list of recently selected items available to choose from. Some notes on using this class:

It is important to point this out because the KeyEvents, ActionEvents, and ChangeEvents described above are not how a normal combo box will generate them.

Basically, a ChangeEvent is a dual purpose event. One is sent to listeners both when a KeyEvent is generated from the text field, and one is sent when an ItemEvent is generated (which happens when an item is selected from the drop-down list). This means that somebody who wants to know when the actual text showing has changed only needs to implement ChangeListener instead of both ItemListener and KeyListener.

Version:
$Id: RecentItemTextField.java,v 1.3 2001/03/01 21:30:39 tonyj Exp $
Author:
Jonas Gifford
See Also:
Serialized Form

Field Summary
 
Fields inherited from class javax.swing.JComboBox
actionCommand, dataModel, editor, isEditable, keySelectionManager, lightWeightPopupEnabled, maximumRowCount, renderer, selectedItemReminder
 
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
RecentItemTextField(String[] dropDownItems, boolean clickDefault)
          Creates a RecentItemTextField with the given list of drop-down items.
RecentItemTextField(String key, int nItems, boolean clickDefault)
          Creates a RecentItemTextField with a dropDown list that will be stored in the user properties object for the Application.
RecentItemTextField(String key, String lengthKey, boolean clickDefault)
          Creates a RecentItemTextField with a dropDown list that will be stored in the user properties object for the Application.
 
Method Summary
 void addActionListener(ActionListener l)
          Adds an the given ActionListener to the text field.
 void addChangeListener(ChangeListener l)
          Change listeners will be notified any time the text visible in the text field changes.
 void addKeyListener(KeyListener kl)
          Adds a key listener to the text field, not to the JComboBox.
protected  void fireItemStateChanged(ItemEvent event)
          This method is protected as an implementation side effect.
 Dimension getMaximumSize()
          Encorporates the maximum width if it has been set.
 Dimension getMinimumSize()
          Encorporates the minimum width if it has been set.
 Dimension getPreferredSize()
          Encorporates the minimum and maximum widths if they have been set.
 String getText()
          Returns the text currently showing in the text field.
 void keyPressed(KeyEvent e)
          This method is public as an implementation side effect; do not call.
 void keyReleased(KeyEvent e)
          This method is public as an implementation side effect; do not call.
 void keyTyped(KeyEvent e)
          This method is public as an implementation side effect; do not call.
 void requestFocus()
          Requests focus for the text field of the box.
 void saveState()
          If a key was supplied to the constructor, the drop-down list will be updated to include the currently selected item.
 void setMaxWidth(int maxWidth)
          Set the maximum width of the box.
 void setMinWidth(int minWidth)
          Set the minimum width of the box.
 void setText(String s)
          Sets the text showing in the text field.
static String showInputDialog(Component owner, Object message, String key)
          Show an input dialog, with a record of recent entries.
static String showInputDialog(Component owner, Object message, String title, int messageType, String key)
          Show an input dialog, with a record of recent entries.
 
Methods inherited from class javax.swing.JComboBox
actionPerformed, addItem, addItemListener, addPopupMenuListener, configureEditor, configurePropertiesFromAction, contentsChanged, createActionPropertyChangeListener, createDefaultKeySelectionManager, fireActionEvent, firePopupMenuCanceled, firePopupMenuWillBecomeInvisible, firePopupMenuWillBecomeVisible, getAccessibleContext, getAction, getActionCommand, getActionListeners, getEditor, getItemAt, getItemCount, getItemListeners, getKeySelectionManager, getMaximumRowCount, getModel, getPopupMenuListeners, getPrototypeDisplayValue, getRenderer, getSelectedIndex, getSelectedItem, getSelectedObjects, getUI, getUIClassID, hidePopup, insertItemAt, installAncestorListener, intervalAdded, intervalRemoved, isEditable, isLightWeightPopupEnabled, isPopupVisible, paramString, processKeyEvent, removeActionListener, removeAllItems, removeItem, removeItemAt, removeItemListener, removePopupMenuListener, selectedItemChanged, selectWithKeyChar, setAction, setActionCommand, setEditable, setEditor, setEnabled, setKeySelectionManager, setLightWeightPopupEnabled, setMaximumRowCount, setModel, setPopupVisible, setPrototypeDisplayValue, setRenderer, setSelectedIndex, setSelectedItem, setUI, showPopup, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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
 

Constructor Detail

RecentItemTextField

public RecentItemTextField(String[] dropDownItems,
                           boolean clickDefault)
Creates a RecentItemTextField with the given list of drop-down items. You are responsible for keeping and providing an updated list.

Parameters:
dropDownItems - the items to show in the drop-down list (can safely be null)
clickDefault - whether the default button should be clicked when Enter is pressed
See Also:
JRootPane.defaultButton

RecentItemTextField

public RecentItemTextField(String key,
                           int nItems,
                           boolean clickDefault)
Creates a RecentItemTextField with a dropDown list that will be stored in the user properties object for the Application. Invoke the saveState() method to have the list be updated to include the selected item.

Parameters:
key - the key that the drop-down items will be stored by
nItems - the maximum number of items that will be stored on the drop-down list
clickDefault - whether the default button should be clicked when Enter is pressed
See Also:
Application.getUserProperties(), JRootPane.defaultButton

RecentItemTextField

public RecentItemTextField(String key,
                           String lengthKey,
                           boolean clickDefault)
Creates a RecentItemTextField with a dropDown list that will be stored in the user properties object for the Application. Invoke the saveState() method to have the list be updated to include the selected item.

Parameters:
key - the key that the drop-down items will be stored by
lengthKey - the key that maps to the maximum number of items that will be stored on the drop-down list
clickDefault - whether the default button should be clicked when Enter is pressed
See Also:
Application.getUserProperties(), JRootPane.defaultButton
Method Detail

saveState

public void saveState()
If a key was supplied to the constructor, the drop-down list will be updated to include the currently selected item.


getText

public String getText()
Returns the text currently showing in the text field.


setText

public void setText(String s)
Sets the text showing in the text field.


addKeyListener

public void addKeyListener(KeyListener kl)
Adds a key listener to the text field, not to the JComboBox.

Overrides:
addKeyListener in class Component

keyReleased

public final void keyReleased(KeyEvent e)
This method is public as an implementation side effect; do not call.

Specified by:
keyReleased in interface KeyListener

keyPressed

public final void keyPressed(KeyEvent e)
This method is public as an implementation side effect; do not call.

Specified by:
keyPressed in interface KeyListener

addChangeListener

public void addChangeListener(ChangeListener l)
Change listeners will be notified any time the text visible in the text field changes. This is equivalent to having a KeyListener and an ItemListener.

Parameters:
l - the ChangeListener to add

addActionListener

public void addActionListener(ActionListener l)
Adds an the given ActionListener to the text field.

Overrides:
addActionListener in class JComboBox

fireItemStateChanged

protected final void fireItemStateChanged(ItemEvent event)
This method is protected as an implementation side effect.

Overrides:
fireItemStateChanged in class JComboBox

requestFocus

public final void requestFocus()
Requests focus for the text field of the box.

Overrides:
requestFocus in class JComponent

keyTyped

public final void keyTyped(KeyEvent e)
This method is public as an implementation side effect; do not call.

Specified by:
keyTyped in interface KeyListener

setMaxWidth

public final void setMaxWidth(int maxWidth)
Set the maximum width of the box. The default is used if this method is not called.

Parameters:
maxWidth - give a number in pixels, or -1 to use default

setMinWidth

public final void setMinWidth(int minWidth)
Set the minimum width of the box. The default is used if this method is not called.

Parameters:
minWidth - give a number in pixels, or -1 to use default

getMaximumSize

public final Dimension getMaximumSize()
Encorporates the maximum width if it has been set.

Overrides:
getMaximumSize in class JComponent
See Also:
setMaxWidth(int)

getMinimumSize

public final Dimension getMinimumSize()
Encorporates the minimum width if it has been set.

Overrides:
getMinimumSize in class JComponent
See Also:
setMinWidth(int)

getPreferredSize

public final Dimension getPreferredSize()
Encorporates the minimum and maximum widths if they have been set.

Overrides:
getPreferredSize in class JComponent
See Also:
setMinWidth(int), setMaxWidth(int)

showInputDialog

public static String showInputDialog(Component owner,
                                     Object message,
                                     String key)
Show an input dialog, with a record of recent entries.

Parameters:
owner - The dialog owner
message - The message to display
key - The key under which the recent items are stored in the user properties
See Also:
JOptionPane.showInputDialog(Component,Object)

showInputDialog

public static String showInputDialog(Component owner,
                                     Object message,
                                     String title,
                                     int messageType,
                                     String key)
Show an input dialog, with a record of recent entries.

Parameters:
owner - The dialog owner
message - The message to display
title - The dialog title
key - The key under which the recent items are stored in the user properties
See Also:
JOptionPane.showInputDialog(Component,Object,String,int)

FreeHEP API
Version v1.1

Copyright © 2000-2002 FreeHEP, All Rights Reserved.