From 49d1d9fe0ad8204d324828db720bc1d43feb754f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Sim=C3=A3o?= Date: Wed, 17 Mar 2010 11:25:32 +0000 Subject: [PATCH] git-svn-id: https://svn.coded.pt/svn/SIPRP@1224 bb69d46d-e84e-40c8-a05a-06db0d633741 --- trunk/SIPRPSoft/src/leaf/ui/LeafWindow.java | 2 +- .../src/siprp/clientes/ImagePanel.java | 4 +- .../src/com/evolute/adt/OrderedMap.java | 8 +- trunk/common/src/com/evolute/adt/Pair.java | 94 ++++++++++++++----- 4 files changed, 81 insertions(+), 27 deletions(-) diff --git a/trunk/SIPRPSoft/src/leaf/ui/LeafWindow.java b/trunk/SIPRPSoft/src/leaf/ui/LeafWindow.java index 3e30df5e..bbf62af3 100755 --- a/trunk/SIPRPSoft/src/leaf/ui/LeafWindow.java +++ b/trunk/SIPRPSoft/src/leaf/ui/LeafWindow.java @@ -559,7 +559,7 @@ public class LeafWindow extends JFrame implements TrackableWindow, ListSelection while( listRunLater.size() > 0 ) { Pair p = listRunLater.poll(); - runAction( p.getCar(), p.getCdr() ); + runAction( p.getLeft(), p.getRight() ); } } diff --git a/trunk/SIPRPSoft/src/siprp/clientes/ImagePanel.java b/trunk/SIPRPSoft/src/siprp/clientes/ImagePanel.java index f134fee6..2dc979c3 100644 --- a/trunk/SIPRPSoft/src/siprp/clientes/ImagePanel.java +++ b/trunk/SIPRPSoft/src/siprp/clientes/ImagePanel.java @@ -22,6 +22,7 @@ import javax.swing.JFileChooser; import javax.swing.JPanel; import com.evolute.utils.dataui.ControllableComponent; +import com.evolute.utils.error.ErrorLogger; public class ImagePanel extends JPanel implements MouseListener, ControllableComponent { @@ -94,7 +95,8 @@ public class ImagePanel extends JPanel implements MouseListener, ControllableCom } } catch( IOException e ) { - e.printStackTrace(); + e.printStackTrace( System.out ); + ErrorLogger.logException( e ); } refresh(); } diff --git a/trunk/common/src/com/evolute/adt/OrderedMap.java b/trunk/common/src/com/evolute/adt/OrderedMap.java index f16e4425..b33585a4 100644 --- a/trunk/common/src/com/evolute/adt/OrderedMap.java +++ b/trunk/common/src/com/evolute/adt/OrderedMap.java @@ -229,7 +229,7 @@ public class OrderedMap implements Iterable else { Pair previousEntry = equalEntries.get( 0 ); - if( previousEntry.getCar().equals( entry.getCar() ) ) + if( previousEntry.getLeft().equals( entry.getLeft() ) ) { if( i < (sortedList.size() - 1) ) { @@ -248,8 +248,8 @@ public class OrderedMap implements Iterable List DEBUGLIST = new Vector(); for( Pair pair : equalEntries ) { - toSubOrder.add( pair.getCdr() ); - DEBUGLIST.add( pair.getCar() ); + toSubOrder.add( pair.getRight() ); + DEBUGLIST.add( pair.getLeft() ); } order( colNumbers, currentColumnIndex + 1, 0, toSubOrder.size() - 1, toSubOrder ); for( int j = 0; j < toSubOrder.size(); ++j ) @@ -267,7 +267,7 @@ public class OrderedMap implements Iterable for( int i = 0; i < sortedList.size(); ++i ) { Pair value = sortedList.get( i ); - order.set( i, value.getCdr() ); + order.set( i, value.getRight() ); } } } diff --git a/trunk/common/src/com/evolute/adt/Pair.java b/trunk/common/src/com/evolute/adt/Pair.java index 28f28b40..ce01de8a 100644 --- a/trunk/common/src/com/evolute/adt/Pair.java +++ b/trunk/common/src/com/evolute/adt/Pair.java @@ -1,48 +1,100 @@ package com.evolute.adt; -public class Pair, CdrClass> implements Comparable> +public class Pair implements Comparable> { - - private final CarClass car; - private final CdrClass cdr; - - public Pair(CarClass car, CdrClass cdr) + + private final CARCLASS left; + + private final CDRCLASS right; + + public Pair( CARCLASS leftValue, CDRCLASS rightValue ) { - this.car = car; - this.cdr = cdr; + this.left = leftValue; + this.right = rightValue; } - public CarClass getCar() + public CARCLASS getLeft() { - return car; + return left; } - public CdrClass getCdr() + public CDRCLASS getRight() { - return cdr; + return right; + } + + @SuppressWarnings("unchecked") + @Override + public boolean equals(Object obj) + { + boolean result = obj != null; + if( result ) + { + if( obj instanceof Pair ) + { + result = ( left == null ? (((Pair) obj).left == null ) : (left.equals(((Pair) obj).left)) ); + result &= ( right == null ? (((Pair) obj).right == null ) : (right.equals(((Pair) obj).right)) ); + } + else + { + result = false; + } + } + return result; } @Override - public int compareTo( Pair toPair ) + public int compareTo(Pair pair) { - if(toPair == null) + int result = compare( left, pair == null ? null : pair.left ); + if( result == 0 ) { - return 1; + result = compare( right, pair == null ? null : pair.right ); } - else if(car == null && toPair.getCar() == null) + return result; + } + + @SuppressWarnings("unchecked") + private int compare( Object a, Object b ) + { + int result = a == null ? (b == null ? 0 : -1 ) : ( b == null ? 1 : 0 ); + if( a != null && b != null ) { - return 0; + if( a.getClass().equals( b.getClass() ) && (a instanceof Comparable) ) + { + ((Comparable)a).compareTo(b); + } + else + { + result = compare(a.toString(),b.toString()); + } } - else + return result; + } + + @Override + public int hashCode() + { + int result = super.hashCode(); + if( left != null ) + { + result = left.hashCode(); + if( right != null ) + { + result ^= right.hashCode(); + } + } + else if( right != null ) { - return getCar().compareTo( toPair.getCar() ); + result = right.hashCode(); } + return result; } @Override public String toString() { - return "(" + (car == null ? "" : car.toString()) + ", "+ (cdr == null ? "" : cdr.toString()) + ")"; + return "<"+left+","+right+">"; } - + }