1 /*
2 * Copyright (c) 2003-2008 by Cosylab d. d.
3 *
4 * This file is part of CosyBeans-Common.
5 *
6 * CosyBeans-Common is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * CosyBeans-Common is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with CosyBeans-Common. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 package com.cosylab.gui.components.table;
21
22 /**
23 * Default implementation of the RowComparator.
24 *
25 * @author <a href="mailto:jaka.bobnar@cosylab.com">Jaka Bobnar</a>
26 * @version $Id: DefaultRowComparator.java,v 1.5 2008-04-22 12:28:40 jbobnar Exp $
27 *
28 */
29 public class DefaultRowComparator implements RowComparator {
30
31 int column = 0;
32 boolean descending;
33
34
35 public DefaultRowComparator(int col, boolean desc)
36 {
37 column = col;
38 descending = desc;
39 }
40
41 /* (non-Javadoc)
42 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
43 */
44 public int compare(TableRow o1, TableRow o2)
45 {
46 TableRow r1 = (TableRow)o1;
47 TableRow r2 = (TableRow)o2;
48
49 if (descending) {
50 return r2.compareTo(r1, column);
51 }
52
53 return r1.compareTo(r2, column);
54 }
55
56 /*
57 * (non-Javadoc)
58 * @see com.cosylab.gui.components.table.RowComparator#setColumn(int)
59 */
60 public void setColumn(int column) {
61 this.column = column;
62 }
63
64 /*
65 * (non-Javadoc)
66 * @see com.cosylab.gui.components.table.RowComparator#setDescending(boolean)
67 */
68 public void setDescending(boolean descending) {
69 this.descending = descending;
70 }
71
72 /*
73 * (non-Javadoc)
74 * @see com.cosylab.gui.components.table.RowComparator#getColumn()
75 */
76 public int getColumn() {
77 return column;
78 }
79
80 /*
81 * (non-Javadoc)
82 * @see com.cosylab.gui.components.table.RowComparator#getDescending()
83 */
84 public boolean getDescending() {
85 return descending;
86 }
87
88 }