OOFILE | Downloads | Purchasing | Press | Services | Company Information | Soapbox | References | F.A.Q. | HOME

GUI Integration Philosophy

This document describes the common philosophy to integrating OOFILE into application frameworks.

The philosophy of GUI integration is based around making life easy for existing programs, as well as new ones. Adding OOFILE to your program should not require a radical reshaping of how it works. Thus, we need to work in with the idioms of each framework.

Inheritance vs Linking

The first round of GUI integration classes was with zApp. This framework is more sophisticated than others with edit forms - it automates the process of storing data in the edit fields. By inheriting from the standard edit fields, and overriding StoreData(), we had a very simple way of updating the database.

However, this approach is not provided for us in other frameworks. It would be easier to move between frameworks if OOFILE worked very similarly in all cases.

Most importantly, if OOFILE links to edit fields by subclassing, this removes your freedom to subclass for your own reasons.

For the above reasons, it was decided that the general philosophy should be that OOFILE communicates with edit fields via an intermediate dbFieldLink.

This abstraction gives us a lot of flexibility - a dbFieldLink subclass could communicate with a different source of data (eg: a comms link) to update a field.

The GUI Management Hierarchy

The overall coordinating class is dbGUI. It is a broadcaster which manages an abstract hierarchy of dbHelper classes. dbEditHelper manages all editing controls for a given window. dbBrowseHelper manages a list control or table displaying read-only fields. dbHierBrowseHelper manages a tree control displaying read-only fields. Editable spreadsheets of data are not yet catered for.

Feature index

(c) Copyright A.D. Software 1994-2000 (All Rights Reserved).
Last Updated: 9th September 2001