private void undo(MultiPoint multiPoint) {
   Point[] points = new Point[multiPoint.getNumGeometries() - 1];
   for (int n = 0; n < multiPoint.getNumGeometries() - 1; n++) {
     points[n] = (Point) multiPoint.getGeometryN(n);
   }
   setPoints(multiPoint, points);
 }
  private void draw(
      Object parentGroup, GeometryIndex parentIndex, MultiPoint mp, GraphicsContext graphics) {
    String groupName = baseName;
    if (parentIndex != null) {
      groupName += "." + editingService.getIndexService().format(parentIndex);
    }

    Composite geometryGroup = getOrCreateGroup(parentGroup, groupName + ".geometries");

    // Draw all polygons:
    for (int i = 0; i < mp.getNumGeometries(); i++) {
      GeometryIndex pointIndex =
          editingService
              .getIndexService()
              .addChildren(parentIndex, GeometryIndexType.TYPE_GEOMETRY, i);
      draw(geometryGroup, pointIndex, (Point) mp.getGeometryN(i), graphics);
    }
  }