commitCreation method
Finishes a new connector gesture, restoring its baseline on rejection.
Implementation
EditResult commitCreation(
String connectorId, {
bool requireBoundTarget = false,
}) {
final start = store.internals.interactionStart;
if (start == null) throw StateError('No connection interaction is active.');
if (diagramHasCanonicalId(start.document, connectorId)) {
throw StateError('Element $connectorId already exists.');
}
final connector = store.state.document.elementById(connectorId);
final decision = connector is ConnectorElement
? evaluateConnector(connector, requireBoundTarget: requireBoundTarget)
: const EditResult.denied(
code: DiagramDenialCode.unavailableTarget,
reason: 'No connector preview exists.',
);
if (decision.allowed) {
return store.internals.commitInteraction();
} else {
store.cancelInteraction();
}
return decision;
}