Class TreePathViewerSorter

Direct Known Subclasses:
CommonViewerSorter

public class TreePathViewerSorter extends ViewerSorter
A viewer sorter that is provided extra context in the form of the path of the parent element of the elements being sorted.
Since:
3.2
  • Constructor Details

    • TreePathViewerSorter

      public TreePathViewerSorter()
  • Method Details

    • category

      public int category(TreePath parentPath, Object element)
      Provide a category for the given element that will have the given parent path when it is 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#category(Object). Subclasses may override.

      Parameters:
      parentPath - the parent path for the element
      element - the element
      Returns:
      the category of the element
    • compare

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

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

      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
    • sort

      public void sort(Viewer viewer, TreePath parentPath, Object[] elements)
      Sorts the given elements in-place, modifying the given array. 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 uses the java.util.Arrays#sort algorithm on the given array, calling compare(Viewer, TreePath, Object, Object) to compare elements.

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

      Parameters:
      viewer - the viewer
      parentPath - the parent path of the given elements
      elements - the elements to sort