Recent work focuses on important issues related to the development of domain-specific visual languages using toolkit-based programming techniques. To this end, we are experimenting with user interface development platform administration stategies. Some of the results are briefly described below.
Augmentation: Augmentation involves the introduction and programmatic control of additional interaction techniques for some or all of the native interaction objects already supported by the toolkit. Augmentation is useful in cases where a toolkit’s interaction resources do not suffice to implement design concepts requiring new interaction techniques. Examples of augmentations of Swing include the 'augmented tooltip', the 'auhmented visual keyboard' for text entry, etc.
Expansion: Toolkit expansion implies the capability to introduce new domain-specific interaction objects preserving the toolkit’s original programming model. Toolkit expansion is more common than toolkit augmentation.
Integration: Integration implies importing new interaction elements (e.g., dedicated object classes) implemented either as a separate toolkit or as a third party-library. In such a case, it is desirable the imported interaction objects to be available to the user interface developer, just as the native objects of the toolkit.
Abstraction: Abstraction is considered as a mechanism servicing the user interface development goal of programming the user interface as a composition of diverse interaction components (i.e. native, augmented, expanded, integrated). As these elements need not be available through a single toolkit or interaction platform the challenge amounts to establishing a specification layer hiding toolkit-specific details and allowing ‘linking to’ rather than directly ‘calling’ each toolkit’s libraries.