org.eclipse.xtext.ui.editor.findrefs
Class ReferenceSearchResultContentProvider

java.lang.Object
  extended by org.eclipse.xtext.ui.editor.findrefs.ReferenceSearchResultContentProvider
All Implemented Interfaces:
org.eclipse.jface.viewers.IContentProvider, org.eclipse.jface.viewers.IStructuredContentProvider, org.eclipse.jface.viewers.ITreeContentProvider, org.eclipse.search.ui.ISearchResultListener, IResourceDescription.Event.Listener

public class ReferenceSearchResultContentProvider
extends java.lang.Object
implements org.eclipse.jface.viewers.ITreeContentProvider, org.eclipse.search.ui.ISearchResultListener, IResourceDescription.Event.Listener

Author:
Jan Koehnlein - Initial contribution and API

Constructor Summary
ReferenceSearchResultContentProvider(IResourceDescriptions resourceDescriptions)
           
 
Method Summary
 void descriptionsChanged(IResourceDescription.Event event)
           The source will invoce this method to announce changed resource.
 void dispose()
          Disposes of this content provider.
 java.lang.Object[] getChildren(java.lang.Object parentElement)
          Returns the child elements of the given parent element.
 java.lang.Object[] getElements(java.lang.Object inputElement)
          Returns the elements to display in the viewer when its input is set to the given element.
 java.lang.Object getParent(java.lang.Object element)
          Returns the parent for the given element, or null indicating that the parent can't be computed.
 boolean hasChildren(java.lang.Object element)
          Returns whether the given element has children.
 void inputChanged(org.eclipse.jface.viewers.Viewer viewer, java.lang.Object oldInput, java.lang.Object newInput)
          Notifies this content provider that the given viewer's input has been switched to a different element.
 void searchResultChanged(org.eclipse.search.ui.SearchResultEvent e)
          Called to notify listeners of changes in a ISearchResult.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReferenceSearchResultContentProvider

@Inject
public ReferenceSearchResultContentProvider(IResourceDescriptions resourceDescriptions)
Method Detail

getChildren

public java.lang.Object[] getChildren(java.lang.Object parentElement)
Description copied from interface: org.eclipse.jface.viewers.ITreeContentProvider
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.

Specified by:
getChildren in interface org.eclipse.jface.viewers.ITreeContentProvider
Parameters:
parentElement - the parent element
Returns:
an array of child elements

getParent

public java.lang.Object getParent(java.lang.Object element)
Description copied from interface: org.eclipse.jface.viewers.ITreeContentProvider
Returns the parent for the given element, or null indicating that the parent can't be computed. In this case the tree-structured viewer can't expand a given node correctly if requested.

Specified by:
getParent in interface org.eclipse.jface.viewers.ITreeContentProvider
Parameters:
element - the element
Returns:
the parent element, or null if it has none or if the parent cannot be computed

hasChildren

public boolean hasChildren(java.lang.Object element)
Description copied from interface: org.eclipse.jface.viewers.ITreeContentProvider
Returns whether the given element has children.

Intended as an optimization for when the viewer does not need the actual children. Clients may be able to implement this more efficiently than getChildren.

Specified by:
hasChildren in interface org.eclipse.jface.viewers.ITreeContentProvider
Parameters:
element - the element
Returns:
true if the given element has children, and false if it has no children

getElements

public java.lang.Object[] getElements(java.lang.Object inputElement)
Description copied from interface: org.eclipse.jface.viewers.ITreeContentProvider
Returns the elements to display in the viewer when its input is set to the given element. These elements can be presented as rows in a table, items in a list, etc. The result is not modified by the viewer.

NOTE: The returned array must not contain the given inputElement, since this leads to recursion issues in AbstractTreeViewer (see bug 9262).

Specified by:
getElements in interface org.eclipse.jface.viewers.IStructuredContentProvider
Specified by:
getElements in interface org.eclipse.jface.viewers.ITreeContentProvider
Parameters:
inputElement - the input element
Returns:
the array of elements to display in the viewer

dispose

public void dispose()
Description copied from interface: org.eclipse.jface.viewers.IContentProvider
Disposes of this content provider. This is called by the viewer when it is disposed.

The viewer should not be updated during this call, as it is in the process of being disposed.

Specified by:
dispose in interface org.eclipse.jface.viewers.IContentProvider

inputChanged

public void inputChanged(org.eclipse.jface.viewers.Viewer viewer,
                         java.lang.Object oldInput,
                         java.lang.Object newInput)
Description copied from interface: org.eclipse.jface.viewers.IContentProvider
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.

Specified by:
inputChanged in interface org.eclipse.jface.viewers.IContentProvider
Parameters:
viewer - the viewer
oldInput - the old input element, or null if the viewer did not previously have an input
newInput - the new input element, or null if the viewer does not have an input

searchResultChanged

public void searchResultChanged(org.eclipse.search.ui.SearchResultEvent e)
Description copied from interface: org.eclipse.search.ui.ISearchResultListener
Called to notify listeners of changes in a ISearchResult. The event object e is only guaranteed to be valid for the duration of the call.

Specified by:
searchResultChanged in interface org.eclipse.search.ui.ISearchResultListener
Parameters:
e - the event object describing the change. Note that implementers of ISearchResult will be sending subclasses of SearchResultEvent

descriptionsChanged

public void descriptionsChanged(IResourceDescription.Event event)
Description copied from interface: IResourceDescription.Event.Listener

The source will invoce this method to announce changed resource. The event will never be null. However, it may contain an empty list of deltas.

Listeners are free to remove themselves from the sender of the event or add other listeners. However added listeners will not be informed about the current change.

This event may be fired asynchronously. It is ensured that the changed resources will provide the content as it was when the change has been announced to the sender of the event.

Specified by:
descriptionsChanged in interface IResourceDescription.Event.Listener
Parameters:
event - the fired event. Will never be null.