Customer Library Browser Integration
The function ddserv supports the integration of a custom Library Browser thus replacing the default Library Browser, libSelect. While integrating your own Library Browser in DFII, you must consider the following:
-
Invocation - The default DFII Library Browser is a separate process from DFII. Therefore, DFII manages the execution of the default Library Browser as well as communicates with it. This process is simplified if your custom Library Browser resides within the DFII process, for example, as a form or a dag browser. Any initialization or invocation of the custom Library Browser should be made in the replacement functionality that would be registered for
ddsSyncWithForm. -
Replay - As you execute commands, they are recorded to the DFII
.logfile. You can then turn around and use the log file to replay the session. Because of the asynchronous nature of external processes, ddserv cannot replay the synchronizations with the DFII Library Browser. The ddsSync functions will do nothing if the session is in replay. However, if your custom Library Browser resides within the DFII process, it can synchronized to work if the session is in replay. -
Indirect Recursion - Some forms synchronized to the Library Browser may have callbacks on the registered form fields. Some of these callbacks may call
ddsUpdateSyncWithFormto ensure that the Library Browser selections match what you may have typed in. This could lead to the Library Browser updating the form fields with its current selections, the form field callbacks firing off, which would then try to synchronize the Library Browser with its values. You must take care in either the interface layer or the Library Browser itself to avoid having the form and the Library Browser continually trying to update each other. - Refresh - The custom Library Browser should react to the creation and deletion of libraries, cells, and views. There are respective Design Data Procedural Interface (ddpi) triggers available from which you can perform the Library Browser update.
To plug in a different Library Browser, you need to implement and register to ddserv the replacement functionality for ddsSyncWithForm, ddsUpdateSyncWithForm, ddsEndSyncWithForm, and ddsGetCurrentLib. You do the following:
- You register your routines that interface to your Library Browser with ddserv.
-
When a custom Library Browser is so registered, the four routines
ddsSyncWithForm,ddsUpdateSyncWithForm,ddsEndSyncWithForm, andddsGetCurrentLibwill invoke the registered functionality rather than interfacing with the default DFII library browser. No application code has to make any changes as their existing calls to the ddserv routines will buffer them from what Library Browser is being used. - You may un-register your custom Library Browser at any time and register it again. This is for completeness and can assist in debugging (saves from having to exit the system if there are problems with the custom Library Browser integration).
Return to top