JIDE 3.4.0

com.jidesoft.combobox
Class MultiSelectListChooserPanel

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

public class MultiSelectListChooserPanel
extends ButtonPopupPanel
implements ItemListener, ListDataListener

MultiSelectListChooserPanel is a PopupPanel that can choose a value from a JList with allows multiple selection.

See Also:
Serialized Form

Nested Class Summary
protected  class MultiSelectListChooserPanel.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  ListModel _listModel
           
protected  MouseListener listMouseListener
          This protected field is implementation specific.
protected  MouseMotionListener listMouseMotionListener
          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.ButtonPopupPanel
_cancelAction, _cancelButton, _okAction, _okButton
 
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
MultiSelectListChooserPanel()
           
MultiSelectListChooserPanel(Action okAction, Action cancelAction)
           
MultiSelectListChooserPanel(ComboBoxModel model, Class<?> clazz)
          Creates a new JPanel with a double buffer and a flow layout.
MultiSelectListChooserPanel(ComboBoxModel model, Class<?> clazz, Action okAction, Action cancelAction)
           
MultiSelectListChooserPanel(ComboBoxModel model, Class<?> clazz, ConverterContext elementConverterContext)
          Creates a new JPanel with a double buffer and a flow layout.
MultiSelectListChooserPanel(ComboBoxModel model, Class<?> clazz, ConverterContext elementConverterContext, Action okAction, Action cancelAction)
           
MultiSelectListChooserPanel(Object[] objects, Class<?> clazz)
          Creates a new CheckBoxListChooserPanel.
MultiSelectListChooserPanel(Object[] objects, Class<?> clazz, Action okAction, Action cancelAction)
           
MultiSelectListChooserPanel(Vector<?> objects, Class<?> clazz)
          Creates a new JPanel with a double buffer and a flow layout.
MultiSelectListChooserPanel(Vector<?> objects, Class<?> clazz, Action okAction, Action cancelAction)
           
 
Method Summary
protected  void configureListModel(ComboBoxModel model)
          Configure the list model with the combo box model of MultiSelectListChooserPanel.
 void contentsChanged(ListDataEvent e)
          The list data listener when entry(s) is/are inserted in the combo box model.
protected  Vector<Object> convertComboBoxModelToVector(ComboBoxModel comboBoxModel)
           
protected  MouseEvent convertMouseEvent(MouseEvent e)
           
protected  JList createList(ComboBoxModel comboBoxModel)
          Subclass can override this method to create a custom JList.
protected  ListModel createListModel(Vector<?> vector)
          Creates the list model for the list use based on the vector.
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  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.
 JList getList()
          Gets the JList.
 int getMaximumRowCount()
          Gets the maximum number of rows the JList displays
 ListCellRenderer getRenderer()
          Returns the renderer used to display the selected item in the JComboBox field.
 Object getSelectedObject()
          Gets the selected object.
protected  void initComponents()
           
protected  void installListListeners()
          Adds the listeners to the list control.
 void intervalAdded(ListDataEvent e)
          The list data listener when new entry(s) is/are inserted in the combo box model.
 void intervalRemoved(ListDataEvent e)
          The list data listener when old entry(s) is/are removed in the combo box model.
protected  boolean isAutoScroll()
           
 void itemStateChanged(ItemEvent e)
           
protected  Object[] retrieveListSelection()
           
 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 setMaximumRowCount(int count)
          Sets the maximum number of rows the JList displays.
 void setRenderer(ListCellRenderer renderer)
          Sets the renderer that paints the list items and the item selected from the list in the JComboBox field.
protected  void setupList(JList list)
          Configures the list.
protected  void updateListSelection(Object selectedObject)
           
 
Methods inherited from class com.jidesoft.combobox.ButtonPopupPanel
createButtonPanel, getCancelAction, getDefaultButton, getOkAction, getOkButton, setCancelAction, setOkAction
 
Methods inherited from class com.jidesoft.combobox.PopupPanel
addItemListener, addItemListener, fireItemStateChanged, getActualPreferredSize, getDefaultFocusComponent, getItemListeners, getMouseListener, getMouseMotionListener, getPreferredSize, getPreviousSelectedObject, getResizableCorners, getSelectedObjects, getTitle, isResetButtonVisible, isResizable, isStretchToFit, needsButtons, removeItemListener, requestFocus, setDefaultFocusComponent, setNeedButtons, setPreferredSize, setResizable, setResizableCorners, setSelectedObject, 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

_listModel

protected ListModel _listModel

_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.


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

MultiSelectListChooserPanel

public MultiSelectListChooserPanel()

MultiSelectListChooserPanel

public MultiSelectListChooserPanel(Action okAction,
                                   Action cancelAction)

MultiSelectListChooserPanel

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

Parameters:
objects - an array of objects to insert into the combo box
clazz - the element type

MultiSelectListChooserPanel

public MultiSelectListChooserPanel(Object[] objects,
                                   Class<?> clazz,
                                   Action okAction,
                                   Action cancelAction)
Parameters:
objects - an array of objects to insert into the combo box
clazz - the element type
okAction - the OK action
cancelAction - the cancel action

MultiSelectListChooserPanel

public MultiSelectListChooserPanel(Vector<?> objects,
                                   Class<?> clazz)
Creates a new JPanel with a double buffer and a flow layout.

Parameters:
objects - a vector of the objects
clazz - the element type

MultiSelectListChooserPanel

public MultiSelectListChooserPanel(Vector<?> objects,
                                   Class<?> clazz,
                                   Action okAction,
                                   Action cancelAction)

MultiSelectListChooserPanel

public MultiSelectListChooserPanel(ComboBoxModel model,
                                   Class<?> clazz)
Creates a new JPanel with a double buffer and a flow layout.

Parameters:
model - the ComboBoxModel that provides the displayed list of items
clazz - the element type

MultiSelectListChooserPanel

public MultiSelectListChooserPanel(ComboBoxModel model,
                                   Class<?> clazz,
                                   Action okAction,
                                   Action cancelAction)
Parameters:
model - the ComboBoxModel that provides the displayed list of items
clazz - the element type
okAction - the OK action
cancelAction - the cancel action

MultiSelectListChooserPanel

public MultiSelectListChooserPanel(ComboBoxModel model,
                                   Class<?> clazz,
                                   ConverterContext elementConverterContext)
Creates a new JPanel with a double buffer and a flow layout.

Parameters:
model - the combobox model
clazz - the element type
elementConverterContext - the converter context for the elements.

MultiSelectListChooserPanel

public MultiSelectListChooserPanel(ComboBoxModel model,
                                   Class<?> clazz,
                                   ConverterContext elementConverterContext,
                                   Action okAction,
                                   Action cancelAction)
Method Detail

initComponents

protected void initComponents()

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 be customized.

createList

protected JList createList(ComboBoxModel comboBoxModel)
Subclass can override this method to create a custom JList. The Searchable is installed in this method. If you override, you need to install the Searchable on the list by yourself.

Parameters:
comboBoxModel - the combobox model which is used to create a CheckBoxList.
Returns:
the list

createListModel

protected ListModel createListModel(Vector<?> vector)
Creates the list model for the list use based on the vector.

Parameters:
vector - the elements vector
Returns:
the created list model.
Since:
3.2.1

convertComboBoxModelToVector

protected Vector<Object> convertComboBoxModelToVector(ComboBoxModel comboBoxModel)

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 check box list

itemStateChanged

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

retrieveListSelection

protected Object[] retrieveListSelection()

updateListSelection

protected void updateListSelection(Object selectedObject)

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

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 object converter

getList

public JList getList()
Gets the JList.

Returns:
the JList.

getSelectedObject

public Object getSelectedObject()
Gets the selected object. In the case of MultiSelectListChooserPanel, the selected object is an array of elements that are checked in the CheckBoxList. The return type is always Object[] regardless of the actual data type.

Overrides:
getSelectedObject in class PopupPanel
Returns:
the 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

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

installListListeners

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


isAutoScroll

protected boolean isAutoScroll()

intervalAdded

public void intervalAdded(ListDataEvent e)
The list data listener when new entry(s) is/are inserted in the combo box model.

Specified by:
intervalAdded in interface ListDataListener
Parameters:
e - the event
Since:
3.2.1

intervalRemoved

public void intervalRemoved(ListDataEvent e)
The list data listener when old entry(s) is/are removed in the combo box model.

Specified by:
intervalRemoved in interface ListDataListener
Parameters:
e - the event
Since:
3.2.1

contentsChanged

public void contentsChanged(ListDataEvent e)
The list data listener when entry(s) is/are inserted in the combo box model.

Specified by:
contentsChanged in interface ListDataListener
Parameters:
e - the event
Since:
3.2.1

configureListModel

protected void configureListModel(ComboBoxModel model)
Configure the list model with the combo box model of MultiSelectListChooserPanel.

Parameters:
model - the combo box model
Since:
3.2.1

JIDE 3.4.0