Computer graphics processing and selective visual display system – Display driving control circuitry – Controlling the condition of display elements
Reexamination Certificate
1998-05-12
2001-12-11
Bayerl, Raymond J. (Department: 2773)
Computer graphics processing and selective visual display system
Display driving control circuitry
Controlling the condition of display elements
C345S215000, C709S241000, C709S241000, C709S241000
Reexamination Certificate
active
06330006
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to an application interface and, more specifically to synchronizing an application's graphical user interface and data.
2. Background Art
Software applications designed to run on computer systems allow an application user to manipulate data associated with an application. For example, an accounting application allows a user to manipulate accounting information. A graphical user interface (GUI) is typically designed for a software application that allows an application user to enter and update application data.
In the past, an application such as an accounting application was required to include program code to synchronize an interface object (e.g., a text field) of the application's GUI with the underlying data that was used to initialize the interface object. The developer of the application's program code had to generate code that updated an interface object with the underlying data. That is, the application developer generated program code configured to retrieve the data from its data source, provide the data to the interface object, and propagate changes entered in the interface object to the data's storage location in the data source. If the application program did not include this program code, an interface object and its underlying data could become asynchronous.
In developing the application's program code, an application developer must be cognizant of the interface objects and/or data sources that are affected by each change. Otherwise, the application programmer may fail to include program code that propagates a change. In this case, an interface object and data source will not be synchronized. This can result in erroneous data being displayed in the interface object, or a data update that is entered in an interface object not modifying the underlying data.
Another issue of synchronization occurs where an interface object displays the result of an expression that must be evaluated whenever a change occurs to an operand of the expression. For example, where an expression is evaluated using data from one or more interface objects or underlying data sources, an application's program code must be configured to recognize when a change occurs to any of the interface objects or data sources that affect the expression. In developing the application's program code, the application programmer must therefore generate program code to recognize a change and re-evaluate the expression when a change occurs. If the application program fails to recognize when a change occurs, the interface object that display's the expression's result can display erroneous data.
The application may require that a change that occurs in an interface object be validated before it is written to a data source. In the past, an application programmer must generate program code that ensures that the validation is performed prior to updating the underlying data. If the application developer fails to include program code configured to validate data, invalid data that is entered in an interface object can update the underlying data. This results in corruption of the underlying data source.
Thus, it is important that an application program be configured to ensure that interface objects in the application program's GUI and underlying data remain synchronized and valid. The trust in application software is dependent on synchronizing the application program's GUI and its underlying data, and ensuring that the underlying data is valid. Unfortunately, there is a potential for error where an application programmer is required to write code to ensure that all of the dependencies between an application program's GUI interface objects and underlying data remain in sync and that data is validated before it is written to the underlying data source.
SUMMARY OF THE INVENTION
Embodiments of the invention comprise a method and apparatus for synchronizing interface objects of an application's graphic user interface (GUI) with underlying data. A design tool is used in embodiments of the invention to specify an interface object's binding properties. Data binding properties can define an association between an interface object and underlying data for synchronization purposes. In addition, a validation binding can be specified for an interface object that can be used to validate the data entered via the interface object. An expression binding associates an interface object to a plurality of interface objects and/or underlying data sources that contain data used in an expression the result of which is displayed in the interface object. A query expression binding associates a query expression to a plurality of interface objects and/or underlying data sources that contain data used in an expression the result of which is used in a query to retrieve a data source's data.
The design tool used in embodiments of the invention generates program code that expresses the binding properties defined using the design tool. As program code, the bindings are exposed for review and modification. For example, the application's program code can modify the bindings at run time. Thus, it is possible to modify the bindings generated by the design tool via application program code.
A binding manager manages the bindings (e.g., data, expression and validation bindings) defined at design time or at run time. Further, the binding manager registers with program code (e.g., instances of object classes) that manages bound interface objects (e.g., a control object) and underlying data (a dataSource object). When a change occurs to an interface object, its control notifies the binding manager. A change may occur in an interface object when a user enters a new value in the interface object or the value displayed in the interfaced object is changed programmatically (e.g., by program code), for example.
Similarly, when a change occurs to a data item in a data source, its dataSource notifies the binding manager. A change occurs to a data item when application program code modifies the data item, for example. A change may also occur to a data item when a request is made to fetch a new record from the data source.
In response to a change notification involving a data binding between an interface object and a data source's data item, the binding manager propagates the change between the interface object and the data source. If a validation binding exists for the interface object, the binding manager invokes validation processing to determine whether the interface object's new value is valid and can be written to the data source.
The binding manager listens for changes made to interface objects and/or data source data items that are used as operands in an expression. When such a change notification is received, the binding manager causes the expression to be re-evaluated and the result to be propagated to the necessary interface object and/or data source.
The binding manager further listens for changes made to interface objects and/or data source data items that are used to evaluate a query expression. When such a change notification is received, the binding manager causes the query expression to be re-evaluated. The result of the query expression is used in a query to retrieve information (e.g., rows) from a data source.
REFERENCES:
patent: 5551035 (1996-08-01), Arnold et al.
patent: 5574843 (1996-11-01), Gerlach, Jr.
patent: 5608909 (1997-03-01), Atkinson et al.
patent: 5634124 (1997-05-01), Khoyi et al.
patent: 5740439 (1998-04-01), Atkinson et al.
patent: 5872973 (1999-02-01), Mitchell et al.
patent: 5940494 (1999-08-01), Rafacz et al.
patent: 5984502 (1999-11-01), Calder
patent: 6026238 (2000-02-01), Bond et al.
patent: 6072493 (2000-06-01), Driskell et al.
patent: 6154786 (2000-11-01), Williamson et al.
Douglas C. Schmidt et al., “Measuring the Performance of Parallel Message-based Process Architectures”, IEEE, pp. 624-633, 1995.
Bautista X. L.
Bayerl Raymond J.
Silverstream Software, Inc.
The Hecker Law Group
LandOfFree
Method and apparatus for synchronizing an application's... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and apparatus for synchronizing an application's..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for synchronizing an application's... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2595489