com.jidesoft.swing
Class CheckBoxTree
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTree
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. |
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 |
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 |
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
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)
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.