org.eclipse.jface.viewers

## Class ViewerFilter

- java.lang.Object
- - org.eclipse.jface.viewers.ViewerFilter

Direct Known Subclasses:
  PatternFilter, ResourcePatternFilter, ResourceWorkingSetFilter

    public abstract class ViewerFilter
    extends Object

A viewer filter is used by a structured viewer to extract a subset of elements provided by its content provider.

Subclasses must implement the `select` method and may implement the `isFilterProperty` method.

See Also:
  `IStructuredContentProvider`, `StructuredViewer`

### Constructor Summary

Constructors
`protected` `ViewerFilter()` Creates a new viewer filter.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`Object[]` `filter(Viewer viewer, Object parent, Object[] elements)` Filters the given elements for the given viewer.
`Object[]` `filter(Viewer viewer, TreePath parentPath, Object[] elements)` Filters the given elements for the given viewer.
`boolean` `isFilterProperty(Object element, String property)` Returns whether this viewer filter would be affected by a change to the given property of the given element.
`abstract boolean` `select(Viewer viewer, Object parentElement, Object element)` Returns whether the given element makes it through this filter.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ViewerFilter

    protected ViewerFilter()

Creates a new viewer filter.

### Method Detail

#### filter

    public Object[] filter(Viewer viewer,
                           Object parent,
                           Object[] elements)

Filters the given elements for the given viewer. The input array is not modified.

The default implementation of this method calls `select` on each element in the array, and returns only those elements for which `select` returns `true`.

Parameters:
  `viewer` - the viewer
  `parent` - the parent element
  `elements` - the elements to filter
Returns:
  the filtered elements

#### filter

    public Object[] filter(Viewer viewer,
                           TreePath parentPath,
                           Object[] elements)

Filters the given elements for the given viewer. The input array is not modified.

The default implementation of this method calls `filter(Viewer, Object, Object[])` with the parent from the path. Subclasses may override

Parameters:
  `viewer` - the viewer
  `parentPath` - the path of the parent element
  `elements` - the elements to filter
Returns:
  the filtered elements
Since:
  3.2

#### isFilterProperty

    public boolean isFilterProperty(Object element,
                                    String property)

Returns whether this viewer filter would be affected by a change to the given property of the given element.

The default implementation of this method returns `false`. Subclasses should reimplement.

Parameters:
  `element` - the element
  `property` - the property
Returns:
  `true` if the filtering would be affected, and `false` if it would be unaffected

#### select

    public abstract boolean select(Viewer viewer,
                                   Object parentElement,
                                   Object element)

Returns whether the given element makes it through this filter.

Parameters:
  `viewer` - the viewer
  `parentElement` - the parent element
  `element` - the element
Returns:
  `true` if element is included in the filtered set, and `false` if excluded