public void mousePressed(MouseEvent e) { if (!e.isShiftDown()) { Shape pickedShape = myDrawing.pickShapeAt(e.getPoint()); myLastPoint = e.getPoint(); if (mySelectedShape != null) { mySelectedShape.setSelected(false); } mySelectedShape = pickedShape; if (mySelectedShape != null) { pickedShapeGroup.setSelected(false); pickedShapeGroup.removeAll(); mySelectedShape.setSelected(true); myPanel.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); } else { pickedShapeGroup.setSelected(false); pickedShapeGroup.removeAll(); } myPanel.repaint(); } else { if (mySelectedShape != null) { mySelectedShape.setSelected(false); } Shape pickedShape = myDrawing.pickShapeAt(e.getPoint()); if (pickedShape != null) { if (!pickedShapeGroup.Contains(pickedShape)) { pickedShapeGroup.group(pickedShape); myLastPoint = e.getPoint(); pickedShapeGroup.setSelected(true); myPanel.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); myPanel.repaint(); } else { // pickedShapeGroup.setSelected(false); // pickedShapeGroup.deGroup(pickedShape); pickedShapeGroup.setSelected(true); myLastPoint = e.getPoint(); myPanel.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); myPanel.repaint(); } } else { pickedShapeGroup.setSelected(false); pickedShapeGroup.removeAll(); } myPanel.repaint(); } }
public void mouseDragged(MouseEvent e) { if (pickedShapeGroup.isSelected()) { pickedShapeGroup.translateBy(e.getX() - myLastPoint.x, e.getY() - myLastPoint.y); myLastPoint = e.getPoint(); myPanel.repaint(); } else if (mySelectedShape != null) { mySelectedShape.translateBy(e.getX() - myLastPoint.x, e.getY() - myLastPoint.y); myLastPoint = e.getPoint(); myPanel.repaint(); } }