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(); } }