public abstract class AbstractTreeViewer extends ColumnViewer
Nodes in the tree can be in either an expanded or a collapsed state, depending on whether the children on a node are visible. This class introduces public methods for controlling the expanding and collapsing of nodes.
As of 3.2, AbstractTreeViewer supports multiple equal elements (each with a
different parent chain) in the tree. This support requires that clients
enable the element map by calling setUseHashLookup(true)
.
Content providers for abstract tree viewers must implement one of the
interfaces ITreeContentProvider
or (as of 3.2, to support
multiple equal elements) ITreePathContentProvider
.
TreeViewer
StructuredViewer.ColorAndFontCollector, StructuredViewer.ColorAndFontCollectorWithProviders
Modifier and Type | Field and Description |
---|---|
static int |
ALL_LEVELS
Constant indicating that all levels of the tree should be expanded or
collapsed.
|
WIDGET_DATA_KEY
Modifier | Constructor and Description |
---|---|
protected |
AbstractTreeViewer()
Creates an abstract tree viewer.
|
Modifier and Type | Method and Description |
---|---|
void |
add(Object parentElementOrTreePath,
Object childElement)
Adds the given child element to this viewer as a child of the given
parent element.
|
void |
add(Object parentElementOrTreePath,
Object[] childElements)
Adds the given child elements to this viewer as children of the given
parent element.
|
protected void |
addSelectionListener(Control control,
SelectionListener listener)
Deprecated.
|
protected abstract void |
addTreeListener(Control control,
TreeListener listener)
Adds the given SWT tree listener to the given SWT control.
|
void |
addTreeListener(ITreeViewerListener listener)
Adds a listener for expand and collapse events in this viewer.
|
protected void |
assertContentProviderType(IContentProvider provider)
Assert that the content provider is of one of the
supported types.
|
protected void |
associate(Object element,
Item item)
Associates the given element with the given widget.
|
protected void |
buildLabel(ViewerLabel updateLabel,
Object elementOrPath)
This implementation of buildLabel handles tree paths as well as elements.
|
void |
collapseAll()
Collapses all nodes of the viewer's tree, starting with the root.
|
void |
collapseToLevel(Object elementOrTreePath,
int level)
Collapses the subtree rooted at the given element or tree path to the
given level.
|
protected void |
createChildren(Widget widget)
Creates all children for the given widget.
|
protected void |
createTreeItem(Widget parent,
Object element,
int index)
Creates a single item for the given parent and synchronizes it with the
given element.
|
protected ColumnViewerEditor |
createViewerEditor()
This implementation of
createViewerEditor() returns null to ensure
API backwards compatibility. |
protected void |
disassociate(Item item)
The
AbstractTreeViewer implementation of this method also
recurses over children of the corresponding element. |
protected Widget |
doFindInputItem(Object element)
Returns the widget in this viewer's control which represents the given
element if it is the viewer's input.
|
protected Widget |
doFindItem(Object element)
Returns the widget in this viewer's control which represent the given
element.
|
protected int |
doGetColumnCount()
Returns the number of columns of this viewer.
|
protected void |
doUpdateItem(Item item,
Object element)
Copies the attributes of the given element into the given SWT item.
|
protected void |
doUpdateItem(Widget widget,
Object element,
boolean fullMap)
Copies the attributes of the given element into the given SWT item.
|
void |
expandAll()
Expands all nodes of the viewer's tree, starting with the root.
|
void |
expandToLevel(int level)
Expands the root of the viewer's tree to the given level.
|
void |
expandToLevel(Object elementOrTreePath,
int level)
Expands all ancestors of the given element or tree path so that the given
element becomes visible in this viewer's tree control, and then expands
the subtree rooted at the given element to the given level.
|
protected void |
fireTreeCollapsed(TreeExpansionEvent event)
Fires a tree collapsed event.
|
protected void |
fireTreeExpanded(TreeExpansionEvent event)
Fires a tree expanded event.
|
int |
getAutoExpandLevel()
Returns the auto-expand level.
|
protected Item |
getChild(Widget widget,
int index)
Get the child for the widget at index.
|
protected abstract Item[] |
getChildren(Widget widget)
Returns the SWT child items for the given SWT widget.
|
Item[] |
getChildren(Widget widget,
Object[] elementChildren)
Deprecated.
This method was inadvertently released as API but is not
intended to be called by clients.
|
protected Widget |
getColumnViewerOwner(int columnIndex)
Returns the column widget at the given column index.
|
protected abstract boolean |
getExpanded(Item item)
Returns whether the given SWT item is expanded or collapsed.
|
Object[] |
getExpandedElements()
Returns a list of elements corresponding to expanded nodes in this
viewer's tree, including currently hidden ones that are marked as
expanded but are under a collapsed ancestor.
|
boolean |
getExpandedState(Object elementOrTreePath)
Returns whether the node corresponding to the given element or tree path
is expanded or collapsed.
|
TreePath[] |
getExpandedTreePaths()
Returns a list of tree paths corresponding to expanded nodes in this
viewer's tree, including currently hidden ones that are marked as
expanded but are under a collapsed ancestor.
|
protected Item |
getItemAt(Point point)
This implementation of
getItemAt(Point) returns null to ensure
API backwards compatibility. |
protected abstract int |
getItemCount(Control control)
Returns the number of child items of the given SWT control.
|
protected abstract int |
getItemCount(Item item)
Returns the number of child items of the given SWT item.
|
protected abstract Item[] |
getItems(Item item)
Returns the child items of the given SWT item.
|
protected Item |
getNextItem(Item item,
boolean includeChildren)
Returns the item after the given item in the tree, or
null
if there is no next item. |
protected Object |
getParentElement(Object elementOrTreePath)
This method takes a tree path or an element.
|
protected abstract 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 |
getPreviousItem(Item item)
Returns the item before the given item in the tree, or
null
if there is no previous item. |
protected Object[] |
getRawChildren(Object parentElementOrTreePath)
Returns the children of the given parent without sorting and filtering
them.
|
ISelection |
getSelection()
The
AbstractTreeViewer implementation of this method returns
the result as an ITreeSelection . |
protected abstract Item[] |
getSelection(Control control)
Returns all selected items for the given SWT control.
|
protected List |
getSelectionFromWidget()
Retrieves the selection, as a
List , from the underlying
widget. |
protected Object[] |
getSortedChildren(Object parentElementOrTreePath)
Returns the sorted and filtered set of children of the given element.
|
ITreeSelection |
getStructuredSelection()
Returns the
ITreeSelection of this viewer. |
protected TreePath |
getTreePathFromItem(Item item)
Returns the tree path for the given item.
|
protected ViewerRow |
getViewerRowFromItem(Widget item)
Returns a
ViewerRow associated with the given row widget. |
Object[] |
getVisibleExpandedElements()
Gets the expanded elements that are visible to the user.
|
protected void |
handleDoubleSelect(SelectionEvent event)
Handles a double-click select event from the widget.
|
protected void |
handleTreeCollapse(TreeEvent event)
Handles a tree collapse event from the SWT widget.
|
protected void |
handleTreeExpand(TreeEvent event)
Handles a tree expand event from the SWT widget.
|
protected void |
hookControl(Control control)
Adds event listener hooks to the given control.
|
protected int |
indexForElement(Widget parent,
Object element)
Returns the index where the item should be inserted.
|
protected void |
inputChanged(Object input,
Object oldInput)
Internal hook method called when the input to this viewer is
initially set or subsequently changed.
|
void |
insert(Object parentElementOrTreePath,
Object element,
int position)
Inserts the given element as a new child element of the given parent
element at the given position.
|
protected void |
internalAdd(Widget widget,
Object parentElementOrTreePath,
Object[] childElements)
Adds the given child elements to this viewer as children of the given
parent element.
|
protected void |
internalCollapseToLevel(Widget widget,
int level)
Recursively collapses the subtree rooted at the given widget to the given
level.
|
protected Widget |
internalExpand(Object elementOrPath,
boolean expand)
Tries to create a path of tree items for the given element or tree path.
|
protected void |
internalExpandToLevel(Widget widget,
int level)
Recursively expands the subtree rooted at the given widget to the given
level.
|
protected Widget[] |
internalFindItems(Object parentElementOrTreePath)
Find the items for the given element of tree path
|
protected Widget |
internalGetWidgetToSelect(Object elementOrTreePath)
Returns the widget to be selected for the given element or tree path.
|
protected void |
internalInitializeTree(Control tree)
Initializes the tree with root items, expanding to the appropriate
level if necessary.
|
protected boolean |
internalIsInputOrEmptyPath(Object elementOrTreePath)
Returns true if the given object is either the input or an empty tree path.
|
protected void |
internalRefresh(Object element)
Refreshes this viewer starting at the given element.
|
protected void |
internalRefresh(Object element,
boolean updateLabels)
Refreshes this viewer starting at the given element.
|
protected void |
internalRefresh(Widget widget,
Object element,
boolean doStruct,
boolean updateLabels)
Refreshes the tree starting at the given widget.
|
protected void |
internalRemove(Object[] elementsOrPaths)
Removes the given elements from this viewer.
|
protected void |
internalRemove(Object parent,
Object[] elements)
Removes the given elements from this viewer, whenever those elements
appear as children of the given parent.
|
boolean |
isExpandable(Object elementOrTreePath)
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 |
labelProviderChanged()
Notifies that the label provider has changed.
|
protected abstract Item |
newItem(Widget parent,
int style,
int index)
Creates a new item.
|
void |
remove(Object elementsOrTreePaths)
Removes the given element from the viewer.
|
void |
remove(Object[] elementsOrTreePaths)
Removes the given elements from this viewer.
|
void |
remove(Object parent,
Object[] elements)
Removes the given elements from this viewer whenever they appear as
children of the given parent element.
|
protected abstract void |
removeAll(Control control)
Removes all items from the given control.
|
void |
removeTreeListener(ITreeViewerListener listener)
Removes a listener for expand and collapse events in this viewer.
|
void |
reveal(Object elementOrTreePath)
This implementation of reveal() reveals the given element or tree path.
|
Item |
scrollDown(int x,
int y)
Scrolls the viewer's control down by one item from the given
display-relative coordinates.
|
Item |
scrollUp(int x,
int y)
Scrolls the viewer's control up by one item from the given
display-relative coordinates.
|
void |
setAutoExpandLevel(int level)
Sets the auto-expand level to be used when the input of the viewer is set
using
StructuredViewer.setInput(Object) . |
void |
setContentProvider(IContentProvider provider)
The
AbstractTreeViewer implementation of this method
checks to ensure that the content provider is an
ITreeContentProvider . |
protected abstract void |
setExpanded(Item item,
boolean expand)
Sets the expand state of the given item.
|
void |
setExpandedElements(Object[] elements)
Sets which nodes are expanded in this viewer's tree.
|
void |
setExpandedState(Object elementOrTreePath,
boolean expanded)
Sets whether the node corresponding to the given element or tree path is
expanded or collapsed.
|
void |
setExpandedTreePaths(TreePath[] treePaths)
Sets which nodes are expanded in this viewer's tree.
|
void |
setExpandPreCheckFilters(boolean checkFilters)
Instructs
isExpandable(Object) to consult filters to more accurately
determine if an item can be expanded. |
protected abstract void |
setSelection(List items)
Sets the selection to the given list of items.
|
protected void |
setSelectionToWidget(ISelection selection,
boolean reveal)
Converts the selection to a
List and calls
setSelectionToWidget(List, boolean) . |
protected void |
setSelectionToWidget(List v,
boolean reveal)
This implementation of setSelectionToWidget accepts a list of elements or
a list of tree paths.
|
protected abstract void |
showItem(Item item)
Shows the given item.
|
protected void |
updateChildren(Widget widget,
Object parent,
Object[] elementChildren)
Deprecated.
this is no longer called by the framework
|
protected void |
updatePlus(Item item,
Object element)
Updates the "+"/"-" icon of the tree node from the given element.
|
applyEditorValue, cancelEditing, checkBusy, editElement, getCell, getCellEditors, getCellModifier, getColumnProperties, getColumnViewerEditor, getItem, getLabelProvider, getViewerRow, handleDispose, hookEditingSupport, isBusy, isCellEditorActive, refresh, refresh, setBusy, setCellEditors, setCellModifier, setColumnProperties, setColumnViewerEditor, setLabelProvider, triggerEditorActivationEvent, update
addDoubleClickListener, addDragSupport, addDropSupport, addFilter, addOpenListener, addPostSelectionChangedListener, assertElementsNotNull, equals, filter, findItem, findItems, fireDoubleClick, fireOpen, firePostSelectionChanged, getColorAndFontCollector, getComparator, getComparer, getFilteredChildren, getFilters, getRoot, getSorter, handleInvalidSelection, handleLabelProviderChanged, handleOpen, handlePostSelect, handleSelect, hasFilters, internalUpdate, mapElement, needsRefilter, preservingSelection, refresh, refresh, refreshItem, removeDoubleClickListener, removeFilter, removeOpenListener, removePostSelectionChangedListener, resetFilters, setComparator, setComparer, setFilters, setInput, setSelection, setSorter, setUseHashlookup, testFindItem, testFindItems, unmapAllElements, unmapElement, unmapElement, update, updateItem, updateSelection, usingElementMap
getContentProvider, getInput, getLabelProvider
addHelpListener, addSelectionChangedListener, fireHelpRequested, fireSelectionChanged, getControl, getData, handleHelpRequest, removeHelpListener, removeSelectionChangedListener, setData, setSelection
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addSelectionChangedListener, removeSelectionChangedListener, setSelection
public static final int ALL_LEVELS
protected AbstractTreeViewer()
public void add(Object parentElementOrTreePath, Object[] childElements)
This method should be called (by the content provider) when elements have been added to the model, in order to cause the viewer to accurately reflect the model. This method only affects the viewer, not the model.
parentElementOrTreePath
- the parent elementchildElements
- the child elements to addprotected final Widget[] internalFindItems(Object parentElementOrTreePath)
parentElementOrTreePath
- the element or tree pathprotected void internalAdd(Widget widget, Object parentElementOrTreePath, Object[] childElements)
EXPERIMENTAL. Not to be used except by JDT. This method was added to support JDT's explorations into grouping by working sets. This method cannot be removed without breaking binary backwards compatibility, but should not be called by clients.
widget
- the widget for the parent elementparentElementOrTreePath
- the parent elementchildElements
- the child elements to addprotected int indexForElement(Widget parent, Object element)
parent
- The parent widget the element will be inserted into.element
- The element to insert.protected Object[] getSortedChildren(Object parentElementOrTreePath)
StructuredViewer
getSortedChildren
in class StructuredViewer
parentElementOrTreePath
- the parent elementpublic void add(Object parentElementOrTreePath, Object childElement)
This method should be called (by the content provider) when a single element has been added to the model, in order to cause the viewer to accurately reflect the model. This method only affects the viewer, not the model. Note that there is another method for efficiently processing the simultaneous addition of multiple elements.
parentElementOrTreePath
- the parent element or pathchildElement
- the child element@Deprecated protected void addSelectionListener(Control control, SelectionListener listener)
control
- the SWT controllistener
- the SWT selection listenerpublic void addTreeListener(ITreeViewerListener listener)
listener
- a tree viewer listenerprotected abstract void addTreeListener(Control control, TreeListener listener)
control
- the SWT controllistener
- the SWT tree listenerprotected void associate(Object element, Item item)
StructuredViewer
associate
in class StructuredViewer
element
- the elementitem
- the widgetpublic void collapseAll()
collapseToLevel(ALL_LEVELS)
.public void collapseToLevel(Object elementOrTreePath, int level)
elementOrTreePath
- the element or tree pathlevel
- non-negative level, or ALL_LEVELS
to collapse
all levels of the treeprotected void createChildren(Widget widget)
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)
.
widget
- the widgetprotected void createTreeItem(Widget parent, Object element, int index)
parent
- the parent widgetelement
- the elementindex
- if non-negative, indicates the position to insert the item
into its parentprotected void disassociate(Item item)
AbstractTreeViewer
implementation of this method also
recurses over children of the corresponding element.disassociate
in class StructuredViewer
item
- the widgetprotected Widget doFindInputItem(Object element)
StructuredViewer
This method is internal to the framework; subclassers should not call this method.
doFindInputItem
in class StructuredViewer
null
if noneprotected Widget doFindItem(Object element)
StructuredViewer
This method is internal to the framework; subclassers should not call this method.
doFindItem
in class StructuredViewer
null
if noneprotected void doUpdateItem(Item item, Object element)
item
- the SWT itemelement
- the elementprotected boolean isSameSelection(List items, Item[] current)
true
if the given list and array of items refer to
the same model elements. Order is unimportant.
This method is not intended to be overridden by subclasses.
items
- the list of itemscurrent
- the array of itemstrue
if the refer to the same elements,
false
otherwiseprotected void doUpdateItem(Widget widget, Object element, boolean fullMap)
StructuredViewer
fullMap
.
If fullMap
is true
then the current mapping
from element to widgets is removed and the new mapping is added. If
full map is false
then only the new map gets installed.
Installing only the new map is necessary in cases where only the order of
elements changes but not the set of elements.
This method is internal to the framework; subclassers should not call this method.
doUpdateItem
in class StructuredViewer
element
- elementfullMap
- true
if mappings are added and removed, and
false
if only the new map gets installedpublic void expandAll()
expandToLevel(ALL_LEVELS)
.public void expandToLevel(int level)
level
- non-negative level, or ALL_LEVELS
to expand all
levels of the treepublic void expandToLevel(Object elementOrTreePath, int level)
elementOrTreePath
- the elementlevel
- non-negative level, or ALL_LEVELS
to expand all
levels of the treeprotected void fireTreeCollapsed(TreeExpansionEvent event)
event
- the tree expansion eventITreeViewerListener.treeCollapsed(org.eclipse.jface.viewers.TreeExpansionEvent)
protected void fireTreeExpanded(TreeExpansionEvent event)
event
- the tree expansion eventITreeViewerListener.treeExpanded(org.eclipse.jface.viewers.TreeExpansionEvent)
public int getAutoExpandLevel()
ALL_LEVELS
if all levels of
the tree are expanded automaticallysetAutoExpandLevel(int)
protected abstract Item[] getChildren(Widget widget)
widget
- the widgetprotected Item getChild(Widget widget, int index)
widget
- the widget to checkindex
- the index of the widgetnull
if widget is not a type that can
contain items.ArrayIndexOutOfBoundsException
- if the index is not valid.protected abstract boolean getExpanded(Item item)
item
- the itemtrue
if the item is considered expanded and
false
if collapsedpublic Object[] getExpandedElements()
This method is typically used when preserving the interesting state of a
viewer; setExpandedElements
is used during the restore.
setExpandedElements(java.lang.Object[])
public boolean getExpandedState(Object elementOrTreePath)
elementOrTreePath
- the elementtrue
if the node is expanded, and
false
if collapsedprotected abstract int getItemCount(Control control)
control
- the controlprotected abstract int getItemCount(Item item)
item
- the itemprotected abstract Item[] getItems(Item item)
item
- the itemprotected Item getNextItem(Item item, boolean includeChildren)
null
if there is no next item.item
- the itemincludeChildren
- true
if the children are considered in
determining which item is next, and false
if
subtrees are ignorednull
if noneprotected abstract Item getParentItem(Item item)
null
if there is no parent item.item
- the itemnull
if noneprotected Item getPreviousItem(Item item)
null
if there is no previous item.item
- the itemnull
if noneprotected Object[] getRawChildren(Object parentElementOrTreePath)
StructuredViewer
Returns an empty array if the given parent is null
.
getRawChildren
in class ColumnViewer
parentElementOrTreePath
- the parent elementprotected abstract Item[] getSelection(Control control)
control
- the controlprotected List getSelectionFromWidget()
StructuredViewer
List
, from the underlying
widget.getSelectionFromWidget
in class StructuredViewer
protected void handleDoubleSelect(SelectionEvent event)
StructuredViewer
This method is internal to the framework; subclassers should not call this method.
handleDoubleSelect
in class StructuredViewer
event
- the SWT selection eventprotected void handleTreeCollapse(TreeEvent event)
event
- the SWT tree eventprotected void handleTreeExpand(TreeEvent event)
event
- the SWT tree eventprotected 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 ColumnViewer
control
- the controlprotected void inputChanged(Object input, Object oldInput)
Viewer
The default implementation does nothing. Subclassers may override this method to do something when a viewer's input is set. A typical use is populate the viewer.
inputChanged
in class Viewer
input
- the new input of this viewer, or null
if noneoldInput
- the old input element or null
if there
was previously no inputprotected void internalInitializeTree(Control tree)
tree
- the tree controlprotected void internalCollapseToLevel(Widget widget, int level)
Note that the default implementation of this method does not call
setRedraw
.widget
- the widgetlevel
- non-negative level, or ALL_LEVELS
to collapse
all levels of the treeprotected Widget internalExpand(Object elementOrPath, boolean expand)
getParent
returns the correct parent of an element.elementOrPath
- the elementexpand
- true
if all nodes on the path should be
expanded, and false
otherwiseprotected Object getParentElement(Object elementOrTreePath)
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
.elementOrTreePath
- null
protected Widget internalGetWidgetToSelect(Object elementOrTreePath)
elementOrTreePath
- the element or tree path to selectnull
if not foundprotected void internalExpandToLevel(Widget widget, int level)
Note that the default implementation of this method does not call
setRedraw
.widget
- the widgetlevel
- non-negative level, or ALL_LEVELS
to collapse
all levels of the treeprotected void internalRefresh(Object element)
StructuredViewer
internalRefresh
in class StructuredViewer
element
- the elementprotected void internalRefresh(Object element, boolean updateLabels)
StructuredViewer
refresh(boolean updateLabels)
.
The default implementation simply calls
internalRefresh(element)
, ignoring
updateLabels
.
If this method is overridden to do the actual refresh, then
internalRefresh(Object element)
should simply call
internalRefresh(element, true)
.
internalRefresh
in class StructuredViewer
element
- the elementupdateLabels
- true
to update labels for existing elements,
false
to only update labels as needed, assuming
that labels for existing elements are unchanged.protected void internalRefresh(Widget widget, Object element, boolean doStruct, boolean updateLabels)
EXPERIMENTAL. Not to be used except by JDT. This method was added to support JDT's explorations into grouping by working sets. This method cannot be removed without breaking binary backwards compatibility, but should not be called by clients.
widget
- the widgetelement
- the elementdoStruct
- true
if structural changes are to be picked up,
and false
if only label provider changes are of
interestupdateLabels
- true
to update labels for existing elements,
false
to only update labels as needed, assuming
that labels for existing elements are unchanged.protected void internalRemove(Object[] elementsOrPaths)
EXPERIMENTAL. Not to be used except by JDT. This method was added to support JDT's explorations into grouping by working sets. This method cannot be removed without breaking binary backwards compatibility, but should not be called by clients.
elementsOrPaths
- the elements or element paths to removeprotected void internalRemove(Object parent, Object[] elements)
parent
- the parent elementelements
- the elements to removepublic boolean isExpandable(Object elementOrTreePath)
ITreePathContentProvider
.
The default implementation of this framework method calls
hasChildren
on this viewer's content provider. It may be
overridden if necessary.
elementOrTreePath
- the element or pathtrue
if the tree node representing the given
element can be expanded, or false
if notsetExpandPreCheckFilters(boolean)
protected void labelProviderChanged()
ContentViewer
The ContentViewer
implementation of this method calls refresh()
.
Subclasses may reimplement or extend.
labelProviderChanged
in class ContentViewer
protected abstract Item newItem(Widget parent, int style, int index)
parent
- the parent widgetstyle
- SWT style bitsindex
- if non-negative, indicates the position to insert the item
into its parentpublic void remove(Object[] elementsOrTreePaths)
This method should be called (by the content provider) when elements have been removed from the model, in order to cause the viewer to accurately reflect the model. This method only affects the viewer, not the model.
elementsOrTreePaths
- the elements to removepublic void remove(Object parent, Object[] elements)
This method should be called (by the content provider) when elements have been removed from the model, in order to cause the viewer to accurately reflect the model. This method only affects the viewer, not the model.
parent
- the parent of the elements to removeelements
- the elements to removepublic void remove(Object elementsOrTreePaths)
This method should be called (by the content provider) when a single element has been removed from the model, in order to cause the viewer to accurately reflect the model. This method only affects the viewer, not the model. Note that there is another method for efficiently processing the simultaneous removal of multiple elements.
elementsOrTreePaths
- the elementprotected abstract void removeAll(Control control)
control
- the controlpublic void removeTreeListener(ITreeViewerListener listener)
listener
- a tree viewer listenerpublic void reveal(Object elementOrTreePath)
reveal
in class StructuredViewer
elementOrTreePath
- the element to revealpublic Item scrollDown(int x, int y)
Viewer
null
if no scrolling occurred or if the viewer
doesn't represent an item-based widget.scrollDown
in class Viewer
x
- horizontal coordinatey
- vertical coordinatepublic Item scrollUp(int x, int y)
Viewer
null
if no scrolling occurred or if the viewer
doesn't represent an item-based widget.public void setAutoExpandLevel(int level)
StructuredViewer.setInput(Object)
. The value 0 means that there is no
auto-expand; 1 means that the invisible root element is expanded (since
most concrete subclasses do not show the root element, there is usually
no practical difference between using the values 0 and 1); 2 means that
top-level elements are expanded, but not their children; 3 means that
top-level elements are expanded, and their children, but not
grandchildren; and so on.
The value ALL_LEVELS
means that all subtrees should be
expanded.
Note that in previous releases, the Javadoc for this method had an off-by one error. See bug 177669 for details.
level
- non-negative level, or ALL_LEVELS
to expand all
levels of the treepublic void setContentProvider(IContentProvider provider)
AbstractTreeViewer
implementation of this method
checks to ensure that the content provider is an
ITreeContentProvider
.setContentProvider
in class StructuredViewer
provider
- the content providerContentViewer.getContentProvider()
protected void assertContentProviderType(IContentProvider provider)
StructuredViewer
assertContentProviderType
in class StructuredViewer
protected abstract void setExpanded(Item item, boolean expand)
item
- the itemexpand
- the expand state of the itempublic void setExpandedElements(Object[] elements)
This method is typically used when restoring the interesting state of a
viewer captured by an earlier call to getExpandedElements
.
elements
- the array of expanded elementsgetExpandedElements()
public void setExpandedTreePaths(TreePath[] treePaths)
This method is typically used when restoring the interesting state of a
viewer captured by an earlier call to getExpandedTreePaths
.
treePaths
- the array of expanded tree pathsgetExpandedTreePaths()
public void setExpandedState(Object elementOrTreePath, boolean expanded)
elementOrTreePath
- the elementexpanded
- true
if the node is expanded, and
false
if collapsedprotected abstract void setSelection(List items)
items
- list of items (element type:
org.eclipse.swt.widgets.Item
)protected void setSelectionToWidget(List v, boolean reveal)
setSelectionToWidget
in class StructuredViewer
v
- list of selected elements (element type: Object
)
or null
if the selection is to be clearedreveal
- true
if the selection is to be made visible,
and false
otherwiseprotected abstract void showItem(Item item)
item
- the item@Deprecated protected void updateChildren(Widget widget, Object parent, Object[] elementChildren)
widget
- the widgetparent
- the parent elementelementChildren
- the child elements, or null@Deprecated public Item[] getChildren(Widget widget, Object[] elementChildren)
widget
- elementChildren
- protected void updatePlus(Item item, Object element)
isExpandable
to determine whether an element is
expandable.item
- the itemelement
- the elementpublic Object[] getVisibleExpandedElements()
protected TreePath getTreePathFromItem(Item item)
item
- TreePath
public ISelection getSelection()
AbstractTreeViewer
implementation of this method returns
the result as an ITreeSelection
.
Call getStructuredSelection()
instead to get an instance of
ITreeSelection
directly.
getSelectionFromWidget(List)
instead. If they override this
method, they should return an ITreeSelection
as well.getSelection
in interface ISelectionProvider
getSelection
in class StructuredViewer
public ITreeSelection getStructuredSelection() throws ClassCastException
ITreeSelection
of this viewer.
Subclasses whose getSelection()
specifies to return a more
specific type should also override this method and return that type.
getStructuredSelection
in class StructuredViewer
ClassCastException
- if the selection of the viewer is not an instance of
ITreeSelectionprotected void setSelectionToWidget(ISelection selection, boolean reveal)
StructuredViewer
List
and calls
setSelectionToWidget(List, boolean)
. The selection is
expected to be an IStructuredSelection
of elements. If
not, the selection is cleared.
Subclasses do not typically override this method, but implement
setSelectionToWidget(List, boolean)
instead.
setSelectionToWidget
in class StructuredViewer
selection
- an IStructuredSelection of elementsreveal
- true
to reveal the first element in the
selection, or false
otherwisepublic TreePath[] getExpandedTreePaths()
This method is typically used when preserving the interesting state of a
viewer; setExpandedElements
is used during the restore.
setExpandedElements(java.lang.Object[])
public void insert(Object parentElementOrTreePath, Object element, int position)
This method should be called (by the content provider) when elements have been added to the model, in order to cause the viewer to accurately reflect the model. This method only affects the viewer, not the model.
parentElementOrTreePath
- the parent element, or the tree path to the parentelement
- the elementposition
- a 0-based position relative to the model, or -1 to indicate
the last positionprotected Widget getColumnViewerOwner(int columnIndex)
ColumnViewer
getColumnViewerOwner
in class ColumnViewer
columnIndex
- the column indexprotected Item getItemAt(Point point)
getItemAt(Point)
returns null to ensure
API backwards compatibility. Subclasses should override.getItemAt
in class ColumnViewer
point
- the widget-relative coordinatesItem
at the coordinates or null
if there
is no item at the given coordinatesprotected ColumnViewerEditor createViewerEditor()
createViewerEditor()
returns null to ensure
API backwards compatibility. Subclasses should override.createViewerEditor
in class ColumnViewer
null
if this viewer does not support
editing cell contents.protected int doGetColumnCount()
Subclasses should overwrite this method, which has a default implementation (returning 0) for API backwards compatility reasons
doGetColumnCount
in class ColumnViewer
protected void buildLabel(ViewerLabel updateLabel, Object elementOrPath)
buildLabel
in class StructuredViewer
updateLabel
- the ViewerLabel to collect the result inelementOrPath
- the element or tree path for which a label should be builtStructuredViewer.buildLabel(org.eclipse.jface.viewers.ViewerLabel,
java.lang.Object)
protected final boolean internalIsInputOrEmptyPath(Object elementOrTreePath)
elementOrTreePath
- an element which could either be the viewer's input, or a tree pathtrue
if the given object is either the input or an empty tree path,
false
otherwise.protected ViewerRow getViewerRowFromItem(Widget item)
ColumnViewer
ViewerRow
associated with the given row widget.
Implementations may re-use the same instance for different row widgets;
callers can only use the viewer row locally and until the next call to
this method.getViewerRowFromItem
in class ColumnViewer
item
- the row widgetpublic void setExpandPreCheckFilters(boolean checkFilters)
isExpandable(Object)
to consult filters to more accurately
determine if an item can be expanded.
Setting this value to true
will affect performance of the tree
viewer.
To improve performance, by default the tree viewer does not consult filters when determining if a tree node could be expanded.
checkFilters
- true
to instruct tree viewer to consult filtersisExpandable(Object)
Copyright (c) 2000, 2015 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.