dsto.dfc.swt.viewers
Class DataBeanTableSorter

java.lang.Object
  extended by org.eclipse.jface.viewers.ViewerComparator
      extended by org.eclipse.jface.viewers.ViewerSorter
          extended by dsto.dfc.swt.viewers.DataBeanTableSorter
All Implemented Interfaces:
org.eclipse.swt.widgets.Listener

public class DataBeanTableSorter
extends org.eclipse.jface.viewers.ViewerSorter
implements org.eclipse.swt.widgets.Listener

Enables auto sorting of a table of IDataBean's by clicking table headers. Holding shift or ctrl down while clicking preserves the current sorting, by adding the clicked column to the sort list rather than clearing it.


Field Summary
 
Fields inherited from class org.eclipse.jface.viewers.ViewerSorter
collator
 
Constructor Summary
DataBeanTableSorter(org.eclipse.jface.viewers.TableViewer tableView)
          Create a new instance.
 
Method Summary
 void addColumn(String property, int order)
          Add a column to the sort list.
 void addDefaultColumn(String property, int order)
          Add a column to the default list used when no columns are selected for sorting.
 void clearColumns()
          Clear the sort order to the default.
 int compare(org.eclipse.jface.viewers.Viewer viewer, Object e1, Object e2)
           
protected  int compareBeans(IDataBean b1, IDataBean b2, List options)
           
protected  int compareBeans(IDataBean b1, IDataBean b2, String property)
           
 void handleEvent(org.eclipse.swt.widgets.Event e)
           
 boolean isSorterProperty(Object element, String property)
           
 void setComparator(String property, Comparator comparator)
          Optionally set the comparator used to sort a given property.
 
Methods inherited from class org.eclipse.jface.viewers.ViewerSorter
getCollator
 
Methods inherited from class org.eclipse.jface.viewers.ViewerComparator
category, getComparator, sort
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataBeanTableSorter

public DataBeanTableSorter(org.eclipse.jface.viewers.TableViewer tableView)
Create a new instance.

Parameters:
tableView - The table view to sort. The tableView's columns should be fully configured and the column properties (see ColumnViewer.setColumnProperties(java.lang.String[])) set to be the data bean properties that are displayed in each column.
See Also:
addDefaultColumn(String, int), addColumn(String, int), setComparator(String, Comparator)
Method Detail

addColumn

public void addColumn(String property,
                      int order)
Add a column to the sort list.

Parameters:
property - The property sort by.
order - The sort order: 1 = ascending. -1 = descending.
See Also:
clearColumns()

addDefaultColumn

public void addDefaultColumn(String property,
                             int order)
Add a column to the default list used when no columns are selected for sorting.

Parameters:
property - The property sort by.
order - The sort order: 1 = ascending. -1 = descending.

clearColumns

public void clearColumns()
Clear the sort order to the default.

See Also:
addColumn(String, int)

setComparator

public void setComparator(String property,
                          Comparator comparator)
Optionally set the comparator used to sort a given property.


isSorterProperty

public boolean isSorterProperty(Object element,
                                String property)
Overrides:
isSorterProperty in class org.eclipse.jface.viewers.ViewerComparator

compare

public int compare(org.eclipse.jface.viewers.Viewer viewer,
                   Object e1,
                   Object e2)
Overrides:
compare in class org.eclipse.jface.viewers.ViewerComparator

compareBeans

protected int compareBeans(IDataBean b1,
                           IDataBean b2,
                           List options)

compareBeans

protected int compareBeans(IDataBean b1,
                           IDataBean b2,
                           String property)

handleEvent

public void handleEvent(org.eclipse.swt.widgets.Event e)
Specified by:
handleEvent in interface org.eclipse.swt.widgets.Listener


Copyright © 2008 Commonwealth of Australia