/* * (non-Javadoc) * @see java.awt.event.MouseListener#mouseReleased(java.awt.event.MouseEvent) */ public void mouseReleased(MouseEvent e) { if (!isActive()) { return; } if (getOperation() != NONE) { setOperation(NONE); if (listener != null) { listener.endAction(new ToolEvent(this)); } } }
/** * Asigna la operación sobre el cursor que hay seleccionada * * @param op */ private void setOperation(int op) { operation = op; if (op != NONE) { listener.onTool(new ToolEvent(this)); } }
/* * (non-Javadoc) * @see java.awt.event.MouseMotionListener#mouseMoved(java.awt.event.MouseEvent) */ public void mouseMoved(MouseEvent e) { if (!isActive()) { return; } int pxLeft = posX - (wCursor >> 1); int pxRight = posX + (wCursor >> 1); int pyUp = posY - (hCursor >> 1); int pyDown = posY + (hCursor >> 1); // Si estamos fuera del área del cuadrado + 2 píxeles ponemos el cursor por defecto y no hacemos // nada if (e.getX() < (pxLeft - 2) || e.getX() > (pxRight + 2) || e.getY() < (pyUp - 2) || e.getY() > (pyDown + 2)) { setOperation(NONE); if (canvas.getCursor().getType() != Cursor.DEFAULT_CURSOR) { canvas.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); listener.offTool(new ToolEvent(this)); } return; } if (e.getX() >= (pxRight - 2) && e.getY() <= (pyUp + 2)) { if (iconMove != null) { canvas.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(iconMove, new Point(16, 16), "")); } setOperation(MOVE_UR); return; } if (e.getX() <= (pxLeft + 2) && e.getY() <= (pyUp + 2)) { if (iconMove != null) { canvas.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(iconMove, new Point(16, 16), "")); } setOperation(MOVE_UL); return; } if (e.getX() <= (pxLeft + 2) && e.getY() >= (pyDown - 2)) { if (iconMove != null) { canvas.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(iconMove, new Point(16, 16), "")); } setOperation(MOVE_LL); return; } if (e.getX() >= (pxRight - 2) && e.getY() >= (pyDown - 2)) { if (iconMove != null) { canvas.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(iconMove, new Point(16, 16), "")); } setOperation(MOVE_LR); return; } if (e.getX() <= (pxLeft + 1)) { if (iconHoriz != null) { canvas.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(iconHoriz, new Point(16, 16), "")); } setOperation(REDIM_LEFT); return; } if (e.getX() >= (pxRight - 1)) { if (iconHoriz != null) { canvas.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(iconHoriz, new Point(16, 16), "")); } setOperation(REDIM_RIGHT); return; } if (e.getY() <= (pyUp + 1)) { if (iconVert != null) { canvas.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(iconVert, new Point(16, 16), "")); } setOperation(REDIM_UP); return; } if (e.getY() >= (pyDown - 1)) { if (iconVert != null) { canvas.setCursor( Toolkit.getDefaultToolkit().createCustomCursor(iconVert, new Point(16, 16), "")); } setOperation(REDIM_DOWN); return; } setOperation(NONE); if (canvas.getCursor().getType() != Cursor.DEFAULT_CURSOR) { canvas.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); listener.offTool(new ToolEvent(this)); } }