Eclipse Platform
2.0

org.eclipse.jface.viewers
Class ViewerSorter

java.lang.Object
  |
  +--org.eclipse.jface.viewers.ViewerSorter
Direct Known Subclasses:
ResourceSorter, WorkbenchViewerSorter

public abstract 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
protected ViewerSorter()
          Creates a new viewer sorter, which uses the default collator to sort strings.
protected 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

protected ViewerSorter()
Creates a new viewer sorter, which uses the default collator to sort strings.


ViewerSorter

protected 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 JDK 1.2 Collections.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

Eclipse Platform
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.