previewEndpoint method
({ConnectorElement connector, EditResult decision})
previewEndpoint(
- String id, {
- required bool atStart,
- required ConnectorEndpoint endpoint,
- FreeEndpoint? deniedTargetFallback,
A rejected candidate restores the original connector unless the host explicitly requests a free endpoint fallback.
Implementation
({EditResult decision, ConnectorElement connector}) previewEndpoint(
String id, {
required bool atStart,
required ConnectorEndpoint endpoint,
FreeEndpoint? deniedTargetFallback,
}) {
final start = store.internals.interactionStart;
if (start == null) throw StateError('No endpoint interaction is active.');
final original = _requireConnector(start.document, id);
final decision = _endpointDecision(
original,
endpoint,
atStart,
DiagramConnectionIntentPhase.preview,
);
final admitted = decision.allowed ? endpoint : deniedTargetFallback;
final next = admitted == null
? original
: _replaceEndpoint(original, admitted, atStart);
final admission = store.internals.previewInteraction(
DiagramTransaction(
label: 'Reconnect endpoint',
steps: [ReplaceElementStep(before: original, after: next)],
),
);
return (
decision: admission.allowed ? decision : admission,
connector: admission.allowed ? next : original,
);
}