public void mousePressed(MouseEvent e) { this.mousePoint = e.getPoint(); Object topObject = null; PickedObjectList pickedObjects = this.wwd.getObjectsAtCurrentPosition(); if (pickedObjects != null) topObject = pickedObjects.getTopObject(); if (topObject instanceof ControlPointMarker) { this.activeControlPoint = (ControlPointMarker) topObject; this.activeAction = this.activeControlPoint.getType(); setShowAnnotation(true); updateAnnotation(this.activeControlPoint.getPosition()); // update controlPointIndex; int i = 0; for (Marker controlPoint : this.controlPoints) { if (controlPoint.equals(topObject)) break; i++; } this.activeControlPointIndex = i; e.consume(); } else if (topObject == this.getPolygon()) { this.activeAction = MOVE_POLYGON_ACTION; // set the shape to be the "active control point" this.activeControlPointIndex = -1; setShowAnnotation(true); updateAnnotation(this.polygon.getReferencePosition()); e.consume(); } }
public void mouseClicked(MouseEvent e) { if (this.isArmed()) { if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) { Object topObject = null; PickedObjectList pickedObjects = this.wwd.getObjectsAtCurrentPosition(); if (pickedObjects != null) topObject = pickedObjects.getTopObject(); if (topObject instanceof ControlPointMarker) { this.removeVertex((ControlPointMarker) topObject); e.consume(); } else { this.addVertex(e.getPoint()); e.consume(); } } } }
public void mouseDragged(MouseEvent e) { Point lastMousePoint = this.mousePoint; this.mousePoint = e.getPoint(); if (lastMousePoint == null) lastMousePoint = this.mousePoint; // update annotation if (isShowAnnotation()) { if (this.activeControlPointIndex < 0) updateAnnotation(this.polygon.getReferencePosition()); else if (this.controlPoints != null) updateAnnotation(this.controlPoints.get(this.activeControlPointIndex).getPosition()); } if (MOVE_VERTEX_ACTION.equals(this.activeAction)) { this.moveControlPoint(this.activeControlPoint, lastMousePoint, this.mousePoint); e.consume(); } else if (CHANGE_HEIGHT_ACTION.equals(this.activeAction)) { this.setPolygonHeight(lastMousePoint, this.mousePoint); e.consume(); } else if (MOVE_POLYGON_ACTION.equals(this.activeAction)) { this.movePolygon(lastMousePoint, this.mousePoint); e.consume(); } }