JIDE 3.5.15

com.jidesoft.swing
Class CheckBoxList

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JList
                  extended by com.jidesoft.swing.CheckBoxList
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable
Direct Known Subclasses:
CheckBoxListChooserPanel.CheckBoxListWithResourceProvider, FilterableCheckBoxList, QuickFilterPane.QuickFilterCheckBoxList

public class CheckBoxList
extends JList

CheckBoxList is a special JList which uses JCheckBox as the list element. In addition to regular JList feature, it also allows you select any number of elements in the list by selecting the check boxes.

To select an element, user can mouse click on the check box, or highlight the rows and press SPACE key to toggle the selections.

We used cell renderer feature in JList to add the check box in each row. However you can still set your own cell renderer just like before using JList.setCellRenderer(javax.swing.ListCellRenderer). CheckBoxList will use your cell renderer and automatically put a check box before it.

The selection state is kept in a ListSelectionModel called CheckBoxListSelectionModel, which you can get using getCheckBoxListSelectionModel(). If you need to add a check to a check box or to find out if a check box is checked, you need to ask the getCheckBoxListSelectionModel() by using addListSelectionListener.

It is possible to add an "(All)" item. All you need to do is to add CheckBoxList.ALL to the list model. Then check the (All) item will select all the check boxes and uncheck it will deselect all.

Please note, we changed CheckBoxList implementation in 1.9.2 release. The old CheckBoxList class is renamed to CheckBoxListWithSelectable. If you want to use the old implementation, you can use CheckBoxListWithSelectable instead. The main difference between the two implementation is at how the selection state is kept. In new implementation, the selection state is kept at a separate ListSelectionModel which you can get using getCheckBoxListSelectionModel(). If you need to add a check to a check box or to find out if a check box is checked, you need to ask the getCheckBoxListSelectionModel() by using addListSelectionListener. The old implementation kept the selection state at Selectable object in the ListModel. The new implementation also has the same design as that of CheckBoxTree.

See Also:
Serialized Form

Nested Class Summary
protected static class CheckBoxList.Handler
           
 
Nested classes/interfaces inherited from class javax.swing.JList
JList.AccessibleJList, JList.DropLocation
 
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  CheckBoxList.Handler _handler
           
protected  CheckBoxListCellRenderer _listCellRenderer
           
static String ALL
          Deprecated. replaced by ALL_ENTRY
static Object ALL_ENTRY
          The default all entry for CheckBoxList.
static String PROPERTY_CHECKBOX_ENABLED
           
static String PROPERTY_CLICK_IN_CHECKBOX_ONLY
           
 
Fields inherited from class javax.swing.JList
HORIZONTAL_WRAP, VERTICAL, VERTICAL_WRAP
 
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
CheckBoxList()
          Constructs a CheckBoxList with an empty model.
CheckBoxList(ListModel dataModel)
          Constructs a CheckBoxList that displays the elements in the specified, non-null model.
CheckBoxList(Object[] listData)
          Constructs a CheckBoxList that displays the elements in the specified Object[].
CheckBoxList(Vector<?> listData)
          Constructs a CheckBoxList that displays the elements in the specified Vector.
 
Method Summary
 void addCheckBoxListSelectedIndex(int index)
          Selects a single cell and keeps all previous selections.
 void addCheckBoxListSelectedValue(Object anObject, boolean shouldScroll)
          Selects the specified object from the list and keep all previous selections.
 void addCheckBoxListSelectedValues(Object[] objects)
          Selects the specified objects from the list and keep all previous selections.
 void clearCheckBoxListSelection()
           
protected  CheckBoxListCellRenderer createCellRenderer()
          Creates the cell renderer.
protected  CheckBoxListSelectionModel createCheckBoxListSelectionModel(ListModel model)
           
protected  CheckBoxList.Handler createHandler()
          Creates the mouse listener and key listener used by CheckBoxList.
 ListCellRenderer getActualCellRenderer()
           
 ListCellRenderer getCellRenderer()
           
 int getCheckBoxListSelectedIndex()
          Returns the first selected index; returns -1 if there is no selected item.
 int[] getCheckBoxListSelectedIndices()
          Returns an array of all of the selected indices in increasing order.
 Object getCheckBoxListSelectedValue()
          Returns the first selected value, or null if the selection is empty.
 Object[] getCheckBoxListSelectedValues()
          Returns an array of the values for the selected cells.
 CheckBoxListSelectionModel getCheckBoxListSelectionModel()
          Gets the ListSelectionModel that keeps the check boxes' state information for CheckBoxList.
 int getLastVisibleIndex()
           
 int getNextMatch(String prefix, int startIndex, Position.Bias bias)
           
 Dimension getPreferredScrollableViewportSize()
           
protected  void init()
          Initialize the CheckBoxList.
 boolean isCheckBoxEnabled()
          Gets the value of property checkBoxEnabled.
 boolean isCheckBoxEnabled(int index)
          Checks if check box is enabled.
 boolean isCheckBoxVisible(int index)
          Checks if check box is visible.
 boolean isClickInCheckBoxOnly()
          Gets the value of property clickInCheckBoxOnly.
 void removeCheckBoxListSelectedIndex(int index)
          Deselects a single cell.
 void removeCheckBoxListSelectedValue(Object anObject, boolean shouldScroll)
          Deselects the specified object from the list.
 void removeCheckBoxListSelectedValues(Object[] objects)
          Deselects the specified objects from the list and keep all previous selections.
 void selectAll()
          Selects all objects in this list.
 void selectNone()
          Deselects all objects in this list.
 void setCheckBoxEnabled(boolean checkBoxEnabled)
          Sets the value of property checkBoxEnabled.
 void setCheckBoxListSelectedIndex(int index)
          Selects a single cell and clear all other selections.
 void setCheckBoxListSelectedIndices(int[] indices)
          Selects a set of cells.
 void setCheckBoxListSelectedValue(Object anObject, boolean shouldScroll)
          Selects the specified object from the list and clear all other selections.
 void setCheckBoxListSelectionModel(CheckBoxListSelectionModel checkBoxListSelectionModel)
           
 void setClickInCheckBoxOnly(boolean clickInCheckBoxOnly)
          Sets the value of property clickInCheckBoxOnly.
 void setModel(ListModel model)
           
 void setSelectedObjects(Object[] elements)
          Sets the selected elements.
 void setSelectedObjects(Vector<?> elements)
          Sets the selected elements.
 void updateUI()
           
 
Methods inherited from class javax.swing.JList
addListSelectionListener, addSelectionInterval, clearSelection, createSelectionModel, ensureIndexIsVisible, fireSelectionValueChanged, getAccessibleContext, getAnchorSelectionIndex, getCellBounds, getDragEnabled, getDropLocation, getDropMode, getFirstVisibleIndex, getFixedCellHeight, getFixedCellWidth, getLayoutOrientation, getLeadSelectionIndex, getListSelectionListeners, getMaxSelectionIndex, getMinSelectionIndex, getModel, getPrototypeCellValue, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedIndex, getSelectedIndices, getSelectedValue, getSelectedValues, getSelectionBackground, getSelectionForeground, getSelectionMode, getSelectionModel, getToolTipText, getUI, getUIClassID, getValueIsAdjusting, getVisibleRowCount, indexToLocation, isSelectedIndex, isSelectionEmpty, locationToIndex, paramString, removeListSelectionListener, removeSelectionInterval, setCellRenderer, setDragEnabled, setDropMode, setFixedCellHeight, setFixedCellWidth, setLayoutOrientation, setListData, setListData, setPrototypeCellValue, setSelectedIndex, setSelectedIndices, setSelectedValue, setSelectionBackground, setSelectionForeground, setSelectionInterval, setSelectionMode, setSelectionModel, setUI, setValueIsAdjusting, setVisibleRowCount
 
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, 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, setEnabled, 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, 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

_listCellRenderer

protected CheckBoxListCellRenderer _listCellRenderer

PROPERTY_CHECKBOX_ENABLED

public static final String PROPERTY_CHECKBOX_ENABLED
See Also:
Constant Field Values

PROPERTY_CLICK_IN_CHECKBOX_ONLY

public static final String PROPERTY_CLICK_IN_CHECKBOX_ONLY
See Also:
Constant Field Values

_handler

protected CheckBoxList.Handler _handler

ALL

@Deprecated
public static final String ALL
Deprecated. replaced by ALL_ENTRY
See Also:
Constant Field Values

ALL_ENTRY

public static final Object ALL_ENTRY
The default all entry for CheckBoxList.

Since:
3.4.1
Constructor Detail

CheckBoxList

public CheckBoxList()
Constructs a CheckBoxList with an empty model.


CheckBoxList

public CheckBoxList(Vector<?> listData)
Constructs a CheckBoxList that displays the elements in the specified Vector.

Parameters:
listData - the Vector to be loaded into the data model

CheckBoxList

public CheckBoxList(Object[] listData)
Constructs a CheckBoxList that displays the elements in the specified Object[].

Parameters:
listData - the array of Objects to be loaded into the data model

CheckBoxList

public CheckBoxList(ListModel dataModel)
Constructs a CheckBoxList that displays the elements in the specified, non-null model. All CheckBoxList constructors delegate to this one.

Parameters:
dataModel - the data model for this list
Throws:
IllegalArgumentException - if dataModel is null
Method Detail

setModel

public void setModel(ListModel model)
Overrides:
setModel in class JList

updateUI

public void updateUI()
Overrides:
updateUI in class JList

init

protected void init()
Initialize the CheckBoxList.


getLastVisibleIndex

public int getLastVisibleIndex()
Overrides:
getLastVisibleIndex in class JList

createCheckBoxListSelectionModel

protected CheckBoxListSelectionModel createCheckBoxListSelectionModel(ListModel model)

createCellRenderer

protected CheckBoxListCellRenderer createCellRenderer()
Creates the cell renderer.

Returns:
the cell renderer.

createHandler

protected CheckBoxList.Handler createHandler()
Creates the mouse listener and key listener used by CheckBoxList.

Returns:
the Handler.

getCellRenderer

public ListCellRenderer getCellRenderer()
Overrides:
getCellRenderer in class JList

getActualCellRenderer

public ListCellRenderer getActualCellRenderer()

getNextMatch

public int getNextMatch(String prefix,
                        int startIndex,
                        Position.Bias bias)
Overrides:
getNextMatch in class JList

isCheckBoxEnabled

public boolean isCheckBoxEnabled(int index)
Checks if check box is enabled. There is no setter for it. The only way is to override this method to return true or false.

Parameters:
index - the row index.
Returns:
true or false. If false, the check box on the particular row index will be disabled.

isCheckBoxVisible

public boolean isCheckBoxVisible(int index)
Checks if check box is visible. There is no setter for it. The only way is to override this method to return true or false.

Parameters:
index - whether the check box on the row index is visible.
Returns:
true or false. If false, there is not check box on the particular row index. By default, we always return true. You override this method to return true of false depending on your need.

isCheckBoxEnabled

public boolean isCheckBoxEnabled()
Gets the value of property checkBoxEnabled. If true, user can click on check boxes on each tree node to select and deselect. If false, user can't click but you as developer can programmatically call API to select/deselect it.

Returns:
the value of property checkBoxEnabled.

setCheckBoxEnabled

public void setCheckBoxEnabled(boolean checkBoxEnabled)
Sets the value of property checkBoxEnabled.

Parameters:
checkBoxEnabled - true to allow to check the check box. False to disable it which means user can see whether a row is checked or not but they cannot change it.

isClickInCheckBoxOnly

public boolean isClickInCheckBoxOnly()
Gets the value of property clickInCheckBoxOnly. If true, user can click on check boxes on each tree node to select and deselect. If false, user can't click but you as developer can programmatically call API to select/deselect it.

Returns:
the value of property clickInCheckBoxOnly.

setClickInCheckBoxOnly

public void setClickInCheckBoxOnly(boolean clickInCheckBoxOnly)
Sets the value of property clickInCheckBoxOnly.

Parameters:
clickInCheckBoxOnly - true to allow to check the check box. False to disable it which means user can see whether a row is checked or not but they cannot change it.

getCheckBoxListSelectionModel

public CheckBoxListSelectionModel getCheckBoxListSelectionModel()
Gets the ListSelectionModel that keeps the check boxes' state information for CheckBoxList.

Returns:
the ListSelectionModel that keeps the check boxes' state information for CheckBoxList.

setCheckBoxListSelectionModel

public void setCheckBoxListSelectionModel(CheckBoxListSelectionModel checkBoxListSelectionModel)

getCheckBoxListSelectedIndices

public int[] getCheckBoxListSelectedIndices()
Returns an array of all of the selected indices in increasing order.

Returns:
all of the selected indices, in increasing order
See Also:
JList.removeSelectionInterval(int, int), JList.addListSelectionListener(javax.swing.event.ListSelectionListener)

setCheckBoxListSelectedIndex

public void setCheckBoxListSelectedIndex(int index)
Selects a single cell and clear all other selections.

Parameters:
index - the index of the one cell to select
See Also:
ListSelectionModel.setSelectionInterval(int, int), JList.isSelectedIndex(int), JList.addListSelectionListener(javax.swing.event.ListSelectionListener)

addCheckBoxListSelectedIndex

public void addCheckBoxListSelectedIndex(int index)
Selects a single cell and keeps all previous selections.

Parameters:
index - the index of the one cell to select
See Also:
ListSelectionModel.setSelectionInterval(int, int), JList.isSelectedIndex(int), JList.addListSelectionListener(javax.swing.event.ListSelectionListener)

removeCheckBoxListSelectedIndex

public void removeCheckBoxListSelectedIndex(int index)
Deselects a single cell.

Parameters:
index - the index of the one cell to select
See Also:
ListSelectionModel.setSelectionInterval(int, int), JList.isSelectedIndex(int), JList.addListSelectionListener(javax.swing.event.ListSelectionListener)

setCheckBoxListSelectedIndices

public void setCheckBoxListSelectedIndices(int[] indices)
Selects a set of cells.

Parameters:
indices - an array of the indices of the cells to select
See Also:
ListSelectionModel.addSelectionInterval(int, int), JList.isSelectedIndex(int), JList.addListSelectionListener(javax.swing.event.ListSelectionListener)

setSelectedObjects

public void setSelectedObjects(Object[] elements)
Sets the selected elements.

Parameters:
elements - sets the select elements. All the rows that have the value in the array will be checked.

setSelectedObjects

public void setSelectedObjects(Vector<?> elements)
Sets the selected elements.

Parameters:
elements - sets the select elements. All the rows that have the value in the Vector will be checked.

getCheckBoxListSelectedValues

public Object[] getCheckBoxListSelectedValues()
Returns an array of the values for the selected cells. The returned values are sorted in increasing index order.

Returns:
the selected values or an empty list if nothing is selected
See Also:
JList.isSelectedIndex(int), JList.getModel(), JList.addListSelectionListener(javax.swing.event.ListSelectionListener)

getCheckBoxListSelectedIndex

public int getCheckBoxListSelectedIndex()
Returns the first selected index; returns -1 if there is no selected item.

Returns:
the value of getMinSelectionIndex
See Also:
JList.getMinSelectionIndex(), JList.addListSelectionListener(javax.swing.event.ListSelectionListener)

getCheckBoxListSelectedValue

public Object getCheckBoxListSelectedValue()
Returns the first selected value, or null if the selection is empty.

Returns:
the first selected value
See Also:
JList.getMinSelectionIndex(), JList.getModel(), JList.addListSelectionListener(javax.swing.event.ListSelectionListener)

setCheckBoxListSelectedValue

public void setCheckBoxListSelectedValue(Object anObject,
                                         boolean shouldScroll)
Selects the specified object from the list and clear all other selections.

Parameters:
anObject - the object to select
shouldScroll - true if the list should scroll to display the selected object, if one exists; otherwise false

addCheckBoxListSelectedValue

public void addCheckBoxListSelectedValue(Object anObject,
                                         boolean shouldScroll)
Selects the specified object from the list and keep all previous selections.

Parameters:
anObject - the object to be selected
shouldScroll - true if the list should scroll to display the selected object, if one exists; otherwise false

addCheckBoxListSelectedValues

public void addCheckBoxListSelectedValues(Object[] objects)
Selects the specified objects from the list and keep all previous selections.

Parameters:
objects - the objects to be selected

removeCheckBoxListSelectedValues

public void removeCheckBoxListSelectedValues(Object[] objects)
Deselects the specified objects from the list and keep all previous selections.

Parameters:
objects - the objects to be selected

removeCheckBoxListSelectedValue

public void removeCheckBoxListSelectedValue(Object anObject,
                                            boolean shouldScroll)
Deselects the specified object from the list.

Parameters:
anObject - the object to select
shouldScroll - true if the list should scroll to display the selected object, if one exists; otherwise false

clearCheckBoxListSelection

public void clearCheckBoxListSelection()

selectAll

public void selectAll()
Selects all objects in this list.


selectNone

public void selectNone()
Deselects all objects in this list.


getPreferredScrollableViewportSize

public Dimension getPreferredScrollableViewportSize()
Specified by:
getPreferredScrollableViewportSize in interface Scrollable
Overrides:
getPreferredScrollableViewportSize in class JList

JIDE 3.5.15