Eclipse Platform
Release 3.1

org.eclipse.jface.viewers
Class TreeViewer

java.lang.Object
  extended byorg.eclipse.jface.viewers.Viewer
      extended byorg.eclipse.jface.viewers.ContentViewer
          extended byorg.eclipse.jface.viewers.StructuredViewer
              extended byorg.eclipse.jface.viewers.AbstractTreeViewer
                  extended byorg.eclipse.jface.viewers.TreeViewer
All Implemented Interfaces:
IInputProvider, IInputSelectionProvider, IPostSelectionProvider, ISelectionProvider
Direct Known Subclasses:
CheckboxTreeViewer, DiffTreeViewer

public class TreeViewer
extends AbstractTreeViewer

A concrete viewer based on an SWT Tree control.

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

Content providers for tree viewers must implement the ITreeContentProvider interface.


Nested Class Summary
 
Nested classes inherited from class org.eclipse.jface.viewers.StructuredViewer
StructuredViewer.ColorAndFontCollectorWithProviders
 
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
TreeViewer(Composite parent)
          Creates a tree viewer on a newly-created tree control under the given parent.
TreeViewer(Composite parent, int style)
          Creates a tree viewer on a newly-created tree control under the given parent.
TreeViewer(Tree tree)
          Creates a tree viewer on the given tree control.
 
Method Summary
protected  void addTreeListener(Control c, TreeListener listener)
          Adds the given SWT tree listener to the given SWT control.
 void cancelEditing()
          Cancels a currently active cell editor.
protected  void doUpdateItem(Item item, Object element)
          Copies the attributes of the given element into the given SWT item.
 void editElement(Object element, int column)
          Starts editing the given element.
 CellEditor[] getCellEditors()
          Returns the cell editors of this tree viewer.
 ICellModifier getCellModifier()
          Returns the cell modifier of this tree viewer.
protected  Item getChild(Widget widget, int index)
          Get the child for the widget at index.
protected  Item[] getChildren(Widget o)
          Returns the SWT child items for the given SWT widget.
 Object[] getColumnProperties()
          Returns the column properties of this tree viewer.
 Control getControl()
          Returns the primary control associated with this viewer.
protected  boolean getExpanded(Item item)
          Returns whether the given SWT item is expanded or collapsed.
protected  Item getItem(int x, int y)
          Returns the item at the given display-relative coordinates, or null if there is no item at that location.
protected  int getItemCount(Control widget)
          Returns the number of child items of the given SWT control.
protected  int getItemCount(Item item)
          Returns the number of child items of the given SWT item.
protected  Item[] getItems(Item item)
          Returns the child items of the given SWT item.
 IBaseLabelProvider getLabelProvider()
          The tree viewer implementation of this Viewer framework method ensures that the given label provider is an instance of either ITableLabelProvider or ILabelProvider.
protected  Item getParentItem(Item item)
          Returns the parent item of the given item in the tree, or null if there is no parent item.
protected  Item[] getSelection(Control widget)
          Returns all selected items for the given SWT control.
 Tree getTree()
          Returns this tree viewer's tree control.
protected  void hookControl(Control control)
          Adds event listener hooks to the given control.
 boolean isCellEditorActive()
          Returns whether there is an active cell editor.
protected  boolean isSameSelection(List items, Item[] current)
          Returns true if the given list and array of items refer to the same model elements.
protected  Item newItem(Widget parent, int flags, int ix)
          Creates a new item.
protected  void removeAll(Control widget)
          Removes all items from the given control.
 void setCellEditors(CellEditor[] editors)
          Sets the cell editors of this tree viewer.
 void setCellModifier(ICellModifier modifier)
          Sets the cell modifier of this tree viewer.
 void setColumnProperties(String[] columnProperties)
          Sets the column properties of this tree viewer.
protected  void setExpanded(Item node, boolean expand)
          Sets the expand state of the given item.
 void setLabelProvider(IBaseLabelProvider labelProvider)
          The tree viewer implementation of this Viewer framework method ensures that the given label provider is an instance of ILabelProvider.
protected  void setSelection(List items)
          Sets the selection to the given list of items.
protected  void showItem(Item item)
          Shows the given item.
 
Methods inherited from class org.eclipse.jface.viewers.AbstractTreeViewer
add, add, addSelectionListener, addTreeListener, associate, collapseAll, collapseToLevel, createChildren, createTreeItem, disassociate, doFindInputItem, doFindItem, doUpdateItem, expandAll, expandToLevel, expandToLevel, fireTreeCollapsed, fireTreeExpanded, getAutoExpandLevel, getExpandedElements, getExpandedState, getNextItem, getPreviousItem, getRawChildren, getSelectionFromWidget, getVisibleExpandedElements, handleTreeCollapse, handleTreeExpand, indexForElement, inputChanged, internalAdd, internalCollapseToLevel, internalExpand, internalExpandToLevel, internalGetWidgetToSelect, internalRefresh, internalRefresh, internalRefresh, internalRemove, 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, assertContentProviderType, assertElementsNotNull, buildLabel, equals, filter, findItem, fireDoubleClick, fireOpen, firePostSelectionChanged, getColorAndFontCollector, getComparer, getFilteredChildren, getFilters, getRoot, getSelection, getSortedChildren, getSorter, handleDoubleSelect, handleInvalidSelection, handleLabelProviderChanged, handleOpen, handlePostSelect, handleSelect, hasFilters, internalUpdate, mapElement, needsRefilter, preservingSelection, refresh, refresh, refresh, refresh, refreshItem, removeDoubleClickListener, removeFilter, removeOpenListener, removePostSelectionChangedListener, resetFilters, setComparer, 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
 
Methods inherited from interface org.eclipse.jface.viewers.ISelectionProvider
addSelectionChangedListener, removeSelectionChangedListener, setSelection
 

Constructor Detail

TreeViewer

public TreeViewer(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 MULTI, H_SCROLL, V_SCROLL, and BORDER. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.

Parameters:
parent - the parent control

TreeViewer

public TreeViewer(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. 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 used to create the tree.

TreeViewer

public TreeViewer(Tree tree)
Creates a tree viewer 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

addTreeListener

protected void addTreeListener(Control c,
                               TreeListener listener)
Description copied from class: AbstractTreeViewer
Adds the given SWT tree listener to the given SWT control.

Specified by:
addTreeListener in class AbstractTreeViewer
Parameters:
c - the SWT control
listener - the SWT tree listener

cancelEditing

public void cancelEditing()
Cancels a currently active cell editor. All changes already done in the cell editor are lost.

Since:
3.1

doUpdateItem

protected void doUpdateItem(Item item,
                            Object element)
Description copied from class: AbstractTreeViewer
Copies the attributes of the given element into the given SWT item.

Specified by:
doUpdateItem in class AbstractTreeViewer
Parameters:
item - the SWT item
element - the element

editElement

public void editElement(Object element,
                        int column)
Starts editing the given element.

Parameters:
element - the element
column - the column number
Since:
3.1

getCellEditors

public CellEditor[] getCellEditors()
Returns the cell editors of this tree viewer.

Returns:
the list of cell editors
Since:
3.1

getCellModifier

public ICellModifier getCellModifier()
Returns the cell modifier of this tree viewer.

Returns:
the cell modifier
Since:
3.1

getChildren

protected Item[] getChildren(Widget o)
Description copied from class: AbstractTreeViewer
Returns the SWT child items for the given SWT widget.

Specified by:
getChildren in class AbstractTreeViewer
Parameters:
o - the widget
Returns:
the child items

getColumnProperties

public Object[] getColumnProperties()
Returns the column properties of this tree viewer. The properties must correspond with the columns of the tree control. They are used to identify the column in a cell modifier.

Returns:
the list of column properties
Since:
3.1

getControl

public Control getControl()
Description copied from class: Viewer
Returns the primary control associated with this viewer.

Specified by:
getControl in class Viewer
Returns:
the SWT control which displays this viewer's content

getExpanded

protected boolean getExpanded(Item item)
Description copied from class: AbstractTreeViewer
Returns whether the given SWT item is expanded or collapsed.

Specified by:
getExpanded in class AbstractTreeViewer
Parameters:
item - the item
Returns:
true if the item is considered expanded and false if collapsed

getItem

protected Item getItem(int x,
                       int y)
Description copied from class: StructuredViewer
Returns the item at the given display-relative coordinates, or null if there is no item at that location.

The default implementation of this method returns null.

Overrides:
getItem in class StructuredViewer
Parameters:
x - horizontal coordinate
y - vertical coordinate
Returns:
the item, or null if there is no item at the given coordinates

getItemCount

protected int getItemCount(Control widget)
Description copied from class: AbstractTreeViewer
Returns the number of child items of the given SWT control.

Specified by:
getItemCount in class AbstractTreeViewer
Parameters:
widget - the control
Returns:
the number of children

getItemCount

protected int getItemCount(Item item)
Description copied from class: AbstractTreeViewer
Returns the number of child items of the given SWT item.

Specified by:
getItemCount in class AbstractTreeViewer
Parameters:
item - the item
Returns:
the number of children

getItems

protected Item[] getItems(Item item)
Description copied from class: AbstractTreeViewer
Returns the child items of the given SWT item.

Specified by:
getItems in class AbstractTreeViewer
Parameters:
item - the item
Returns:
the child items

getLabelProvider

public IBaseLabelProvider getLabelProvider()
The tree viewer implementation of this Viewer framework method ensures that the given label provider is an instance of either ITableLabelProvider or ILabelProvider. If it is an ITableLabelProvider, then it provides a separate label text and image for each column. If it is an ILabelProvider, then it provides only the label text and image for the first column, and any remaining columns are blank.

Overrides:
getLabelProvider in class ContentViewer
Returns:
a label provider

getParentItem

protected Item getParentItem(Item item)
Description copied from class: AbstractTreeViewer
Returns the parent item of the given item in the tree, or null if there is no parent item.

Specified by:
getParentItem in class AbstractTreeViewer
Parameters:
item - the item
Returns:
the parent item, or null if none

getSelection

protected Item[] getSelection(Control widget)
Description copied from class: AbstractTreeViewer
Returns all selected items for the given SWT control.

Specified by:
getSelection in class AbstractTreeViewer
Parameters:
widget - the control
Returns:
the list of selected items

getTree

public Tree getTree()
Returns this tree viewer's tree control.

Returns:
the tree control

hookControl

protected void hookControl(Control control)
Description copied from class: ContentViewer
Adds event listener hooks to the given control.

All subclasses must call this method when their control is first established.

The ContentViewer implementation of this method hooks dispose events for the given control. Subclasses may override if they need to add other control hooks; however, super.hookControl must be invoked.

Overrides:
hookControl in class AbstractTreeViewer

isCellEditorActive

public boolean isCellEditorActive()
Returns whether there is an active cell editor.

Returns:
true if there is an active cell editor, and false otherwise
Since:
3.1

newItem

protected Item newItem(Widget parent,
                       int flags,
                       int ix)
Description copied from class: AbstractTreeViewer
Creates a new item.

Specified by:
newItem in class AbstractTreeViewer
Parameters:
parent - the parent widget
flags - SWT style bits
ix - if non-negative, indicates the position to insert the item into its parent
Returns:
the newly-created item

removeAll

protected void removeAll(Control widget)
Description copied from class: AbstractTreeViewer
Removes all items from the given control.

Specified by:
removeAll in class AbstractTreeViewer
Parameters:
widget - the control

setCellEditors

public void setCellEditors(CellEditor[] editors)
Sets the cell editors of this tree viewer.

Parameters:
editors - the list of cell editors
Since:
3.1

setCellModifier

public void setCellModifier(ICellModifier modifier)
Sets the cell modifier of this tree viewer.

Parameters:
modifier - the cell modifier
Since:
3.1

setColumnProperties

public void setColumnProperties(String[] columnProperties)
Sets the column properties of this tree viewer. The properties must correspond with the columns of the tree control. They are used to identify the column in a cell modifier.

Parameters:
columnProperties - the list of column properties
Since:
3.1

setExpanded

protected void setExpanded(Item node,
                           boolean expand)
Description copied from class: AbstractTreeViewer
Sets the expand state of the given item.

Specified by:
setExpanded in class AbstractTreeViewer
Parameters:
node - the item
expand - the expand state of the item

setLabelProvider

public void setLabelProvider(IBaseLabelProvider labelProvider)
The tree viewer implementation of this Viewer framework method ensures that the given label provider is an instance of ILabelProvider.

Overrides:
setLabelProvider in class StructuredViewer

setSelection

protected void setSelection(List items)
Description copied from class: AbstractTreeViewer
Sets the selection to the given list of items.

Specified by:
setSelection in class AbstractTreeViewer
Parameters:
items - list of items (element type: org.eclipse.swt.widgets.Item)

isSameSelection

protected boolean isSameSelection(List items,
                                  Item[] current)
Returns true if the given list and array of items refer to the same model elements. Order is unimportant.

Parameters:
items - the list of items
current - the array of items
Returns:
true if the refer to the same elements, false otherwise
Since:
3.1

showItem

protected void showItem(Item item)
Description copied from class: AbstractTreeViewer
Shows the given item.

Specified by:
showItem in class AbstractTreeViewer
Parameters:
item - the item

getChild

protected Item getChild(Widget widget,
                        int index)
Description copied from class: AbstractTreeViewer
Get the child for the widget at index. Note that the default implementation is not very effecient and should be overridden if this class is implemented.

Overrides:
getChild in class AbstractTreeViewer
Parameters:
widget - the widget to check
index - the index of the widget
Returns:
Item or null if widget is not a type that can contain items.

Eclipse Platform
Release 3.1

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2005. All rights reserved.