2 |
26 Feb 07 |
jari |
1 |
/* |
2 |
26 Feb 07 |
jari |
* Created on Jun 1, 2005 |
2 |
26 Feb 07 |
jari |
3 |
*/ |
2 |
26 Feb 07 |
jari |
4 |
package org.tigr.microarray.mev.cluster.gui.impl.usc; |
2 |
26 Feb 07 |
jari |
5 |
|
2 |
26 Feb 07 |
jari |
6 |
import java.util.Comparator; |
2 |
26 Feb 07 |
jari |
7 |
import java.util.Vector; |
2 |
26 Feb 07 |
jari |
8 |
|
2 |
26 Feb 07 |
jari |
9 |
/** |
2 |
26 Feb 07 |
jari |
* @author iVu |
2 |
26 Feb 07 |
jari |
11 |
*/ |
2 |
26 Feb 07 |
jari |
12 |
public class USCTableSorter implements Comparator { |
2 |
26 Feb 07 |
jari |
13 |
// |
2 |
26 Feb 07 |
jari |
14 |
private int colIndex; |
2 |
26 Feb 07 |
jari |
15 |
private boolean ascending; |
2 |
26 Feb 07 |
jari |
16 |
|
2 |
26 Feb 07 |
jari |
17 |
|
2 |
26 Feb 07 |
jari |
18 |
/** |
2 |
26 Feb 07 |
jari |
19 |
* |
2 |
26 Feb 07 |
jari |
* @param colIndexP |
2 |
26 Feb 07 |
jari |
* @param ascendingP |
2 |
26 Feb 07 |
jari |
22 |
*/ |
2 |
26 Feb 07 |
jari |
23 |
public USCTableSorter(int colIndexP, boolean ascendingP) { |
2 |
26 Feb 07 |
jari |
24 |
this.colIndex = colIndexP; |
2 |
26 Feb 07 |
jari |
25 |
this.ascending = ascendingP; |
2 |
26 Feb 07 |
jari |
26 |
}//end constructor |
2 |
26 Feb 07 |
jari |
27 |
|
2 |
26 Feb 07 |
jari |
28 |
|
2 |
26 Feb 07 |
jari |
29 |
|
2 |
26 Feb 07 |
jari |
30 |
public int compare(Object a, Object b) { |
2 |
26 Feb 07 |
jari |
31 |
Vector v1 = (Vector) a; |
2 |
26 Feb 07 |
jari |
32 |
Vector v2 = (Vector) b; |
2 |
26 Feb 07 |
jari |
33 |
Object o1 = v1.get(colIndex); |
2 |
26 Feb 07 |
jari |
34 |
Object o2 = v2.get(colIndex); |
2 |
26 Feb 07 |
jari |
35 |
|
2 |
26 Feb 07 |
jari |
36 |
if( o1 instanceof String && ((String)o1).length() == 0 ) { |
2 |
26 Feb 07 |
jari |
37 |
o1 = null; |
2 |
26 Feb 07 |
jari |
38 |
} |
2 |
26 Feb 07 |
jari |
39 |
if( o2 instanceof String && ((String)o2).length() == 0 ) { |
2 |
26 Feb 07 |
jari |
40 |
o2 = null; |
2 |
26 Feb 07 |
jari |
41 |
} |
2 |
26 Feb 07 |
jari |
42 |
|
2 |
26 Feb 07 |
jari |
43 |
if( o1 == null && o2 == null ) { |
2 |
26 Feb 07 |
jari |
44 |
return 0; |
2 |
26 Feb 07 |
jari |
45 |
} else if(o1 == null) { |
2 |
26 Feb 07 |
jari |
46 |
return 1; |
2 |
26 Feb 07 |
jari |
47 |
} else if(o2 == null) { |
2 |
26 Feb 07 |
jari |
48 |
return -1; |
2 |
26 Feb 07 |
jari |
49 |
} else if(o1 instanceof Comparable) { |
2 |
26 Feb 07 |
jari |
50 |
if(ascending) { |
2 |
26 Feb 07 |
jari |
51 |
return ((Comparable) o1).compareTo(o2); |
2 |
26 Feb 07 |
jari |
52 |
} else { |
2 |
26 Feb 07 |
jari |
53 |
return ((Comparable) o2).compareTo(o1); |
2 |
26 Feb 07 |
jari |
54 |
} |
2 |
26 Feb 07 |
jari |
55 |
} else { |
2 |
26 Feb 07 |
jari |
56 |
if(ascending) { |
2 |
26 Feb 07 |
jari |
57 |
return o1.toString().compareTo(o2.toString()); |
2 |
26 Feb 07 |
jari |
58 |
} else { |
2 |
26 Feb 07 |
jari |
59 |
return o2.toString().compareTo(o1.toString()); |
2 |
26 Feb 07 |
jari |
60 |
} |
2 |
26 Feb 07 |
jari |
61 |
} |
2 |
26 Feb 07 |
jari |
62 |
}//compare |
2 |
26 Feb 07 |
jari |
63 |
}//end class |