/*
* Created on 20.06.2005
*
*/
package org.jdesktop.swingx.util;
import java.awt.Dimension;
import java.awt.Point;
import java.util.Comparator;
/**
* A custom comparator implementation for Point and Dimension.
*
* @author Jeanette Winzenburg
*/
public class XYComparator implements Comparator {
public int compare(Object o1, Object o2) {
if ((o1 instanceof Point) && (o2 instanceof Point)) {
return comparePoint((Point) o1, (Point) o2);
}
if ((o1 instanceof Dimension) && (o2 instanceof Dimension)) {
return compareDimension((Dimension) o1, (Dimension) o2);
}
return 0; // can't decide
}
private int compareDimension(Dimension dim1, Dimension dim2) {
if (dim1.width == dim2.width) {
if (dim1.height == dim2.height) return 0;
return dim1.height < dim2.height ? -1 : 1;
}
return dim1.width < dim2.width ? -1 : 1;
}
private int comparePoint(Point p1, Point p2) {
if (p1.x == p2.x) {
if (p1.y == p2.y) return 0;
return p1.y < p2.y ? -1 : 1;
}
return p1.x < p2.x ? -1 : 1;
}
}