Add an observer onto a component's dynamic options

There is no public actionable observer callback for the click on another author’s extension web interface (ie a button,) unless that author provides it and explicitly publishes the means for extensions by other authors to use it. The DC extension is proprietary and the only public interfaces are the manual use of it’s two web dialogs and the Interact tool.

At one time I thought I had filed an API feature request for a Dictionary observer class, but I cannot find it at the moment.


If the change in attributes cause a change to the dynamic instance, then some other observer callbacks may fire.

So test to see if EntityObserver#onChangeEntity fires for either the dictionary (which I think is a bug that does not happen,) or the component instance itself. This means you’ll need to attach this class of observer to all those DC instances you wish to “watch”.

EDIT: I think I posted a few years ago that this is possible. See this topic thread:

Sometimes making a DC property change causes the entities collection to change (such as adding or deleting copies of subcomponent instances such as pickets in a fence.) This means you’ll need to also monitor the DC definition’s entities collection with an EntitiesObserver.

To make it more difficult, if more than 1 instance of a DC component exists, and the change involves changes to the entities (as described above,) the DC extension will transparently clone the definition and make changes to the clone and reassign the “changed” instance as a child of the new cloned definition.
So simply “watching” the instance’s definition’s entities collection will not catch the change. You may also need to use InstanceObserver, DefinitionObserver and/or DefinitionsObserver to catch when a new definition is cloned from an old one.

Hacking a closed source extension is difficult and problematic in many ways. Foremost is the possibility that this extension could be changed at any time, or withdrawn in the future in preference to the newer Live Component feature.

One possible workaround is to try to change your thinking about when your extension will “retrieve the values of attributes” from “every time the user clicks Apply” to just before your extension does what it needs to do with the latest attribute values.