package org.lttpp.eemory.ui; import java.awt.Toolkit; import org.lttpp.eemory.util.ConstantsUtil; public class GeomPoint { private int x; private int y; public GeomPoint() { this(0, 0); } public GeomPoint(final int x, final int y) { this.x = x; this.y = y; } public GeomPoint(final GeomPoint point) { x = point.getX(); y = point.getY(); } public int getX() { return x; } public void setX(final int x) { this.x = x; } public int getY() { return y; } public void setY(final int y) { this.y = y; } public void setLocation(final int x, final int y) { setX(x); setY(y); } public boolean isMovable(final int x, final int y) { if (getX() + x >= 0 && getX() + x <= Toolkit.getDefaultToolkit().getScreenSize().getWidth() && getY() + y >= 0 && getY() + y <= Toolkit.getDefaultToolkit().getScreenSize().getHeight()) { return true; } return false; } public GeomPoint move(final int x, final int y) { if (isMovable(x, y)) { this.x = getX() + x; this.y = getY() + y; } return this; } public void clear() { x = 0; y = 0; } @Override public int hashCode() { return getX() * getX() + getY() * getY(); } @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (!(obj instanceof GeomPoint)) { return false; } GeomPoint p = (GeomPoint) obj; if (x == p.x && y == p.y) { return true; } return false; } @Override public Object clone() { GeomPoint o = null; try { o = (GeomPoint) super.clone(); } catch (CloneNotSupportedException e) { } return o; } @Override public String toString() { return ConstantsUtil.LEFT_PARENTHESIS + getX() + ConstantsUtil.COMMA + getY() + ConstantsUtil.RIGHT_PARENTHESIS; } }