Eclipse Platform
2.0

org.eclipse.jface.viewers
Class CheckboxTreeViewer

java.lang.Object
  |
  +--org.eclipse.jface.viewers.Viewer
        |
        +--org.eclipse.jface.viewers.ContentViewer
              |
              +--org.eclipse.jface.viewers.StructuredViewer
                    |
                    +--org.eclipse.jface.viewers.AbstractTreeViewer
                          |
                          +--org.eclipse.jface.viewers.TreeViewer
                                |
                                +--org.eclipse.jface.viewers.CheckboxTreeViewer
All Implemented Interfaces:
ICheckable, IInputProvider, IInputSelectionProvider, ISelectionProvider

public class CheckboxTreeViewer
extends TreeViewer
implements ICheckable

A concrete tree-structured viewer based on an SWT Tree control with checkboxes on each node.

This class is not intended to be subclassed outside the viewer framework. It is designed to be instantiated with a pre-existing SWT tree control and configured with a domain-specific content provider, label provider, element filter (optional), and element sorter (optional).


Field Summary
 
Fields inherited from class org.eclipse.jface.viewers.AbstractTreeViewer
ALL_LEVELS
 
Fields inherited from class org.eclipse.jface.viewers.Viewer
WIDGET_DATA_KEY
 
Constructor Summary
CheckboxTreeViewer(Composite parent)
          Creates a tree viewer on a newly-created tree control under the given parent.
CheckboxTreeViewer(Composite parent, int style)
          Creates a tree viewer on a newly-created tree control under the given parent.
CheckboxTreeViewer(Tree tree)
          Creates a tree viewer on the given tree control.
 
Method Summary
 void addCheckStateListener(ICheckStateListener listener)
          Adds a listener for changes to the checked state of elements in this viewer.
protected  void fireCheckStateChanged(CheckStateChangedEvent event)
          Notifies any check state listeners that the check state of an element has changed.
 boolean getChecked(Object element)
          Returns the checked state of the given element.
 Object[] getCheckedElements()
          Returns a list of checked elements in this viewer's tree, including currently hidden ones that are marked as checked but are under a collapsed ancestor.
 boolean getGrayed(Object element)
          Returns the grayed state of the given element.
 Object[] getGrayedElements()
          Returns a list of grayed elements in this viewer's tree, including currently hidden ones that are marked as grayed but are under a collapsed ancestor.
protected  void handleDoubleSelect(SelectionEvent event)
          Handles a double-click select event from the widget.
protected  void handleSelect(SelectionEvent event)
          Handles a select event from the widget.
protected  void preservingSelection(Runnable updateCode)
          Attempts to preserves the current selection across a run of the given code.
 void removeCheckStateListener(ICheckStateListener listener)
          Removes the given check state listener from this viewer.
 boolean setChecked(Object element, boolean state)
          Sets the checked state for the given element in this viewer.
 void setCheckedElements(Object[] elements)
          Sets which elements are checked in this viewer's tree.
 boolean setGrayChecked(Object element, boolean state)
          Check and gray the selection rather than calling both setGrayed and setChecked as an optimization.
 boolean setGrayed(Object element, boolean state)
          Sets the grayed state for the given element in this viewer.
 void setGrayedElements(Object[] elements)
          Sets which elements are grayed in this viewer's tree.
 boolean setParentsGrayed(Object element, boolean state)
          Sets the grayed state for the given element and its parents in this viewer.
 boolean setSubtreeChecked(Object element, boolean state)
          Sets the checked state for the given element and its visible children in this viewer.
 
Methods inherited from class org.eclipse.jface.viewers.TreeViewer
addTreeListener, doUpdateItem, getChildren, getControl, getExpanded, getItem, getItemCount, getItemCount, getItems, getLabelProvider, getParentItem, getSelection, getTree, newItem, removeAll, setExpanded, setLabelProvider, setSelection, showItem
 
Methods inherited from class org.eclipse.jface.viewers.AbstractTreeViewer
add, add, addSelectionListener, addTreeListener, collapseAll, collapseToLevel, createChildren, createTreeItem, disassociate, doFindInputItem, doFindItem, doUpdateItem, expandAll, expandToLevel, expandToLevel, fireTreeCollapsed, fireTreeExpanded, getAutoExpandLevel, getExpandedElements, getExpandedState, getNextItem, getPreviousItem, getRawChildren, getSelectionFromWidget, getVisibleExpandedElements, handleTreeCollapse, handleTreeExpand, hookControl, inputChanged, internalCollapseToLevel, internalExpand, internalExpandToLevel, internalRefresh, isExpandable, labelProviderChanged, remove, remove, removeTreeListener, reveal, scrollDown, scrollUp, setAutoExpandLevel, setContentProvider, setExpandedElements, setExpandedState, setSelectionToWidget, updateChildren, updatePlus
 
Methods inherited from class org.eclipse.jface.viewers.StructuredViewer
addDoubleClickListener, addDragSupport, addDropSupport, addFilter, addOpenListener, addPostSelectionChangedListener, associate, filter, findItem, fireDoubleClick, fireOpen, firePostSelectionChanged, getFilteredChildren, getFilters, getRoot, getSelection, getSortedChildren, getSorter, handleInvalidSelection, handleLabelProviderChanged, handleOpen, handlePostSelect, hasFilters, internalRefresh, mapElement, needsRefilter, refresh, refresh, refresh, refresh, refreshItem, removeDoubleClickListener, removeFilter, removeOpenListener, removePostSelectionChangedListener, resetFilters, setInput, setSelection, setSelectionToWidget, setSorter, setUseHashlookup, testFindItem, unmapAllElements, unmapElement, unmapElement, update, update, updateItem, updateSelection, usingElementMap
 
Methods inherited from class org.eclipse.jface.viewers.ContentViewer
getContentProvider, getInput, handleDispose
 
Methods inherited from class org.eclipse.jface.viewers.Viewer
addHelpListener, addSelectionChangedListener, fireHelpRequested, fireSelectionChanged, getData, handleHelpRequest, removeHelpListener, removeSelectionChangedListener, setData, setSelection
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CheckboxTreeViewer

public CheckboxTreeViewer(Composite parent)
Creates a tree viewer on a newly-created tree control under the given parent. The tree control is created using the SWT style bits: CHECK and BORDER. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.

Parameters:
parent - the parent control

CheckboxTreeViewer

public CheckboxTreeViewer(Composite parent,
                          int style)
Creates a tree viewer on a newly-created tree control under the given parent. The tree control is created using the given SWT style bits, plus the CHECK style bit. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.

Parameters:
parent - the parent control
style - the SWT style bits

CheckboxTreeViewer

public CheckboxTreeViewer(Tree tree)
Creates a tree viewer on the given tree control. The SWT.CHECK style bit must be set on the given tree control. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.

Parameters:
tree - the tree control
Method Detail

addCheckStateListener

public void addCheckStateListener(ICheckStateListener listener)
Description copied from interface: ICheckable
Adds a listener for changes to the checked state of elements in this viewer. Has no effect if an identical listener is already registered.

Specified by:
addCheckStateListener in interface ICheckable
Parameters:
listener - a check state listener

fireCheckStateChanged

protected void fireCheckStateChanged(CheckStateChangedEvent event)
Notifies any check state listeners that the check state of an element has changed. Only listeners registered at the time this method is called are notified.

Parameters:
event - a check state changed event
See Also:
ICheckStateListener.checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)

getChecked

public boolean getChecked(Object element)
Description copied from interface: ICheckable
Returns the checked state of the given element.

Specified by:
getChecked in interface ICheckable
Parameters:
element - the element
Returns:
true if the element is checked, and false if not checked

getCheckedElements

public Object[] getCheckedElements()
Returns a list of checked elements in this viewer's tree, including currently hidden ones that are marked as checked but are under a collapsed ancestor.

This method is typically used when preserving the interesting state of a viewer; setCheckedElements is used during the restore.

Returns:
the array of checked elements
See Also:
setCheckedElements(java.lang.Object[])

getGrayed

public boolean getGrayed(Object element)
Returns the grayed state of the given element.

Parameters:
element - the element
Returns:
true if the element is grayed, and false if not grayed

getGrayedElements

public Object[] getGrayedElements()
Returns a list of grayed elements in this viewer's tree, including currently hidden ones that are marked as grayed but are under a collapsed ancestor.

This method is typically used when preserving the interesting state of a viewer; setGrayedElements is used during the restore.

Returns:
the array of grayed elements
See Also:
setGrayedElements(java.lang.Object[])

handleDoubleSelect

protected void handleDoubleSelect(SelectionEvent event)
Description copied from class: StructuredViewer
Handles a double-click select event from the widget.

This method is internal to the framework; subclassers should not call this method.

Overrides:
handleDoubleSelect in class StructuredViewer
Parameters:
event - the SWT selection event

handleSelect

protected void handleSelect(SelectionEvent event)
Description copied from class: StructuredViewer
Handles a select event from the widget.

This method is internal to the framework; subclassers should not call this method.

Overrides:
handleSelect in class StructuredViewer
Parameters:
event - the SWT selection event

preservingSelection

protected void preservingSelection(Runnable updateCode)
Description copied from class: StructuredViewer
Attempts to preserves the current selection across a run of the given code.

The default implementation of this method:

Overrides:
preservingSelection in class StructuredViewer
Parameters:
updateCode - the code to run

removeCheckStateListener

public void removeCheckStateListener(ICheckStateListener listener)
Description copied from interface: ICheckable
Removes the given check state listener from this viewer. Has no effect if an identical listener is not registered.

Specified by:
removeCheckStateListener in interface ICheckable
Parameters:
listener - a check state listener

setChecked

public boolean setChecked(Object element,
                          boolean state)
Description copied from interface: ICheckable
Sets the checked state for the given element in this viewer.

Specified by:
setChecked in interface ICheckable
Parameters:
element - the element
state - true if the item should be checked, and false if it should be unchecked
Returns:
true if the checked state could be set, and false otherwise

setCheckedElements

public void setCheckedElements(Object[] elements)
Sets which elements are checked in this viewer's tree. The given list contains the elements that are to be checked; all other elements are to be unchecked.

This method is typically used when restoring the interesting state of a viewer captured by an earlier call to getCheckedElements.

Parameters:
elements - the array of checked elements
See Also:
getCheckedElements()

setGrayed

public boolean setGrayed(Object element,
                         boolean state)
Sets the grayed state for the given element in this viewer.

Parameters:
element - the element
state - true if the item should be grayed, and false if it should be ungrayed
Returns:
true if the gray state could be set, and false otherwise

setGrayChecked

public boolean setGrayChecked(Object element,
                              boolean state)
Check and gray the selection rather than calling both setGrayed and setChecked as an optimization.

Parameters:
element - the item being checked
state - a boolean indicating selection or deselection
Returns:
boolean indicating success or failure.

setGrayedElements

public void setGrayedElements(Object[] elements)
Sets which elements are grayed in this viewer's tree. The given list contains the elements that are to be grayed; all other elements are to be ungrayed.

This method is typically used when restoring the interesting state of a viewer captured by an earlier call to getGrayedElements.

Parameters:
elements - the array of grayed elements
See Also:
getGrayedElements()

setParentsGrayed

public boolean setParentsGrayed(Object element,
                                boolean state)
Sets the grayed state for the given element and its parents in this viewer.

Parameters:
element - the element
state - true if the item should be grayed, and false if it should be ungrayed
Returns:
true if the element is visible and the gray state could be set, and false otherwise
See Also:
setGrayed(java.lang.Object, boolean)

setSubtreeChecked

public boolean setSubtreeChecked(Object element,
                                 boolean state)
Sets the checked state for the given element and its visible children in this viewer. Assumes that the element has been expanded before. To enforce that the item is expanded, call expandToLevel for the element.

Parameters:
element - the element
state - true if the item should be checked, and false if it should be unchecked
Returns:
true if the checked state could be set, and false otherwise

Eclipse Platform
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.