&& ((mCurrentPoint.x != location.x) || (mCurrentPoint.y != location.y))) {
if (!DragSource.isDragImageSupported()) {
Graphics2D g2 = (Graphics2D) getGraphics();
Rectangle2D old = (Rectangle2D) mGhostRect.clone();
// Remember where you are about to draw the new ghost image
mGhostRect.setRect(location.x + 20, location.y, mGhostImage
.getWidth(), mGhostImage.getHeight());
Rectangle2D target = (Rectangle2D) old.clone();
target.add(mGhostRect);
BufferedImage bf = new BufferedImage((int) target.getWidth(),
(int) target.getHeight(), BufferedImage.TYPE_INT_ARGB_PRE);
Graphics2D g2b = bf.createGraphics();
int width = ((int) (mTreeImage.getWidth() - (target.getX() + target
.getWidth()))) > 0 ? (int) target.getWidth()
: (int) (mTreeImage.getWidth() - (target.getX()));
int height = ((int) (mTreeImage.getHeight() - (target.getY() + target
.getHeight()))) > 0 ? (int) target.getHeight()
: (int) (mTreeImage.getHeight() - (target.getY()));
if (width > 0 && height > 0) {
g2b.drawImage(mTreeImage.getSubimage((int) target.getX(),
(int) target.getY(), width, height), 0, 0, null);
}
if (mCueLine.contains(location) && !reject) {
Rectangle2D temp1 = mCueLine.createIntersection(target);
double y = 0;
if (changed) {
y = mCueLine.getY() - target.getY();
changed = false;
}
temp1.setRect(0, y, temp1.getWidth(), temp1.getHeight());
Color c = new Color(255, 0, 0, 40);
g2b.setColor(c);
if (mCueLine.contains(mCueLine.createIntersection(target))) {
g2b.fill(temp1);