TPTP 4.5.0 Platform Project
Internal API Specification

org.eclipse.hyades.trace.ui.internal.navigator
Class AbstractFilteredContentProvider

java.lang.Object
  extended by org.eclipse.hyades.trace.ui.internal.navigator.AbstractFilteredContentProvider
All Implemented Interfaces:
org.eclipse.jface.viewers.IContentProvider, org.eclipse.jface.viewers.IStructuredContentProvider, org.eclipse.jface.viewers.ITreeContentProvider

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

A content provider wrapper that processes the output of that content provider and filters/skips elements. Filtering means removing the element and all its ancestors, and skipping means filtering only the immediate element, but its children will still be shown.


Field Summary
protected  org.eclipse.jface.viewers.ITreeContentProvider _content
           
 
Constructor Summary
AbstractFilteredContentProvider(org.eclipse.jface.viewers.ITreeContentProvider content)
          Constructs a new wrapper for the given content provider.
 
Method Summary
 void dispose()
          Disposes the content provider.
protected  java.lang.Object[] filter(java.lang.Object[] elements)
          Filters the appropriate notes from the given list of elements.
 java.lang.Object[] getChildren(java.lang.Object parentElement)
          Returns the filtered list of children.
 java.lang.Object[] getElements(java.lang.Object inputElement)
          Returns the filtered list of top-level elements.
 java.lang.Object getParent(java.lang.Object element)
          Returns the parent of the given element.
 boolean hasChildren(java.lang.Object element)
          Returns whether or not the given element has any children.
 void inputChanged(org.eclipse.jface.viewers.Viewer viewer, java.lang.Object oldInput, java.lang.Object newInput)
          A signal sent when the content provider's input changes.
abstract  boolean isFiltered(java.lang.Object element)
          Returns whether or not the given element and all its descendants should be filtered out entirely.
abstract  boolean isSkipped(java.lang.Object element)
          Returns whether or not to skip the given element.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_content

protected org.eclipse.jface.viewers.ITreeContentProvider _content
Constructor Detail

AbstractFilteredContentProvider

public AbstractFilteredContentProvider(org.eclipse.jface.viewers.ITreeContentProvider content)
Constructs a new wrapper for the given content provider.

Parameters:
content - The underlying content provider that has all the unfiltered content.
Method Detail

dispose

public void dispose()
Disposes the content provider.

Specified by:
dispose in interface org.eclipse.jface.viewers.IContentProvider
See Also:
IContentProvider.dispose()

getChildren

public java.lang.Object[] getChildren(java.lang.Object parentElement)
Returns the filtered list of children.

Specified by:
getChildren in interface org.eclipse.jface.viewers.ITreeContentProvider
Parameters:
parentElement - The parent that contains the children.
Returns:
The children, filtered.
See Also:
ITreeContentProvider.getChildren(java.lang.Object)

getElements

public java.lang.Object[] getElements(java.lang.Object inputElement)
Returns the filtered list of top-level elements.

Specified by:
getElements in interface org.eclipse.jface.viewers.IStructuredContentProvider
Parameters:
inputElement - The input of the content provider.
Returns:
The filtered top-level elements.
See Also:
IStructuredContentProvider.getElements(java.lang.Object)

getParent

public java.lang.Object getParent(java.lang.Object element)
Returns the parent of the given element. If the parent was skipped, returns the closest ancestor that was not skipped.

Specified by:
getParent in interface org.eclipse.jface.viewers.ITreeContentProvider
Parameters:
element - The element whose parent to get.
Returns:
The given element's parent.
See Also:
ITreeContentProvider.getParent(java.lang.Object)

hasChildren

public boolean hasChildren(java.lang.Object element)
Returns whether or not the given element has any children. This overrides the underlying implementation because it does not know about the filtering, and we do not know about its internal details. So the only thing we can do is query for all the children, pass them through the filter, and see if there are any left.

Specified by:
hasChildren in interface org.eclipse.jface.viewers.ITreeContentProvider
Parameters:
element - The element being queried for children.
Returns:
Whether or not the given element has any children.
See Also:
ITreeContentProvider.hasChildren(java.lang.Object)

inputChanged

public void inputChanged(org.eclipse.jface.viewers.Viewer viewer,
                         java.lang.Object oldInput,
                         java.lang.Object newInput)
A signal sent when the content provider's input changes.

Specified by:
inputChanged in interface org.eclipse.jface.viewers.IContentProvider
Parameters:
viewer - The viewer that has this content provider.
oldInput - The previous input.
newInput - The new input.
See Also:
IContentProvider.inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)

isFiltered

public abstract boolean isFiltered(java.lang.Object element)
Returns whether or not the given element and all its descendants should be filtered out entirely.

Parameters:
element - The element to check.
Returns:
Whether or not to filter the given element and its descendants.

isSkipped

public abstract boolean isSkipped(java.lang.Object element)
Returns whether or not to skip the given element. This has no effect on the children, and simply "skips" the given node in the tree, so that its children (if not skipped) will appear in its place.

Parameters:
element - The element to check.
Returns:
Whether or not to skip the given element.

filter

protected java.lang.Object[] filter(java.lang.Object[] elements)
Filters the appropriate notes from the given list of elements. By filtering, it returns the elements' children.

Parameters:
elements - The original list of unfiltered elements.
Returns:
The filtered list.

TPTP 4.5.0 Platform Project
Internal API Specification