A viewer comparator is used by a StructuredViewer 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 uses strings obtained from the content viewer's label
provider via ILabelProvider.getText().
The strings are compared using a comparator from Policy.getComparator()
which by default does a case sensitive string comparison.

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.

Method Detail

getComparator

category

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

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