company logo

Design patterns

The Designer provides a number of design patterns in order to simplify and standardize the application design. Design patterns are copied to the resource database when starting the designer the first time. One may change design patterns or create new ones without destroying the original ones.

Design patterns help to manage the complexity of different form definitions and reduce the work to be done mainly to the definition of fields to be displayed in different forms. Moreover, Design patterns can be used for defining general application design rules. In contrast to

Design patterns are provided (copied) when initializing a resource data base for the Designer. Typical patterns for dialogs, list and tree dialogs, list/tree dialogs with dynamic work areas, tree application, wizard pattern and others are provided in the pattern list of the project. Patterns provided by ODABA contain a detailed description how to be used, which might be displayed before selecting a pattern class for initialization.

For a particular project, pattern classes might be updated or new pattern classes might be created and added to the pattern class list.

When applying a design pattern class to another design class, controls and windows are copied as long as not yet existing in the target class. Existing controls are not overwritten, but assigned to pattern fields copied from the pattern class. While copying pattern classes, class references in the pattern class controls and fields are replaced by class references to the target class.

In order to "localize" resources referenced by the design pattern, resource names may contain option values. When, e.g. referring to an action item with the name action, all target classes will refer to the fixed action item action. When using action_%CLASS_NAME% as action item, instead, the defined action item will be copied by replacing the CLASS_NAME option with the name of the target class. Thus, each initialized class gets an own action item containing the default actions but can be expanded with additional actions in the context of the target GUI class.