1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.commons.gui.table;
21
22 /***
23 * Defines the requirements for tables that can be sorted.
24 *
25 * @see TableLayout
26 */
27 public interface SortableModel
28 {
29
30 enum Order {
31
32 ASCENDING { public Order next() { return DESCENDING; } },
33 DESCENDING { public Order next() { return UNSORTED; } },
34 UNSORTED { public Order next() { return ASCENDING; } };
35
36 public abstract Order next();
37
38 };
39
40 /***
41 * Returns the class of the data objects in column at
42 * <code>index</code>.
43 */
44 Class getColumnClass(int index);
45
46 /***
47 * Returns the index of the column that was sorted last.
48 */
49 int getSortedColumn();
50
51 public Order getSortOrder();
52
53 /***
54 * Sets the maintain sort order flag.
55 */
56 void setMaintainSortOrder(boolean maintainSortOrder);
57
58 public void setSortOrder(Order newValue);
59
60 /***
61 * Sort the table by <code>column</code>.
62 *
63 * @param column the column to sort
64 * @param sortOrder the sort order to sory by
65 * @param revert automatically revert sort order
66 * @return order the new sort order
67 */
68 Order sortByColumn(int column, Order sortOrder, boolean revert);
69
70 }