# Interface ITreeSelection

All Superinterfaces:
  `ISelection, IStructuredSelection, Iterable`

All Known Implementing Classes:
  `TreeSelection`

public interface ITreeSelection extends IStructuredSelection
A selection containing tree paths.

It is recommended that clients do not implement this interface but instead use the standard implementation of this interface, `TreeSelection`. `TreeSelection` adds API for getting the `IElementComparer` of a selection (if available). This is important for clients who want to create a slightly modified tree selection based on an existing tree selection. The recommended coding pattern in this case is as follows:

    ITreeSelection selection = (ITreeSelection)treeViewer.getSelection();
    TreePath[] paths = selection.getPaths();
    IElementComparer comparer = null;
    if (selection instanceof TreeSelection) {
      comparer = ((TreeSelection)selection).getElementComparer();
    }
    TreePath[] modifiedPaths = ... // modify as required
    TreeSelection modifiedSelection = new TreeSelection(modifiedPaths, comparer);

See bugs 135818 and 133375 for details.

Since:
  3.2

## Method Summary

Modifier and Type
Method
Description
`TreePath[]`
`getPaths()`
Returns the paths in this selection
`TreePath[]`
`getPathsFor(Object element)`
Returns the paths in this selection whose last segment is equal to the given element

### Methods inherited from interface ISelection

`isEmpty`

### Methods inherited from interface IStructuredSelection

`getFirstElement, iterator, size, stream, toArray, toList`

### Methods inherited from interface Iterable

`forEach, spliterator`

## Method Details

### getPaths

TreePath[] getPaths()
Returns the paths in this selection

Returns:
  the paths in this selection

### getPathsFor

TreePath[] getPathsFor(Object element)
Returns the paths in this selection whose last segment is equal to the given element

Parameters:
  `element` - the element to get the tree paths for
Returns:
  the array of tree paths