Revision 44259 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/Utils.java

View differences:

Utils.java
25 25
        return new Comparator() {
26 26
            @Override
27 27
            public int compare(Object o1, Object o2) {
28
                if (o1 instanceof Double) {
29
                    return Double.compare((Double) o1, (Double) o2);
30
                } else if (o1 instanceof Float) {
31
                    return Double.compare((Float) o1, (Float) o2);
32
                } else if (o1 instanceof Number) {
33
                    return Double.compare( getLong((Number) o1), getLong((Number) o2));
28
                if (o1 instanceof Integer && o2 instanceof Number ) {
29
                    return Long.compare((Integer) o1, ((Number)o2).intValue());
30
                    
31
                } else if (o1 instanceof Long && o2 instanceof Number ) {
32
                    return Long.compare((Long) o1, ((Number)o2).longValue());
33
                    
34
                } else if (o1 instanceof Double && o2 instanceof Number ) {
35
                    return Double.compare((Double) o1, ((Number)o2).doubleValue());
36
                    
37
                } else if (o1 instanceof Float && o2 instanceof Number) {
38
                    return Double.compare((Float) o1, ((Number)o2).floatValue());
39
                    
40
                } else if (o1 instanceof Number && o2 instanceof Number) {
41
                    return Double.compare( getDouble((Number) o1), getDouble((Number) o2));
42
                    
43
                } else if (o1 instanceof String && o2 instanceof String) {
44
                    return ((String) o1).compareToIgnoreCase((String)o2);
45
                    
34 46
                } else {
35
                    return Objects.toString(o1, "").compareTo(Objects.toString(o2, ""));
47
                    try {
48
                        return ((Comparable) o1).compareTo((Comparable)o2);
49
                    } catch(Exception ex) {
50
                        return Objects.toString(o1, "").compareTo(Objects.toString(o2, ""));
51
                    }
36 52
                }
37 53
            }
38 54
        };
39 55
    }
40 56
    
41
    private static long getLong(Number n) {
57
    private static double getDouble(Number n) {
42 58
        if( n==null ) {
43 59
            return 0;
44 60
        }
45
        return n.longValue();
61
        return n.doubleValue();
46 62
    }
47 63

  
48 64
    public static String repr(Object value)  {

Also available in: Unified diff