@Override public void mousePressed(MouseEvent event, StateRenderer2D source) { if (event.getButton() != MouseEvent.BUTTON1) { if (element != null) { MapChangeEvent changeEvent = new MapChangeEvent(MapChangeEvent.OBJECT_CHANGED); changeEvent.setChangedObject(element); changeEvent.setSourceMap(pivot); AddObjectEdit edit = new AddObjectEdit(element); element.setFinished(true); undoManager.addEdit(edit); pivot.warnChangeListeners(changeEvent); element = null; if (associatedSwitch != null) associatedSwitch.doClick(); } super.mousePressed(event, source); return; } LocationType lt = source.getRealWorldLocation(event.getPoint()); if (element == null) { element = new PathElement(pivot.getMapGroup(), pivot, lt); element.setFill(fill); element.setShape(fill); pivot.addObject(element); element.addPoint(0, 0, 0, false); MapChangeEvent changeEvent = new MapChangeEvent(MapChangeEvent.OBJECT_ADDED); changeEvent.setChangedObject(element); changeEvent.setSourceMap(pivot); pivot.warnChangeListeners(changeEvent); } else { double[] offsets = element.getCenterLocation().getOffsetFrom(source.getRealWorldLocation(event.getPoint())); element.addPoint(-offsets[1], -offsets[0], 0, false); MapChangeEvent changeEvent = new MapChangeEvent(MapChangeEvent.OBJECT_CHANGED); changeEvent.setChangedObject(element); changeEvent.setSourceMap(pivot); pivot.warnChangeListeners(changeEvent); } }
@Override public void setActive(boolean mode, StateRenderer2D source) { if (!mode && element != null) { MapChangeEvent changeEvent = new MapChangeEvent(MapChangeEvent.OBJECT_CHANGED); changeEvent.setChangedObject(element); changeEvent.setSourceMap(pivot); AddObjectEdit edit = new AddObjectEdit(element); undoManager.addEdit(edit); element.setFinished(true); pivot.warnChangeListeners(changeEvent); } }