An important feature of the ADM is the messaging system it provides: you use objects called SmartLinks to create communication paths between pairs of SmartObjects. The ADM includes the following SmartLink types:

Container — Links a containing object to an object that it contains.

Navigation — Links an object that provides a navigation interface to an object thatsupplies a query through which to navigate.

TableIO — Links an object that provides a record‑modification interface to an objectthrough which to enter changes.

Page — Links an object that provides a page‑selection interface to an object that managesthe hiding and viewing of pages.

PageN — Links an object that manages the hiding and viewing of a numbered set ofpages to the SmartObjects on a specific page.

GroupAssign — Links an object that manages a record to an object that manages a relatedrecord or another view of the same record.

Data — Links an object that finds records to a visualization object or to another objectthat manages records.

Update — Links a visualization object to a SmartDataObject for the purpose of submitting modifications to the data.

Commit — Links a Commit SmartPanel to a SmartDataObject (for committing multipleupdates in a single transaction).

Filter — Links a SmartFilter to an object that directly or indirectly supplies a query to filter (SmartDataObject or SmartDataBrowser).

When you connect objects with a SmartLink, the SmartObject from which the link originates is the source object, and the object to which it connects is the target object.

The ADM implements SmartLinks using the Progress 4GL general PUBLISH/SUBSCRIBE event mechanism. For basic information on PUBLISH/SUBSCRIBE, see OpenEdge Development: ABL Reference. For more information on linking in the ADM and detailed descriptions of specific SmartLinks, see Chapter 3, “SmartLinks.”