org.openbp.swing.components.popupfield
Class JSelectionField

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 org.openbp.swing.components.popupfield.JPopupField
                      extended by org.openbp.swing.components.popupfield.JSelectionField
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class JSelectionField
extends JPopupField

Selection field component. This component works similar to a JComboBox. However, it's ui is a little different and it has much less overhead than the JComboBox (well, it doesn't support all that model and ui stuff the combo box does). In contrast to the JComboBox, it can also be used as cell component of a JTreeTable (well, the reason why a JComboBox doesn't work - the focus gets lost when leaving the combo box, also the selection of the first item does not always work - is undetermined). The selection box support localization in that way that it's item list may optionally contain a display name beside the actual item value. Same as the combo box, the selection field can be editable (which allows text input by the user) or a simple list selection field (which provides the values in the item list only).

Author:
Heiko Erhardt
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  JSelectionPopup popup
          Popup menu containing the selection list
 
Fields inherited from class org.openbp.swing.components.popupfield.JPopupField
arrowButton, label, textField
 
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
JSelectionField()
          Default constructor.
 
Method Summary
 void addItem(java.lang.Object item)
          Adds an item.
 void addItem(java.lang.String text, java.lang.Object item)
          Adds an item.
 void adjustPreferredSize()
          Adjusts the preferred size of the selection text field according to the length of the selection list texts.
 void clearItems()
          Clears the item list.
protected  javax.swing.JTextField createTextField()
          Creates the text field.
 java.lang.Object getItemAt(int index)
          Gets an item by its collection index.
 java.util.List getItemList()
          Gets the item list.
 java.util.Iterator getItems()
          Gets the item list.
 java.lang.String getItemTextAt(int index)
          Gets an item by its collection index.
 int getMaximumRowCount()
          Gets the maximum row count to display in the popup.
 int getNumberOfItems()
          Gets the number of items.
 int getSelectedIndex()
          Gets the index of the selected item in the item list.
 java.lang.Object getSelectedItem()
          Gets the selected item.
 boolean isPopupVisible()
          Gets the popup visibility.
protected  boolean selectWithKeyChar(char selectionChar)
          Selects an item using a key character.
 void setItemList(java.util.List itemList)
          Sets the item list.
 void setMaximumRowCount(int maximumRowCount)
          Sets the maximum row count to display in the popup.
 void setPopupVisible(boolean popupVisible)
          Sets the popup visibility.
 void setSelectedIndex(int selectedIndex)
          Sets the index of the selected item in the item list.
 void setSelectedItem(java.lang.Object selectedItem)
          Sets the selected item.
 
Methods inherited from class org.openbp.swing.components.popupfield.JPopupField
addActionListener, addPopupListener, createArrowButton, fireActionPerformed, firePopup, getLabelText, getText, getTextField, hidePopup, installAncestorListener, isEditable, isEnabled, removeActionListener, removePopupListener, requestFocus, resetHighlight, setEditable, setEnabled, setHighlight, setLabelText, setText, showPopup
 
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, 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, 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, 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, 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

popup

protected JSelectionPopup popup
Popup menu containing the selection list

Constructor Detail

JSelectionField

public JSelectionField()
Default constructor.

Method Detail

createTextField

protected javax.swing.JTextField createTextField()
Creates the text field.

Overrides:
createTextField in class JPopupField

adjustPreferredSize

public void adjustPreferredSize()
Adjusts the preferred size of the selection text field according to the length of the selection list texts.


selectWithKeyChar

protected boolean selectWithKeyChar(char selectionChar)
Selects an item using a key character. This will select the next item that starts with the given character from the item list, wrapping around if the item cannot be found from the current position downwards.

Overrides:
selectWithKeyChar in class JPopupField
Parameters:
selectionChar - Selection character
Returns:
true An item was selected.
false No item was found that begins with the specified character.

isPopupVisible

public boolean isPopupVisible()
Gets the popup visibility.

Specified by:
isPopupVisible in class JPopupField
Returns:
true The popup is shown.
false The popup is hidden.

setPopupVisible

public void setPopupVisible(boolean popupVisible)
Sets the popup visibility.

Specified by:
setPopupVisible in class JPopupField
Parameters:
popupVisible - true Shows the popup.
false Hides the popup.

getSelectedItem

public java.lang.Object getSelectedItem()
Gets the selected item.

Returns:
The selected item or null if no item of the item list has been selected. In the latter case, use the getText method to retrieve the text the user has entered in the selection field if the selection field is editable.

setSelectedItem

public void setSelectedItem(java.lang.Object selectedItem)
Sets the selected item.

Parameters:
selectedItem - Item to select.
The item must have been added to the field using the addItem(Object) method.

getSelectedIndex

public int getSelectedIndex()
Gets the index of the selected item in the item list.

Returns:
The index or -1 if no item of the item list is currently selected

setSelectedIndex

public void setSelectedIndex(int selectedIndex)
Sets the index of the selected item in the item list.

Parameters:
selectedIndex - The index or -1 to clear the selection field

getItems

public java.util.Iterator getItems()
Gets the item list.

Returns:
An iterator of objects

getNumberOfItems

public int getNumberOfItems()
Gets the number of items.

Returns:
The number of items in the collection

getItemTextAt

public java.lang.String getItemTextAt(int index)
Gets an item by its collection index.

Parameters:
index - Collection index (must be in the range [0..getNumberOfItems()]
Returns:
The item

getItemAt

public java.lang.Object getItemAt(int index)
Gets an item by its collection index.

Parameters:
index - Collection index (must be in the range [0..getNumberOfItems()]
Returns:
The item

addItem

public void addItem(java.lang.Object item)
Adds an item.

Parameters:
item - The item to add

addItem

public void addItem(java.lang.String text,
                    java.lang.Object item)
Adds an item. Constructs a helper object that holds the item and the text and adds it to the item list.

Parameters:
text - Text to display for the item
item - The item to add

clearItems

public void clearItems()
Clears the item list.


getItemList

public java.util.List getItemList()
Gets the item list.

Returns:
A list of objects

setItemList

public void setItemList(java.util.List itemList)
Sets the item list.

Parameters:
itemList - A list of objects

getMaximumRowCount

public int getMaximumRowCount()
Gets the maximum row count to display in the popup.

Returns:
The row count (default: 10)

setMaximumRowCount

public void setMaximumRowCount(int maximumRowCount)
Sets the maximum row count to display in the popup.



Copyright © 2011. All Rights Reserved.