|
Eclipse Platform Release 3.2 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.jface.viewers.Viewer
org.eclipse.jface.viewers.ContentViewer
org.eclipse.jface.viewers.StructuredViewer
org.eclipse.jface.viewers.AbstractTreeViewer
org.eclipse.jface.viewers.TreeViewer
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 either the
ITreeContentProvider
interface or (as of 3.2) the
ILazyTreeContentProvider
interface. If the content provider is an
ILazyTreeContentProvider
, the underlying Tree must be created
using the SWT.VIRTUAL
style bit, and the tree viewer will not support
sorting or filtering.
Nested Class Summary |
---|
Nested classes inherited from class org.eclipse.jface.viewers.StructuredViewer |
---|
StructuredViewer.ColorAndFontCollector, 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. |
protected void |
assertContentProviderType(IContentProvider provider)
Assert that the content provider is of one of the supported types. |
protected void |
buildLabel(ViewerLabel updateLabel,
Object elementOrPath)
Override to handle tree paths. |
void |
cancelEditing()
Cancels a currently active cell editor. |
protected void |
createChildren(Widget widget)
Creates all children for the given widget. |
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 Object |
getParentElement(Object element)
This method takes a tree path or an element. |
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 Object[] |
getRawChildren(Object parent)
Returns the children of the given parent without sorting and filtering them. |
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. |
protected void |
internalAdd(Widget widget,
Object parentElement,
Object[] childElements)
Adds the given child elements to this viewer as children of the given parent element. |
protected void |
internalRefreshStruct(Widget widget,
Object element,
boolean updateLabels)
|
boolean |
isCellEditorActive()
Returns whether there is an active cell editor. |
boolean |
isExpandable(Object element)
Return whether the tree node representing the given element or path can be expanded. |
protected boolean |
isSameSelection(List items,
Item[] current)
Returns true if the given list and array of items refer to
the same model elements. |
protected void |
mapElement(Object element,
Widget item)
Adds the element item pair to the element map. |
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 |
replace(Object parent,
int index,
Object element)
For a TreeViewer with a tree with the VIRTUAL style bit set, replace the given parent's child at index with the given element. |
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 |
setChildCount(Object element,
int count)
For a TreeViewer with a tree with the VIRTUAL style bit set, set the number of children of the given element. |
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 either
ITableLabelProvider or 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.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 |
public TreeViewer(Composite parent)
MULTI, H_SCROLL, V_SCROLL,
and BORDER
. The
viewer has no input, no content provider, a default label provider, no
sorter, and no filters.
parent
- the parent controlpublic TreeViewer(Composite parent, int style)
parent
- the parent controlstyle
- the SWT style bits used to create the tree.public TreeViewer(Tree tree)
tree
- the tree controlMethod Detail |
protected void addTreeListener(Control c, TreeListener listener)
AbstractTreeViewer
addTreeListener
in class AbstractTreeViewer
c
- the SWT controllistener
- the SWT tree listenerpublic void cancelEditing()
protected void doUpdateItem(Item item, Object element)
AbstractTreeViewer
doUpdateItem
in class AbstractTreeViewer
item
- the SWT itemelement
- the elementprotected void buildLabel(ViewerLabel updateLabel, Object elementOrPath)
buildLabel
in class StructuredViewer
updateLabel
- The ViewerLabel to collect the result inelementOrPath
- The element being decorated.StructuredViewer.buildLabel(org.eclipse.jface.viewers.ViewerLabel, java.lang.Object)
public void editElement(Object element, int column)
element
- the elementcolumn
- the column numberpublic CellEditor[] getCellEditors()
public ICellModifier getCellModifier()
protected Item[] getChildren(Widget o)
AbstractTreeViewer
getChildren
in class AbstractTreeViewer
o
- the widget
public Object[] getColumnProperties()
public Control getControl()
Viewer
getControl
in class Viewer
protected boolean getExpanded(Item item)
AbstractTreeViewer
getExpanded
in class AbstractTreeViewer
item
- the item
true
if the item is considered expanded and
false
if collapsedprotected Item getItem(int x, int y)
StructuredViewer
null
if there is no item at that location.
The default implementation of this method returns null
.
getItem
in class StructuredViewer
x
- horizontal coordinatey
- vertical coordinate
null
if there is no item at the given
coordinatesprotected int getItemCount(Control widget)
AbstractTreeViewer
getItemCount
in class AbstractTreeViewer
widget
- the control
protected int getItemCount(Item item)
AbstractTreeViewer
getItemCount
in class AbstractTreeViewer
item
- the item
protected Item[] getItems(Item item)
AbstractTreeViewer
getItems
in class AbstractTreeViewer
item
- the item
public IBaseLabelProvider getLabelProvider()
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.
getLabelProvider
in class ContentViewer
protected Item getParentItem(Item item)
AbstractTreeViewer
null
if there is no parent item.
getParentItem
in class AbstractTreeViewer
item
- the item
null
if noneprotected Item[] getSelection(Control widget)
AbstractTreeViewer
getSelection
in class AbstractTreeViewer
widget
- the control
public Tree getTree()
protected void hookControl(Control control)
ContentViewer
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.
hookControl
in class AbstractTreeViewer
public boolean isCellEditorActive()
true
if there is an active cell editor, and
false
otherwiseprotected Item newItem(Widget parent, int flags, int ix)
AbstractTreeViewer
newItem
in class AbstractTreeViewer
parent
- the parent widgetflags
- SWT style bitsix
- if non-negative, indicates the position to insert the item
into its parent
protected void removeAll(Control widget)
AbstractTreeViewer
removeAll
in class AbstractTreeViewer
widget
- the controlpublic void setCellEditors(CellEditor[] editors)
editors
- the list of cell editorspublic void setCellModifier(ICellModifier modifier)
modifier
- the cell modifierpublic void setColumnProperties(String[] columnProperties)
columnProperties
- the list of column propertiesprotected void setExpanded(Item node, boolean expand)
AbstractTreeViewer
setExpanded
in class AbstractTreeViewer
node
- the itemexpand
- the expand state of the itempublic void setLabelProvider(IBaseLabelProvider labelProvider)
Viewer
framework
method ensures that the given label provider is an instance of either
ITableLabelProvider
or ILabelProvider
.
If the label provider is an ITableLabelProvider
, then it
provides a separate label text and image for each column. Implementers of
ITableLabelProvider
may also implement
ITableColorProvider
and/or ITableFontProvider
to provide
colors and/or fonts. Note that the underlying Tree
must be
configured with TreeColumn
objects in this case.
If the label provider is an ILabelProvider
, then it
provides only the label text and image for the first column, and any
remaining columns are blank. Implementers of ILabelProvider
may also implement IColorProvider
and/or IFontProvider
to
provide colors and/or fonts.
setLabelProvider
in class StructuredViewer
protected void setSelection(List items)
AbstractTreeViewer
setSelection
in class AbstractTreeViewer
items
- list of items (element type: org.eclipse.swt.widgets.Item
)protected boolean isSameSelection(List items, Item[] current)
true
if the given list and array of items refer to
the same model elements. Order is unimportant.
items
- the list of itemscurrent
- the array of items
true
if the refer to the same elements,
false
otherwiseprotected void showItem(Item item)
AbstractTreeViewer
showItem
in class AbstractTreeViewer
item
- the itemprotected Item getChild(Widget widget, int index)
AbstractTreeViewer
getChild
in class AbstractTreeViewer
widget
- the widget to checkindex
- the index of the widget
null
if widget is not a type
that can contain items.protected void assertContentProviderType(IContentProvider provider)
StructuredViewer
assertContentProviderType
in class AbstractTreeViewer
protected Object[] getRawChildren(Object parent)
StructuredViewer
Returns an empty array if the given parent is null
.
getRawChildren
in class AbstractTreeViewer
public void setChildCount(Object element, int count)
element
- count
- EXPERIMENTAL. This class or interface has been added as
part of a work in progress. There is no guarantee that this API will remain
unchanged during the 3.2 release cycle. Please do not use this API without
consulting with the Platform/UI team.
public void replace(Object parent, int index, Object element)
This method should be called by implementers of ILazyTreeContentProvider to populate this viewer.
parent
- the parent of the element that should be updatedindex
- the index in the parent's childrenelement
- the new elementsetChildCount(Object, int)
,
EXPERIMENTAL. This class or interface has been added as
part of a work in progress. There is no guarantee that this API will remain
unchanged during the 3.2 release cycle. Please do not use this API without
consulting with the Platform/UI team.
public boolean isExpandable(Object element)
AbstractTreeViewer
ITreePathContentProvider
.
The default implementation of this framework method calls hasChildren
on this viewer's content provider. It may be overridden if necessary.
isExpandable
in class AbstractTreeViewer
element
- the element or path
true
if the tree node representing the given
element can be expanded, or false
if notprotected Object getParentElement(Object element)
AbstractTreeViewer
null
if the parent is not known. If the argument is a tree path with more than
one segment, returns its parent tree path, otherwise returns
null
.
getParentElement
in class AbstractTreeViewer
element
-
null
protected void createChildren(Widget widget)
AbstractTreeViewer
The default implementation of this framework method assumes that widget.getData()
returns the element corresponding to the node. Note: the node is not
visually expanded! You may have to call parent.setExpanded(true)
.
createChildren
in class AbstractTreeViewer
widget
- the widgetprotected void internalAdd(Widget widget, Object parentElement, Object[] childElements)
AbstractTreeViewer
EXPERIMENTAL. Not to be used except by JDT. This method was added to support JDT's explorations into grouping by working sets, which requires viewers to support multiple equal elements. See bug 76482 for more details. This support will likely be removed in Eclipse 3.2 in favour of proper support for multiple equal elements.
internalAdd
in class AbstractTreeViewer
widget
- the widget for the parent elementparentElement
- the parent elementchildElements
- the child elements to addprotected void internalRefreshStruct(Widget widget, Object element, boolean updateLabels)
widget
- element
- updateLabels
- protected void mapElement(Object element, Widget item)
StructuredViewer
This method is internal to the framework; subclassers should not call this method.
mapElement
in class StructuredViewer
element
- the elementitem
- the corresponding widget
|
Eclipse Platform Release 3.2 |
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Guidelines for using Eclipse APIs.
Copyright (c) IBM Corp. and others 2000, 2006. All rights reserved.