SyncWire extends Wire

When the value of a connected element changes, a SyncWire will update the other connected element. Can be connected to any CanBeSynced model element.

A SyncWire is a bidirectional Wire, that may connect any two CanBeSynced model elements. When the intended model is completed through model completion, a SyncWire will include elements necessary to keep the values of two associated CanBeSynced elements synchronised.

A SyncWire will synchronise the CanBeSynced elements contained within each of the synchronised elements. That is, if a CanBeSynced element (the triggering element) contained within one SyncWire-connected element (the source container) does not have an associated CanBeSynced element within the other SyncWire-connected element (the target container), then the following process will occur:

  1. For a SyncWire, a default element will be created within the target container, as follows:
    1. If both the source container and the target container are VisibleThings, then the type of the default element will be the same as the type of the triggering element.
    2. If the source container is a DomainIterator and the target container is a InputForm, then the type of the default element will be a InputTextField.
  2. A new SyncWire will be generated by the original SyncWire. This new SyncWire will connect the generated default element to the triggering element in the source container.
  3. Any incoming Conditions and Parameters to the original SyncWire will be duplicated with respect to the newly-created SyncWire.

If a DomainIterator iterating over multiple results is connected to a InputForm with a SyncWire or SetWire, then the form will be populated in such a way to provide navigation over the data set. That is, Buttons will be created within the form to control the cursor over the iterator.



Implementation Notes

Inference Rules



Inherited Attributes



Inherited Children



Inherited References



Inherited Extensions