}  if (cacheRect == null) { movingEdge = 0;
		public void mousePressed(MouseEvent e) {			if (currentPicture == null || imageRect == null || currentPicture.isOnline()) {				return;			}			inDrag = true;			switch (movingEdge) {				case SwingConstants.TOP:					// keep bottom-right					start = validate(new Point(cacheRect.x + cacheRect.width, cacheRect.y + cacheRect.height));					break;				case SwingConstants.BOTTOM:					// keep top-left					start = validate(new Point(cacheRect.x, cacheRect.y));					break;				case SwingConstants.LEFT:					// keep bottom-right					start = validate(new Point(cacheRect.x + cacheRect.width, cacheRect.y + cacheRect.height));					break;				case SwingConstants.RIGHT:					// keep top-left					start = validate(new Point(cacheRect.x, cacheRect.y));					break;				case 5:					// moving: just remember start for offset					moveCropStart = validate(e.getPoint());					break;				default:					// new rectangle					start = validate(e.getPoint());					break;			}			currentPicture.setCropTo(null);			repaint();		}