Class ResourceComparator

java.lang.Object
org.eclipse.jface.viewers.ViewerComparator
org.eclipse.ui.views.navigator.ResourceComparator

public class ResourceComparator extends ViewerComparator
Comparator for viewers that display items of type IResource. The sorter supports two sort criteria:

NAME: Folders are given order precedence, followed by files. Within these two groups resources are ordered by name. All name comparisons are case-insensitive.

TYPE: Folders are given order precedence, followed by files. Within these two groups resources are ordered by extension. All extension comparisons are case-insensitive.

This class may be instantiated; it is not intended to be subclassed.

Since:
3.3
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Constructor argument value that indicates to sort items by name.
    static final int
    Constructor argument value that indicates to sort items by extension.
  • Constructor Summary

    Constructors
    Constructor
    Description
    ResourceComparator(int criteria)
    Creates a resource sorter that will use the given sort criteria.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected int
    Returns an integer value representing the relative sort priority of the given element based on its class.
    int
    compare(Viewer viewer, Object o1, Object o2)
    Returns a negative, zero, or positive number depending on whether the first element is less than, equal to, or greater than the second element.
    protected int
    compareClass(Object element1, Object element2)
    Returns a number reflecting the collation order of the given elements based on their class.
    protected int
    compareNames(IResource resource1, IResource resource2)
    Returns a number reflecting the collation order of the given resources based on their resource names.
    protected int
    compareTypes(IResource resource1, IResource resource2)
    Returns a number reflecting the collation order of the given resources based on their respective file extensions.
    int
    Returns the sort criteria of this sorter.
    void
    setCriteria(int criteria)
    Sets the sort criteria of this sorter.

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

    category, getComparator, isSorterProperty, sort

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NAME

      public static final int NAME
      Constructor argument value that indicates to sort items by name.
      See Also:
    • TYPE

      public static final int TYPE
      Constructor argument value that indicates to sort items by extension.
      See Also:
  • Constructor Details

    • ResourceComparator

      public ResourceComparator(int criteria)
      Creates a resource sorter that will use the given sort criteria.
      Parameters:
      criteria - the sort criterion to use: one of NAME or TYPE
  • Method Details

    • classComparison

      protected int classComparison(Object element)
      Returns an integer value representing the relative sort priority of the given element based on its class.
      • resources (IResource) - 2
      • project references (ProjectReference) - 1
      • everything else - 0
      Parameters:
      element - the element
      Returns:
      the sort priority (larger numbers means more important)
    • compare

      public int compare(Viewer viewer, Object o1, Object o2)
      Description copied from class: ViewerComparator
      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.

      Overrides:
      compare in class ViewerComparator
      Parameters:
      viewer - the viewer
      o1 - the first element
      o2 - 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
    • compareClass

      protected int compareClass(Object element1, Object element2)
      Returns a number reflecting the collation order of the given elements based on their class.
      Parameters:
      element1 - the first element to be ordered
      element2 - the second element to be ordered
      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
    • compareNames

      protected int compareNames(IResource resource1, IResource resource2)
      Returns a number reflecting the collation order of the given resources based on their resource names.
      Parameters:
      resource1 - the first resource element to be ordered
      resource2 - the second resource element to be ordered
      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
    • compareTypes

      protected int compareTypes(IResource resource1, IResource resource2)
      Returns a number reflecting the collation order of the given resources based on their respective file extensions. Resources with the same file extension will be collated based on their names.
      Parameters:
      resource1 - the first resource element to be ordered
      resource2 - the second resource element to be ordered
      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
    • getCriteria

      public int getCriteria()
      Returns the sort criteria of this sorter.
      Returns:
      the sort criterion: one of NAME or TYPE
    • setCriteria

      public void setCriteria(int criteria)
      Sets the sort criteria of this sorter.
      Parameters:
      criteria - the sort criterion: one of ResourceSorter.NAME or ResourceSorter.TYPE