copyWith method

GroupAnnotation copyWith({
  1. String? id,
  2. String? title,
  3. EdgeInsets? padding,
  4. Color? color,
  5. int? zIndex,
  6. bool? isVisible,
  7. bool? isInteractive,
  8. Set<String>? dependencies,
  9. Map<String, dynamic>? metadata,
})

Creates a copy of this group annotation with optional property overrides.

This is useful for creating variations of an existing group or for implementing undo/redo functionality.

Implementation

GroupAnnotation copyWith({
  String? id,
  String? title,
  EdgeInsets? padding,
  Color? color,
  int? zIndex,
  bool? isVisible,
  bool? isInteractive,
  Set<String>? dependencies,
  Map<String, dynamic>? metadata,
}) {
  return GroupAnnotation(
    id: id ?? this.id,
    position: Offset.zero,
    title: title ?? currentTitle,
    padding: padding ?? this.padding,
    color: color ?? currentColor,
    zIndex: zIndex ?? currentZIndex,
    isVisible: isVisible ?? currentIsVisible,
    isInteractive: isInteractive ?? this.isInteractive,
    dependencies: dependencies ?? this.dependencies.toSet(),
    metadata: metadata ?? this.metadata,
  );
}