|
Eclipse Platform Release 3.0 | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.eclipse.jface.viewers.Viewer org.eclipse.jface.viewers.ContentViewer org.eclipse.jface.viewers.StructuredViewer org.eclipse.jface.viewers.AbstractTreeViewer
Abstract base implementation for tree-structure-oriented viewers (trees and table trees).
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.
Content providers for abstract tree viewers must implement the ITreeContentProvider interface.
Field Summary | |
static int | ALL_LEVELS
Constant indicating that all levels of the tree should be expanded or collapsed. |
Fields inherited from class org.eclipse.jface.viewers.Viewer |
WIDGET_DATA_KEY |
Constructor Summary | |
protected | AbstractTreeViewer()
Creates an abstract tree viewer. |
Method Summary | |
void | add(Object parentElement,
Object childElement)
Adds the given child element to this viewer as a child of the given parent element. |
void | add(Object parentElement,
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 | associate(Object element,
Item item)
Associates the given element with the given widget. |
void | collapseAll()
Collapses all nodes of the viewer's tree, starting with the root. |
void | collapseToLevel(Object element,
int level)
Collapses the subtree rooted at the given element 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 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 abstract 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 element,
int level)
Expands all ancestors of the given element 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 abstract Item[] | getChildren(Widget widget)
Returns the SWT child items for the given SWT widget. |
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 element)
Returns whether the node corresponding to the given element is expanded or collapsed. |
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 abstract Item | getParentItem(Item item)
Returns the parent item of the given item in the tree, or null if there is 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 parent)
Returns the children of the given parent without sorting and filtering them. |
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. |
Object[] | getVisibleExpandedElements()
Gets the expanded elements that are visible to the user. |
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. |
protected void | internalCollapseToLevel(Widget widget,
int level)
Recursively collapses the subtree rooted at the given widget to the given level. |
protected Widget | internalExpand(Object element,
boolean expand)
Tries to create a path of tree items for the given element. |
protected void | internalExpandToLevel(Widget widget,
int level)
Recursively expands the subtree rooted at the given widget to the given level. |
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. |
boolean | isExpandable(Object element)
Return whether the tree node representing the given element can be expanded. |
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 element)
Removes the given element from the viewer. |
void | remove(Object[] elements)
Removes the given elements from this viewer. |
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 element)
Ensures that the given element is visible, scrolling the viewer if necessary. |
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. |
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 element,
boolean expanded)
Sets whether the node corresponding to the given element is expanded or collapsed. |
protected abstract void | setSelection(List items)
Sets the selection to the given list of items. |
protected void | setSelectionToWidget(List v,
boolean reveal)
Parlays the given list of selected elements into selections on this viewer's control. |
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. |
Methods inherited from class org.eclipse.jface.viewers.ContentViewer |
getContentProvider, getInput, getLabelProvider, handleDispose, setLabelProvider |
Methods inherited from class org.eclipse.jface.viewers.Viewer |
addHelpListener, addSelectionChangedListener, fireHelpRequested, fireSelectionChanged, getControl, 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 |
Field Detail |
public static final int ALL_LEVELS
Constructor Detail |
protected AbstractTreeViewer()
Method Detail |
public void add(Object parentElement, 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.
protected int indexForElement(Widget parent, Object element)
public void add(Object parentElement, 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.
protected void addSelectionListener(Control control, SelectionListener listener)
public void addTreeListener(ITreeViewerListener listener)
protected abstract void addTreeListener(Control control, TreeListener listener)
protected void associate(Object element, Item item)
public void collapseAll()
public void collapseToLevel(Object element, int level)
protected 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).
protected void createTreeItem(Widget parent, Object element, int index)
protected void disassociate(Item item)
protected Widget doFindInputItem(Object element)
This method is internal to the framework; subclassers should not call this method.
protected Widget doFindItem(Object element)
This method is internal to the framework; subclassers should not call this method.
protected abstract void doUpdateItem(Item item, Object element)
protected void doUpdateItem(Widget widget, Object element, boolean fullMap)
This method is internal to the framework; subclassers should not call this method.
public void expandAll()
public void expandToLevel(int level)
public void expandToLevel(Object element, int level)
protected void fireTreeCollapsed(TreeExpansionEvent event)
protected void fireTreeExpanded(TreeExpansionEvent event)
public int getAutoExpandLevel()
protected abstract Item[] getChildren(Widget widget)
protected abstract boolean getExpanded(Item item)
public Object[] getExpandedElements()
This method is typically used when preserving the interesting state of a viewer; setExpandedElements is used during the restore.
public boolean getExpandedState(Object element)
protected abstract int getItemCount(Control control)
protected abstract int getItemCount(Item item)
protected abstract Item[] getItems(Item item)
protected Item getNextItem(Item item, boolean includeChildren)
protected abstract Item getParentItem(Item item)
protected Item getPreviousItem(Item item)
protected Object[] getRawChildren(Object parent)
Returns an empty array if the given parent is null.
protected abstract Item[] getSelection(Control control)
protected List getSelectionFromWidget()
protected void handleTreeCollapse(TreeEvent event)
protected void handleTreeExpand(TreeEvent event)
protected void hookControl(Control 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.
protected void inputChanged(Object input, Object oldInput)
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.
protected void internalCollapseToLevel(Widget widget, int level)
Note that the default implementation of this method does not call setRedraw.
protected Widget internalExpand(Object element, boolean expand)
protected void internalExpandToLevel(Widget widget, int level)
Note that the default implementation of this method does not call setRedraw.
protected void internalRefresh(Object element)
protected void internalRefresh(Object element, 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).
public boolean isExpandable(Object element)
The default implementation of this framework method calls hasChildren on this viewer's content provider. It may be overridden if necessary.
protected void labelProviderChanged()
The ContentViewer implementation of this method calls refresh(). Subclasses may reimplement or extend.
protected abstract Item newItem(Widget parent, int style, int index)
public void remove(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.
public void remove(Object element)
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.
protected abstract void removeAll(Control control)
public void removeTreeListener(ITreeViewerListener listener)
public void reveal(Object element)
public Item scrollDown(int x, int y)
public Item scrollUp(int x, int y)
public void setAutoExpandLevel(int level)
The value ALL_LEVELS means that all subtrees should be expanded.
public void setContentProvider(IContentProvider provider)
protected abstract void setExpanded(Item item, boolean expand)
public void setExpandedElements(Object[] elements)
This method is typically used when restoring the interesting state of a viewer captured by an earlier call to getExpandedElements.
public void setExpandedState(Object element, boolean expanded)
protected abstract void setSelection(List items)
protected void setSelectionToWidget(List v, boolean reveal)
Subclasses should override to set their selection based on the given list of elements.
protected abstract void showItem(Item item)
protected void updateChildren(Widget widget, Object parent, Object[] elementChildren)
protected void updatePlus(Item item, Object element)
public Object[] getVisibleExpandedElements()
|
Eclipse Platform Release 3.0 | ||||||||||
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, 2004. All rights reserved.