JIDE 3.5.15

com.jidesoft.swing
Class CheckBoxTree

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JTree
                  extended by com.jidesoft.swing.CheckBoxTree
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable

public class CheckBoxTree
extends JTree

CheckBoxTree is a special JTree which uses JCheckBox as the tree renderer. In addition to regular JTree's features, it also allows you select any number of tree nodes in the tree by selecting the check boxes.

To select an element, user can mouse click on the check box, or select one or several tree nodes and press SPACE key to toggle the check box selection for all selected tree nodes.

In order to retrieve which tree paths are selected, you need to call getCheckBoxTreeSelectionModel(). It will return the selection model that keeps track of which tree paths have been checked. For example DefaultTreeSelectionModel.getSelectionPaths() will give the list of paths which have been checked.

See Also:
Serialized Form

Nested Class Summary
protected static class CheckBoxTree.Handler
          CheckBoxTree's mouse event handler, key event handler and tree selection event handler.
 
Nested classes/interfaces inherited from class javax.swing.JTree
JTree.AccessibleJTree, JTree.DropLocation, JTree.DynamicUtilTreeNode, JTree.EmptySelectionModel, JTree.TreeModelHandler, JTree.TreeSelectionRedirector
 
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  CheckBoxTreeCellRenderer _treeCellRenderer
           
static String PROPERTY_CHECKBOX_ENABLED
           
static String PROPERTY_CLICK_IN_CHECKBOX_ONLY
           
static String PROPERTY_DIG_IN
           
 
Fields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCount
 
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
CheckBoxTree()
           
CheckBoxTree(Hashtable<?,?> value)
           
CheckBoxTree(Object[] value)
           
CheckBoxTree(TreeModel newModel)
           
CheckBoxTree(TreeNode root)
           
CheckBoxTree(TreeNode root, boolean asksAllowsChildren)
           
CheckBoxTree(Vector<?> value)
           
 
Method Summary
protected  CheckBoxTreeCellRenderer createCellRenderer(TreeCellRenderer renderer)
          Creates the cell renderer.
protected  CheckBoxTreeSelectionModel createCheckBoxTreeSelectionModel(TreeModel model)
          Creates the CheckBoxTreeSelectionModel.
protected  CheckBoxTree.Handler createHandler()
          Creates the mouse listener and key listener used by CheckBoxTree.
 TreeCellRenderer getActualCellRenderer()
          Gets the actual cell renderer.
 TreeCellRenderer getCellRenderer()
          Gets the cell renderer with check box.
 TristateCheckBox getCheckBox()
          Get the CheckBox used for CheckBoxTreeCellRenderer.
 CheckBoxTreeSelectionModel getCheckBoxTreeSelectionModel()
          Gets the selection model for the check boxes.
 TreePath getNextMatch(String prefix, int startingRow, Position.Bias bias)
           
protected  void init()
          Initialize the CheckBoxTree.
 boolean isCheckBoxEnabled()
          Gets the value of property checkBoxEnabled.
 boolean isCheckBoxEnabled(TreePath path)
          Checks if check box is enabled.
 boolean isCheckBoxVisible(TreePath path)
          Checks if check box is visible.
 boolean isClickInCheckBoxOnly()
          Gets the value of property clickInCheckBoxOnly.
 boolean isDigIn()
          Gets the dig-in mode.
 boolean isSelectPartialOnToggling()
          Gets the flag indicating if toggling should select or deselect the partially selected node.
 void setCellRenderer(TreeCellRenderer x)
           
 void setCheckBox(TristateCheckBox checkBox)
          Set the CheckBox used for CheckBoxTreeCellRenderer.
 void setCheckBoxEnabled(boolean checkBoxEnabled)
          Sets the value of property checkBoxEnabled.
 void setClickInCheckBoxOnly(boolean clickInCheckBoxOnly)
          Sets the value of property clickInCheckBoxOnly.
 void setDigIn(boolean digIn)
          Sets the dig-in mode.
 void setSelectPartialOnToggling(boolean selectPartialOnToggling)
          Sets the flag indicating if toggling should select or deselect the partially selected node.
 
Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, createTreeModelListener, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getDropLocation, getDropMode, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getSelectionPaths, getSelectionRows, getShowsRootHandles, getToggleClickCount, getToolTipText, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setDragEnabled, setDropMode, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setModel, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, startEditingAtPath, stopEditing, treeDidChange, 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, 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

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

PROPERTY_DIG_IN

public static final String PROPERTY_DIG_IN
See Also:
Constant Field Values

_treeCellRenderer

protected CheckBoxTreeCellRenderer _treeCellRenderer
Constructor Detail

CheckBoxTree

public CheckBoxTree()

CheckBoxTree

public CheckBoxTree(Object[] value)

CheckBoxTree

public CheckBoxTree(Vector<?> value)

CheckBoxTree

public CheckBoxTree(Hashtable<?,?> value)

CheckBoxTree

public CheckBoxTree(TreeNode root)

CheckBoxTree

public CheckBoxTree(TreeNode root,
                    boolean asksAllowsChildren)

CheckBoxTree

public CheckBoxTree(TreeModel newModel)
Method Detail

init

protected void init()
Initialize the CheckBoxTree.


createCheckBoxTreeSelectionModel

protected CheckBoxTreeSelectionModel createCheckBoxTreeSelectionModel(TreeModel model)
Creates the CheckBoxTreeSelectionModel.

Parameters:
model - the tree model.
Returns:
the CheckBoxTreeSelectionModel.

getCellRenderer

public TreeCellRenderer getCellRenderer()
Gets the cell renderer with check box.

Overrides:
getCellRenderer in class JTree
Returns:
CheckBoxTree's own cell renderer which has the check box. The actual cell renderer you set by setCellRenderer() can be accessed by using getActualCellRenderer().

getActualCellRenderer

public TreeCellRenderer getActualCellRenderer()
Gets the actual cell renderer. Since CheckBoxTree has its own check box cell renderer, this method will give you access to the actual cell renderer which is either the default tree cell renderer or the cell renderer you set using setCellRenderer(javax.swing.tree.TreeCellRenderer).

Returns:
the actual cell renderer

setCellRenderer

public void setCellRenderer(TreeCellRenderer x)
Overrides:
setCellRenderer in class JTree

createCellRenderer

protected CheckBoxTreeCellRenderer createCellRenderer(TreeCellRenderer renderer)
Creates the cell renderer.

Parameters:
renderer - the actual renderer for the tree node. This method will return a cell renderer that use a check box and put the actual renderer inside it.
Returns:
the cell renderer.

createHandler

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

Returns:
the Handler.

getCheckBox

public TristateCheckBox getCheckBox()
Get the CheckBox used for CheckBoxTreeCellRenderer.

Returns:
the check box.
See Also:
setCheckBox(TristateCheckBox)

setCheckBox

public void setCheckBox(TristateCheckBox checkBox)
Set the CheckBox used for CheckBoxTreeCellRenderer.

By default, it's null. CheckBoxTreeCellRenderer then will create a default TristateCheckBox.

Parameters:
checkBox - the check box

isSelectPartialOnToggling

public boolean isSelectPartialOnToggling()
Gets the flag indicating if toggling should select or deselect the partially selected node.

Returns:
true if select first. Otherwise false.
See Also:
setSelectPartialOnToggling(boolean)

setSelectPartialOnToggling

public void setSelectPartialOnToggling(boolean selectPartialOnToggling)
Sets the flag indicating if toggling should select or deselect the partially selected node.

By default, the value is true to keep original behavior.

Parameters:
selectPartialOnToggling - the flag

getNextMatch

public TreePath getNextMatch(String prefix,
                             int startingRow,
                             Position.Bias bias)
Overrides:
getNextMatch in class JTree

getCheckBoxTreeSelectionModel

public CheckBoxTreeSelectionModel getCheckBoxTreeSelectionModel()
Gets the selection model for the check boxes. To retrieve the state of check boxes, you should use this selection model.

Returns:
the selection model for the check boxes.

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.

isCheckBoxEnabled

public boolean isCheckBoxEnabled(TreePath path)
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.

However, in digIn mode, user can still select the disabled node by selecting all children nodes of that node. Also if user selects the parent node, the disabled children nodes will be selected too.

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

isCheckBoxVisible

public boolean isCheckBoxVisible(TreePath path)
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:
path - the tree path.
Returns:
true or false. If false, the check box on the particular tree path will be disabled.

isDigIn

public boolean isDigIn()
Gets the dig-in mode. If the CheckBoxTree is in dig-in mode, checking the parent node will check all the children. Correspondingly, getSelectionPaths() will only return the parent tree path. If not in dig-in mode, each tree node can be checked or unchecked independently

Returns:
true or false.

setDigIn

public void setDigIn(boolean digIn)
Sets the dig-in mode. If the CheckBoxTree is in dig-in mode, checking the parent node will check all the children. Correspondingly, getSelectionPaths() will only return the parent tree path. If not in dig-in mode, each tree node can be checked or unchecked independently

Parameters:
digIn - the new digIn mode.

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.

JIDE 3.5.15