private boolean hasDirtyGeom(EditToolHandler handler) { if (handler.getCurrentGeom() != null && handler.getCurrentGeom().isChanged()) return true; List<EditGeom> geoms = handler.getEditBlackboard(handler.getEditLayer()).getGeoms(); for (EditGeom geom : geoms) { if (geom.isChanged()) return true; } return false; }
/** * Copies the geometry back onto the editblackboard. * * @return */ private void copyFeature(EditBlackboard editBlackboard, EditGeom geom) { EditGeom newGeom = editBlackboard.newGeom(geom.getFeatureIDRef().get(), geom.getShapeType()); for (PrimitiveShape shape : geom) { PrimitiveShape newShape; if (shape == geom.getShell()) { newShape = newGeom.getShell(); } else { newShape = newGeom.newHole(); } if (shape == currentShape) handler.setCurrentShape(newShape); for (int i = 0; i < shape.getNumCoords(); i++) { editBlackboard.addCoordinate(shape.getCoord(i), newShape); } newGeom.setChanged(geom.isChanged()); } }