| java.lang.Object net.refractions.udig.catalog.ui.ResolveContentProvider
ResolveContentProvider | public class ResolveContentProvider implements ITreeContentProvider,IResolveChangeListener(Code) | | Provides a threaded Tree content provider for IResolve.
Responsibilities:
- Rooted by a catalog
- Ensure that calls to members are dispatched in a non ui thread
author: jgarnett since: 0.6.0 |
Inner Class :class Update implements Runnable | |
Field Summary | |
Map<IResolve, List<IResolve>> | structure Captures parent child relationships.
Here an
IdentityHashMap is used because the containsKey otherwise doesn't look deep
enough in the object to correctly deal with multilevel services. | Map<IResolve, Thread> | threadFarm Map of threads used to resolve associated IResolves.
Waking up the thread will cause the associated IResolve to be refreshed.
Here an
IdentityHashMap is used because the containsKey otherwise doesn't look deep
enough in the object to correctly deal with multilevel services. |
Method Summary | |
public void | changed(IResolveChangeEvent event) Catalog has changed!
Will only start up a thread to update the structure if:
- We care about this resolve
- We are not already running a thread
This will allow us to "ignore" events generated by the process up inspecting the resolve
being updated. | public void | dispose() | public Object[] | getChildren(Object parent) Returns the child elements of the given parent element. | public Object[] | getElements(Object inputElement) | public Object | getParent(Object element) | public boolean | hasChildren(Object element) | public void | inputChanged(Viewer newViewer, Object oldInput, Object newInput) Notifies this content provider that the given viewer's input has been switched to a different
element. | public void | refresh(IResolve resolve) Called by thread to client code to get the content refreshed. | public void | update(IResolve resolve) Update appearance and structure. |
structure | Map<IResolve, List<IResolve>> structure(Code) | | Captures parent child relationships.
Here an
IdentityHashMap is used because the containsKey otherwise doesn't look deep
enough in the object to correctly deal with multilevel services.
|
threadFarm | Map<IResolve, Thread> threadFarm(Code) | | Map of threads used to resolve associated IResolves.
Waking up the thread will cause the associated IResolve to be refreshed.
Here an
IdentityHashMap is used because the containsKey otherwise doesn't look deep
enough in the object to correctly deal with multilevel services.
|
changed | public void changed(IResolveChangeEvent event)(Code) | | Catalog has changed!
Will only start up a thread to update the structure if:
- We care about this resolve
- We are not already running a thread
This will allow us to "ignore" events generated by the process up inspecting the resolve
being updated.
Parameters: event - |
dispose | public void dispose()(Code) | | |
getChildren | public Object[] getChildren(Object parent)(Code) | | Returns the child elements of the given parent element.
The difference between this method and IStructuredContentProvider.getElements
is that getElements is called to obtain the tree viewer's root elements,
whereas getChildren is used to obtain the children of a given parent element
in the tree (including a root).
The result is not modified by the viewer.
See Also: org.eclipse.jface.viewers.ITreeContentProvider.getChildren(java.lang.Object) Parameters: parent - the parent element an array of child elements |
getElements | public Object[] getElements(Object inputElement)(Code) | | See Also: org.eclipse.jface.viewers.IStructuredContentProvider.getElements(java.lang.Object) |
getParent | public Object getParent(Object element)(Code) | | See Also: org.eclipse.jface.viewers.ITreeContentProvider.getParent(java.lang.Object) |
hasChildren | public boolean hasChildren(Object element)(Code) | | See Also: org.eclipse.jface.viewers.ITreeContentProvider.hasChildren(java.lang.Object) |
inputChanged | public void inputChanged(Viewer newViewer, Object oldInput, Object newInput)(Code) | | Notifies this content provider that the given viewer's input has been switched to a different
element.
A typical use for this method is registering the content provider as a listener to changes on
the new input (using model-specific means), and deregistering the viewer from the old input.
In response to these change notifications, the content provider should update the viewer (see
the add, remove, update and refresh methods on the viewers).
The viewer should not be updated during this call, as it might be in the process of being
disposed.
Parameters: viewer - the viewer Parameters: oldInput - the old input element, or null if the viewer did notpreviously have an input Parameters: newInput - the new input element, or null if the viewer does not have aninput |
refresh | public void refresh(IResolve resolve)(Code) | | Called by thread to client code to get the content refreshed.
This call will not update structure, just appearance.
Parameters: resolve - |
update | public void update(IResolve resolve)(Code) | | Update appearance and structure.
Note: this will spawn a thread to fetch the required information.
Parameters: resolve - |
|
|