A SERVICE OF

logo

30 Chapter 2: iTool System Architecture
iTool Object Identifiers iTool Developer’s Guide
Proxy Identifiers
Because the location of an object in the iTool object hierarchy corresponds to the
place that object is made visible to iTool users, you may at times want an object to be
located in multiple places in the iTool object hierarchy. For example, the Undo
operation appears in two places in the standard iTool user interface: under the Edit
menu and on the toolbar. Rather than duplicating the Undo operation object in each
of those places in the iTool object hierarchy, we can use a proxy mechanism to
register the same object instance with multiple object identifiers. In the case of the
Undo operation, the operation itself is located in the EDIT subcontainer of the iTool’s
OPERATIONS container, which implies that the operation appears under the iTool’s
Edit menu. A proxy (or alias) to this object is created in the EDIT subcontainer of the
iTool’s TOOLBAR container, which places the operation on the toolbar. Only one
instance of the Undo object is created, but its action can be invoked from both the
menu and the toolbar.
Proxy identifiers are assigned by the Register method for the object being proxied.
See “Registering Components” on page 38 for additional details.
Object Descriptors
Object descriptors are iTool objects that contain enough information about a given
object class to create an object of that class when necessary. In many cases, object
descriptors, rather than instances of the objects they create, are stored in the iTool
hierarchy; this approach allows object instances to be created only when needed.
Object descriptors also manage instances of objects that can be re-used by the system,
avoiding the need to create a new instance of an object (such as an operation) each
time it is used.
Cases in which an iTool developer will need to know about or use object descriptors
rather than object identifiers are very rare. We mention object descriptors here
because they are used extensively in the iTool object hierarchy to expose the
functionality of objects that are created as needed, rather than being created
automatically when the iTool is created.