"The Factor UI provides basic support for dataflow programming via " { $emphasis "models" } " and " { $emphasis "controls" } ". A model is an observable value. Changing a model's value notifies other objects which depend on the model automatically, and models may depend on each other's values. A " { $link control } " is a " { $link gadget } " displaying a model."
{ $subsection model }
"Creating models:"
{ $subsection <model> }
"Adding and removing connections:"
{ $subsection add-connection }
{ $subsection remove-connection }
"Generic word called on model connections when the model value changes:"
{ $subsection model-changed }
"When using models which are not associated with controls (or when unit testing controls), you must activate and deactivate models manually:"
"Filter model values are computed by applying a quotation to the value of another model."
{ $subsection filter }
{ $subsection <filter> } ;
ARTICLE: "models-compose" "Composed models"
"Composed model values are computed by collecting the values from a sequence of underlying models into a new sequence."
{ $subsection compose }
{ $subsection <compose> } ;
ARTICLE: "models-history" "History models"
"History models record previous values."
{ $subsection history }
{ $subsection <history> }
"Recording history:"
{ $subsection add-history }
"Navigating the history:"
{ $subsection go-back }
{ $subsection go-forward } ;
ARTICLE: "models-delay" "Delay models"
"Delay models are used to implement delayed updating of gadgets in response to user input. For example, " { $link live-search } " instances use delay models perform the search only after the user stops typing."