mev-4.0.01/source/org/tigr/microarray/mev/cluster/gui/impl/usc/USCTableSorter.java

Code
Comments
Other
Rev Date Author Line
2 26 Feb 07 jari 1 /*
2 26 Feb 07 jari 2  * 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 10  * @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 20      * @param colIndexP
2 26 Feb 07 jari 21      * @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