JIDE 3.5.15

com.jidesoft.combobox
Class ListChooserPanel

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 com.jidesoft.combobox.PopupPanel
                      extended by com.jidesoft.combobox.ListChooserPanel
All Implemented Interfaces:
AlignmentSupport, ItemListener, ImageObserver, ItemSelectable, MenuContainer, Serializable, EventListener, Accessible, ListDataListener
Direct Known Subclasses:
MultiSelectListChooserPanel

public class ListChooserPanel
extends PopupPanel
implements ItemListener, ListDataListener, AlignmentSupport

ListChooserPanel is a PopupPanel that can choose a value from a list.

See Also:
Serialized Form

Nested Class Summary
protected  class ListChooserPanel.Handler
           
 
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  Class<?> _class
           
protected  JList _list
           
protected  KeyListener keyListener
          This protected field is implementation specific.
protected  MouseListener listMouseListener
          This protected field is implementation specific.
protected  MouseMotionListener listMouseMotionListener
          This protected field is implementation specific.
protected  ListSelectionListener listSelectionListener
          This protected field is implementation specific.
protected  MouseListener mouseListener
          This protected field is implementation specific.
protected  MouseMotionListener mouseMotionListener
          This protected field is implementation specific.
 
Fields inherited from class com.jidesoft.combobox.PopupPanel
_previousSelectedObject, SELECTED_BY_MOUSE_ROLLOVER
 
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
ListChooserPanel()
           
ListChooserPanel(ComboBoxModel model, Class<?> clazz)
          Creates a new ListChooserPanel.
ListChooserPanel(ComboBoxModel model, Class<?> clazz, ConverterContext elementConverterContext)
          Creates a new ListChooserPanel.
ListChooserPanel(ComboBoxModel model, Class<?> clazz, ObjectConverter converter, ConverterContext elementConverterContext)
          Creates a new ListChooserPanel.
ListChooserPanel(Object[] objects, Class<?> clazz)
          Creates a new ListChooserPanel.
ListChooserPanel(Vector<?> objects, Class<?> clazz)
          Creates a new ListChooserPanel.
 
Method Summary
 void contentsChanged(ListDataEvent e)
           
protected  MouseEvent convertMouseEvent(MouseEvent e)
           
protected  ListChooserPanel.Handler createHandler()
          Creates the handler to handle mouse events and property change events
protected  ItemListener createItemListener()
          Creates an ItemListener which will be added to the combo box.
protected  KeyListener createKeyListener()
          Creates the key listener that will be added to the combo box.
protected  JList createList(ComboBoxModel comboBoxModel)
          Subclass can override this method to create a custom JList.
protected  ListDataListener createListDataListener()
          Creates a list data listener which will be added to the ComboBoxModel.
protected  MouseListener createListMouseListener()
          Creates a mouse listener that watches for mouse events in the popup's list.
protected  MouseMotionListener createListMouseMotionListener()
          Creates a mouse motion listener that watches for mouse motion events in the popup's list.
protected  ListSelectionListener createListSelectionListener()
          Creates a list selection listener that watches for selection changes in the popup's list.
protected  MouseListener createMouseListener()
          Creates a listener that will watch for mouse-press and release events on the combo box.
protected  MouseMotionListener createMouseMotionListener()
          Creates the mouse motion listener which will be added to the combo box.
protected  PropertyChangeListener createPropertyChangeListener()
          Creates a PropertyChangeListener which will be added to the combo box.
protected  void customizeScroller(JScrollPane scroller)
          Configures the scrollable portion which holds the list within the combo box popup.
 ObjectConverter getConverter()
          Gets the converter that will convert the element in the ListModel to String that can be displayed on the JList.
 ConverterContext getConverterContext()
          Gets the converter context that used to convert the element in the list to/from string.
 int getHorizontalAlignment()
          Returns the horizontal alignment of the content.
 JList getList()
          Gets the JList.
 int getMaximumRowCount()
          Gets the maximum number of rows the JList displays
 int getMaximumWidth()
          Gets the maximum width of the ListChooserPanel
 MouseListener getMouseListener()
           
 MouseMotionListener getMouseMotionListener()
           
 ListCellRenderer getRenderer()
          Returns the renderer used to display the selected item in the JComboBox field.
 int getVerticalAlignment()
          Returns the vertical alignment of the content.
protected  void initComponents()
           
protected  void installListListeners()
          Adds the listeners to the list control.
 void intervalAdded(ListDataEvent e)
           
 void intervalRemoved(ListDataEvent e)
           
protected  boolean isAutoScroll()
           
 void itemStateChanged(ItemEvent e)
           
 void removeAllListeners()
          Removes all listeners it created.
 void setConverter(ObjectConverter converter)
          Sets a new converter that will convert the element in the ListModel to String that can be displayed on the JList.
 void setConverterContext(ConverterContext converterContext)
          Sets the converter context that used to convert the element in the list to/from string.
 void setHorizontalAlignment(int horizontalAlignment)
          Sets the horizontal alignment of the content.
 void setMaximumRowCount(int count)
          Sets the maximum number of rows the JList displays.
 void setMaximumWidth(int maximumWidth)
          Sets the maximum width of the ListChooserPanel
 void setRenderer(ListCellRenderer renderer)
          Sets the renderer that paints the list items and the item selected from the list in the JComboBox field.
 void setSelectedObject(Object selectedObject)
          Sets the selected object and fire ItemEvent.
protected  void setupList(JList list)
          Configures the list.
 void setVerticalAlignment(int verticalAlignment)
          Sets the vertical alignment of the content.
protected  void updateListSelection(Object selectedObject, boolean shouldScroll)
           
protected  void updateListSelectionWithoutFiringEvent()
           
 
Methods inherited from class com.jidesoft.combobox.PopupPanel
addItemListener, addItemListener, fireItemStateChanged, getActualPreferredSize, getDefaultFocusComponent, getItemListeners, getPreferredSize, getPreviousSelectedObject, getResizableCorners, getSelectedObject, getSelectedObjects, getTitle, isResetButtonVisible, isResizable, isStretchToFit, needsButtons, removeItemListener, requestFocus, setDefaultFocusComponent, setNeedButtons, setPreferredSize, setResizable, setResizableCorners, setSelectedObject, setSelectedObject, setSelectedObject, setStretchToFit, setTitle
 
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, 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, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, 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, 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

_list

protected JList _list

_class

protected Class<?> _class

mouseMotionListener

protected MouseMotionListener mouseMotionListener
This protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.


mouseListener

protected MouseListener mouseListener
This protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.


keyListener

protected KeyListener keyListener
This protected field is implementation specific. Do not access directly or override. Use the accessor or create methods instead.

See Also:
createKeyListener()

listSelectionListener

protected ListSelectionListener listSelectionListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead.

See Also:
createListSelectionListener()

listMouseListener

protected MouseListener listMouseListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead.

See Also:
createListMouseListener()

listMouseMotionListener

protected MouseMotionListener listMouseMotionListener
This protected field is implementation specific. Do not access directly or override. Use the create method instead

See Also:
createListMouseMotionListener()
Constructor Detail

ListChooserPanel

public ListChooserPanel()

ListChooserPanel

public ListChooserPanel(Object[] objects,
                        Class<?> clazz)
Creates a new ListChooserPanel.

Parameters:
objects - the objects
clazz - the class type

ListChooserPanel

public ListChooserPanel(Vector<?> objects,
                        Class<?> clazz)
Creates a new ListChooserPanel.

Parameters:
objects - the objects
clazz - the class type

ListChooserPanel

public ListChooserPanel(ComboBoxModel model,
                        Class<?> clazz)
Creates a new ListChooserPanel.

Parameters:
model - the combo box model
clazz - the class type

ListChooserPanel

public ListChooserPanel(ComboBoxModel model,
                        Class<?> clazz,
                        ConverterContext elementConverterContext)
Creates a new ListChooserPanel.

Parameters:
model - the combo box model
clazz - the class type
elementConverterContext - the converter context

ListChooserPanel

public ListChooserPanel(ComboBoxModel model,
                        Class<?> clazz,
                        ObjectConverter converter,
                        ConverterContext elementConverterContext)
Creates a new ListChooserPanel.

Parameters:
model - the combo box model
clazz - the class type
converter - the convereter
elementConverterContext - the converter context
Method Detail

removeAllListeners

public void removeAllListeners()
Description copied from class: PopupPanel
Removes all listeners it created. It should only be invoked by ExComboBoxPopup when the popup is reset. You should not invoke this method at any circumstance.

Overrides:
removeAllListeners in class PopupPanel

initComponents

protected void initComponents()

isAutoScroll

protected boolean isAutoScroll()

customizeScroller

protected void customizeScroller(JScrollPane scroller)
Configures the scrollable portion which holds the list within the combo box popup. This method is called when the UI class is created.

Parameters:
scroller - the scroll pane to customize

createList

protected JList createList(ComboBoxModel comboBoxModel)
Subclass can override this method to create a custom JList.

Parameters:
comboBoxModel - the combo box model used to create list
Returns:
the list.

intervalAdded

public void intervalAdded(ListDataEvent e)
Specified by:
intervalAdded in interface ListDataListener

intervalRemoved

public void intervalRemoved(ListDataEvent e)
Specified by:
intervalRemoved in interface ListDataListener

contentsChanged

public void contentsChanged(ListDataEvent e)
Specified by:
contentsChanged in interface ListDataListener

updateListSelectionWithoutFiringEvent

protected void updateListSelectionWithoutFiringEvent()

setupList

protected void setupList(JList list)
Configures the list. The base class sets cell renderer and add mouse/key listener in this method. Subclass can override this method to do additional setup.

Parameters:
list - the list to configure

itemStateChanged

public void itemStateChanged(ItemEvent e)
Specified by:
itemStateChanged in interface ItemListener

updateListSelection

protected void updateListSelection(Object selectedObject,
                                   boolean shouldScroll)

getMaximumRowCount

public int getMaximumRowCount()
Gets the maximum number of rows the JList displays

Returns:
the maximum number of rows the JList displays.

setMaximumRowCount

public void setMaximumRowCount(int count)
Sets the maximum number of rows the JList displays. If the number of objects in the model is greater than count, the list uses a scrollbar.

Parameters:
count - an integer specifying the maximum number of items to display in the list before using a scrollbar

getMaximumWidth

public int getMaximumWidth()
Gets the maximum width of the ListChooserPanel

Returns:
the maximum width.
Since:
3.4.2

setMaximumWidth

public void setMaximumWidth(int maximumWidth)
Sets the maximum width of the ListChooserPanel

Parameters:
maximumWidth - the maximum width
Since:
3.4.2

getRenderer

public ListCellRenderer getRenderer()
Returns the renderer used to display the selected item in the JComboBox field.

Returns:
the list cell renderer.

setRenderer

public void setRenderer(ListCellRenderer renderer)
Sets the renderer that paints the list items and the item selected from the list in the JComboBox field. The renderer is used if the JComboBox is not editable. If it is editable, the editor is used to render and edit the selected item.

The default renderer displays a string or an icon. Other renderers can handle graphic images and composite items.

To display the selected item, aRenderer.getListCellRendererComponent is called, passing the list object and an index of -1.

Parameters:
renderer - the ListCellRenderer that displays the selected item

getConverterContext

public ConverterContext getConverterContext()
Gets the converter context that used to convert the element in the list to/from string.

Returns:
the converter context.

setConverterContext

public void setConverterContext(ConverterContext converterContext)
Sets the converter context that used to convert the element in the list to/from string.

Parameters:
converterContext - the converter context

getConverter

public ObjectConverter getConverter()
Gets the converter that will convert the element in the ListModel to String that can be displayed on the JList.

Returns:
the converter.

setConverter

public void setConverter(ObjectConverter converter)
Sets a new converter that will convert the element in the ListModel to String that can be displayed on the JList.

Parameters:
converter - the converter

getList

public JList getList()
Gets the JList.

Returns:
the JList.

setSelectedObject

public void setSelectedObject(Object selectedObject)
Description copied from class: PopupPanel
Sets the selected object and fire ItemEvent. It will still fire event even the new selected object is the same as old selected object.

Overrides:
setSelectedObject in class PopupPanel
Parameters:
selectedObject - new selected object

convertMouseEvent

protected MouseEvent convertMouseEvent(MouseEvent e)

createMouseListener

protected MouseListener createMouseListener()
Creates a listener that will watch for mouse-press and release events on the combo box.

Warning: When overriding this method, make sure to maintain the existing behavior.

Returns:
a MouseListener which will be added to the combo box or null

createMouseMotionListener

protected MouseMotionListener createMouseMotionListener()
Creates the mouse motion listener which will be added to the combo box.

Warning: When overriding this method, make sure to maintain the existing behavior.

Returns:
a MouseMotionListener which will be added to the combo box or null

createKeyListener

protected KeyListener createKeyListener()
Creates the key listener that will be added to the combo box. If this method returns null then it will not be added to the combo box.

Returns:
a KeyListener or null

createListSelectionListener

protected ListSelectionListener createListSelectionListener()
Creates a list selection listener that watches for selection changes in the popup's list. If this method returns null then it will not be added to the popup list.

Returns:
an instance of a ListSelectionListener or null

createListDataListener

protected ListDataListener createListDataListener()
Creates a list data listener which will be added to the ComboBoxModel. If this method returns null then it will not be added to the combo box model.

Returns:
an instance of a ListDataListener or null

createListMouseListener

protected MouseListener createListMouseListener()
Creates a mouse listener that watches for mouse events in the popup's list. If this method returns null then it will not be added to the combo box.

Returns:
an instance of a MouseListener or null

createListMouseMotionListener

protected MouseMotionListener createListMouseMotionListener()
Creates a mouse motion listener that watches for mouse motion events in the popup's list. If this method returns null then it will not be added to the combo box.

Returns:
an instance of a MouseMotionListener or null

createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener()
Creates a PropertyChangeListener which will be added to the combo box. If this method returns null then it will not be added to the combo box.

Returns:
an instance of a PropertyChangeListener or null

createItemListener

protected ItemListener createItemListener()
Creates an ItemListener which will be added to the combo box. If this method returns null then it will not be added to the combo box.

Subclasses may override this method to return instances of their own ItemEvent handlers.

Returns:
an instance of an ItemListener or null

createHandler

protected ListChooserPanel.Handler createHandler()
Creates the handler to handle mouse events and property change events

Returns:
the handler
Since:
3.4.2

installListListeners

protected void installListListeners()
Adds the listeners to the list control.


getMouseMotionListener

public MouseMotionListener getMouseMotionListener()
Overrides:
getMouseMotionListener in class PopupPanel

getMouseListener

public MouseListener getMouseListener()
Overrides:
getMouseListener in class PopupPanel

getHorizontalAlignment

public int getHorizontalAlignment()
Description copied from interface: AlignmentSupport
Returns the horizontal alignment of the content. AbstractButton's default is SwingConstants.CENTER, but subclasses such as JCheckBox may use a different default.

Specified by:
getHorizontalAlignment in interface AlignmentSupport
Returns:
the horizontalAlignment property, one of the following values:
  • SwingConstants.RIGHT
  • SwingConstants.LEFT
  • SwingConstants.CENTER
  • SwingConstants.LEADING
  • SwingConstants.TRAILING

setHorizontalAlignment

public void setHorizontalAlignment(int horizontalAlignment)
Description copied from interface: AlignmentSupport
Sets the horizontal alignment of the content. AbstractButton's default is SwingConstants.CENTER, but subclasses such as JCheckBox may use a different default.

Specified by:
setHorizontalAlignment in interface AlignmentSupport
Parameters:
horizontalAlignment - the alignment value, one of the following values:
  • SwingConstants.RIGHT
  • SwingConstants.LEFT
  • SwingConstants.CENTER
  • SwingConstants.LEADING
  • SwingConstants.TRAILING

getVerticalAlignment

public int getVerticalAlignment()
Description copied from interface: AlignmentSupport
Returns the vertical alignment of the content.

Specified by:
getVerticalAlignment in interface AlignmentSupport
Returns:
the verticalAlignment property, one of the following values:
  • SwingConstants.CENTER (the default)
  • SwingConstants.TOP
  • SwingConstants.BOTTOM

setVerticalAlignment

public void setVerticalAlignment(int verticalAlignment)
Description copied from interface: AlignmentSupport
Sets the vertical alignment of the content.

Specified by:
setVerticalAlignment in interface AlignmentSupport
Parameters:
verticalAlignment - one of the following values:
  • SwingConstants.CENTER (the default)
  • SwingConstants.TOP
  • SwingConstants.BOTTOM

JIDE 3.5.15