org.eclipse.cdt.internal.ui.viewsupport
Class AsyncTreeContentProvider

java.lang.Object
  extended by org.eclipse.cdt.internal.ui.viewsupport.AsyncTreeContentProvider
All Implemented Interfaces:
org.eclipse.jface.viewers.IContentProvider, org.eclipse.jface.viewers.IStructuredContentProvider, org.eclipse.jface.viewers.ITreeContentProvider
Direct Known Subclasses:
CHContentProvider, IBContentProvider

public abstract class AsyncTreeContentProvider
extends java.lang.Object
implements org.eclipse.jface.viewers.ITreeContentProvider

A TreeContentProvider that supports asyncronous computation of child nodes.

While a computation for children is in progress an object of type AsyncTreeWorkInProgressNode is returned as a child. On completion of the computation the viewer will be refreshed with the actual children.


Constructor Summary
AsyncTreeContentProvider(org.eclipse.swt.widgets.Display disp)
           
 
Method Summary
 void dispose()
           
 java.lang.Object[] getChildren(java.lang.Object parentElement)
           
 java.lang.Object[] getElements(java.lang.Object inputElement)
           
 java.lang.Object getInput()
           
 java.lang.Object getParent(java.lang.Object element)
           This implementation returns the parent for nodes indicating asyncronous computation.
 boolean hasChildren(java.lang.Object element)
           
 void inputChanged(org.eclipse.jface.viewers.Viewer viewer, java.lang.Object oldInput, java.lang.Object newInput)
           
 void recompute()
          Recomputes all of the nodes, trying to keep the expanded state even with async computations.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AsyncTreeContentProvider

public AsyncTreeContentProvider(org.eclipse.swt.widgets.Display disp)
Method Detail

getParent

public java.lang.Object getParent(java.lang.Object element)

This implementation returns the parent for nodes indicating asyncronous computation. It returns null for all other elements. It should be overridden and called by derived classes.

Specified by:
getParent in interface org.eclipse.jface.viewers.ITreeContentProvider

recompute

public void recompute()
Recomputes all of the nodes, trying to keep the expanded state even with async computations.


inputChanged

public final void inputChanged(org.eclipse.jface.viewers.Viewer viewer,
                               java.lang.Object oldInput,
                               java.lang.Object newInput)
Specified by:
inputChanged in interface org.eclipse.jface.viewers.IContentProvider

getInput

public final java.lang.Object getInput()

getElements

public final java.lang.Object[] getElements(java.lang.Object inputElement)
Specified by:
getElements in interface org.eclipse.jface.viewers.IStructuredContentProvider

getChildren

public final java.lang.Object[] getChildren(java.lang.Object parentElement)
Specified by:
getChildren in interface org.eclipse.jface.viewers.ITreeContentProvider

hasChildren

public final boolean hasChildren(java.lang.Object element)
Specified by:
hasChildren in interface org.eclipse.jface.viewers.ITreeContentProvider

dispose

public void dispose()
Specified by:
dispose in interface org.eclipse.jface.viewers.IContentProvider