Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jface.viewers
Class ViewerSorter

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

Direct Known Subclasses:
  ResourceSorter, WorkbenchViewerSorter

public class ViewerSorter
extends Object

A viewer sorter is used by a structured viewer to reorder the elements provided by its content provider.

The default `compare` method compares elements using two steps. The first step uses the values returned from `category`. By default, all elements are in the same category. The second level is based on a case insensitive compare of the strings obtained from the content viewer's label provider via `ILabelProvider.getText`.

Subclasses may implement the `isSorterProperty` method; they may reimplement the `category` method to provide categorization; and they may override the `compare` methods to provide a totally different way of sorting elements.

See Also:
  `IStructuredContentProvider`, `StructuredViewer`

Field Summary
`protected Collator` | `collator` The collator used to sort strings.

Constructor Summary
`ViewerSorter()` Creates a new viewer sorter, which uses the default collator to sort strings.
`ViewerSorter(Collator collator)` Creates a new viewer sorter, which uses the given collator to sort strings.

Method Summary
`int` | `category(Object element)` Returns the category of the given element.
`int` | `compare(Viewer viewer, Object e1, Object e2)` Returns a negative, zero, or positive number depending on whether the first element is less than, equal to, or greater than the second element.
`Collator` | `getCollator()` Returns the collator used to sort strings.
`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.
`void` | `sort(Viewer viewer, Object[] elements)` Sorts the given elements in-place, modifying the given array.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### collator

    protected Collator collator

  The collator used to sort strings.

Constructor Detail

### ViewerSorter

    public ViewerSorter()

  Creates a new viewer sorter, which uses the default collator to sort strings.

### ViewerSorter

    public ViewerSorter(Collator collator)

  Creates a new viewer sorter, which uses the given collator to sort strings.

Parameters:
  `collator` - the collator to use to sort strings

Method Detail

### category

    public int category(Object element)

  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.

  Parameters:
    `element` - the element
  Returns:
    the category

### compare

    public int compare(Viewer viewer,
                       Object e1,
                       Object e2)

  Returns a negative, zero, or positive number depending on whether the first element is less than, equal to, or greater than the second element.

  The default implementation of this method is based on comparing the elements' categories as computed by the `category` framework method. Elements within the same category are further subjected to a case insensitive compare of their label strings, either as computed by the content viewer's label provider, or their `toString` values in other cases. Subclasses may override.

  Parameters:
    `viewer` - the viewer
    `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 number if the first element is greater than the second element

### getCollator

    public Collator getCollator()

  Returns the collator used to sort strings.

  Returns:
    the collator used to sort strings

### isSorterProperty

    public 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.

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

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

### sort

    public void sort(Viewer viewer,
                     Object[] elements)

  Sorts the given elements in-place, modifying the given array.

  The default implementation of this method uses the java.util.Arrays#sort algorithm on the given array, calling `compare` to compare elements.

  Subclasses may reimplement this method to provide a more optimized implementation.

  Parameters:
    `viewer` - the viewer
    `elements` - the elements to sort

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.