Package org.eclipse.ui.navigator

## Class CommonViewerSorter

- java.lang.Object
- - org.eclipse.jface.viewers.ViewerComparator
  - - org.eclipse.jface.viewers.ViewerSorter
    - - org.eclipse.jface.viewers.TreePathViewerSorter
      - - org.eclipse.ui.navigator.CommonViewerSorter

    public final class CommonViewerSorter
    extends TreePathViewerSorter

Provides an implementation of TreeViewerSorter that uses the given parent to determine the correct sort order based on the defined org.eclipse.ui.navigator.navigatorContent/navigatorContent/commonSorter elements available in the set of visible content extensions.

The CommonViewerSorter must be assigned a `INavigatorContentService` to drive its sorting algorithm. Without a valid content service, the sorter will return the default ordering.

A CommonViewerSorter may not be attached to more than one CommonViewer.

Since:
  3.2

### Field Summary

### Fields inherited from class org.eclipse.jface.viewers.ViewerSorter

`collator`

### Constructor Summary

Constructors
`CommonViewerSorter()`

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `category​(Object element)` Returns the category of the given element.
`int` `compare​(Viewer viewer, TreePath parentPath, Object e1, Object e2)` Compare the given elements that will have the given parent path when they are added to the viewer.
`boolean` `isSorterProperty​(Object element, String property)` Returns whether this viewer sorter would be affected by a change to the given property of the given element.
`boolean` `isSorterProperty​(TreePath parentPath, Object element, String property)` Returns whether this viewer sorter would be affected by a change to the given property of the given element.
`void` `setContentService​(INavigatorContentService aContentService)` Create a sorter service attached to the given content service.

### Methods inherited from class org.eclipse.jface.viewers.TreePathViewerSorter

`category, sort`

### Methods inherited from class org.eclipse.jface.viewers.ViewerSorter

`getCollator`

### Methods inherited from class org.eclipse.jface.viewers.ViewerComparator

`compare, getComparator, sort`

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

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

### Constructor Detail

#### CommonViewerSorter

    public CommonViewerSorter()

### Method Detail

#### setContentService

    public void setContentService​(INavigatorContentService aContentService)

Create a sorter service attached to the given content service.

Parameters:
  `aContentService` - The content service used by the viewer that will use this sorter service.
Since:
  3.3

#### category

    public int category​(Object element)

Description copied from class: `ViewerComparator`
Returns the category of the given element. The category is a number used to allocate elements to bins; the bins are arranged in ascending numeric order. The elements within a bin are arranged via a second level sort criterion.

The default implementation of this framework method returns `0`. Subclasses may reimplement this method to provide non-trivial categorization.

Overrides:
  `category` in class `ViewerComparator`
Parameters:
  `element` - the element
Returns:
  the category

#### compare

    public int compare​(Viewer viewer,
                       TreePath parentPath,
                       Object e1,
                       Object e2)

Description copied from class: `TreePathViewerSorter`
Compare the given elements that will have the given parent path when they are added to the viewer. The provided path is relative to the viewer input. The parent path will be `null` when the elements are root elements.

By default, the this method calls `ViewerSorter#sort(Viewer, Object[])`. Subclasses may override.

Overrides:
  `compare` in class `TreePathViewerSorter`
Parameters:
  `viewer` - the viewer
  `parentPath` - the parent path for the two elements
  `e1` - the first element
  `e2` - the second element
Returns:
  a negative number if the first element is less than the second element; the value `0` if the first element is equal to the second element; and a positive

#### isSorterProperty

    public boolean isSorterProperty​(Object element,
                                    String property)

Description copied from class: `ViewerComparator`
Returns whether this viewer sorter would be affected by a change to the given property of the given element.

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

Overrides:
  `isSorterProperty` in class `ViewerComparator`
Parameters:
  `element` - the element
  `property` - the property
Returns:
  `true` if the sorting would be affected, and `false` if it would be unaffected

#### isSorterProperty

    public boolean isSorterProperty​(TreePath parentPath,
                                    Object element,
                                    String property)

Description copied from class: `TreePathViewerSorter`
Returns whether this viewer sorter would be affected by a change to the given property of the given element. The provided path is relative to the viewer input. The parent path will be `null` when the elements are root elements.

The default implementation of this method calls `ViewerSorter#isSorterProperty(Object, String)`. Subclasses may reimplement.

Overrides:
  `isSorterProperty` in class `TreePathViewerSorter`
Parameters:
  `parentPath` - the parent path of the element
  `element` - the element
  `property` - the property
Returns:
  `true` if the sorting would be affected, and `false` if it would be unaffected