Package org.eclipse.jface.viewers

# Class ViewerFilter

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

Direct Known Subclasses:
  `PatternFilter`, `PatternFilter`, `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
Modifier
Constructor
Description
`protected`
`ViewerFilter()`
Creates a new viewer filter.

## Method Summary

Modifier and Type
Method
Description
`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 Details

### ViewerFilter

protected ViewerFilter()
Creates a new viewer filter.

## Method Details

### 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