update method
EditResult
update(
- String connectorId,
- String labelId, {
- TextStory? story,
- double? fraction,
- DiagramPoint? offset,
- DiagramSize? size,
- LabelPresentation? presentation,
Implementation
EditResult update(
String connectorId,
String labelId, {
TextStory? story,
double? fraction,
DiagramPoint? offset,
DiagramSize? size,
LabelPresentation? presentation,
}) {
final capability = _capability(connectorId);
if ((story != null && !capability.textEditable) ||
((fraction != null || offset != null) && !capability.movable) ||
(size != null && !capability.resizable)) {
throw StateError('Label capability denied this edit');
}
final connector = _connector(connectorId);
final index = connector.labels.indexWhere((label) => label.id == labelId);
if (index < 0) throw StateError('Missing connector label $labelId');
final labels = [...connector.labels];
labels[index] = labels[index].copyWith(
story: story,
fraction: fraction,
offset: offset,
size: size,
presentation: presentation,
);
return _publish(connector, labels, 'Edit connector label');
}