To keep things simple, we organize the structure of the user interface to closely match the IDL description of the bank. Each CORBA object is presented in its own interface. We define one subclass of
capi:interface
for each CORBA interface.
The definition of these subclasses is derived from the declaration of their corresponding CORBA interfaces. In particular, we use display panes to represent IDL attributes, and buttons or menu items to invoke IDL operations. Each interface contains a slot that contains the CORBA object it represents.
Clicking on a button of the frame triggers a callback that invokes the corresponding operation on the CORBA object associated with that frame. The user is notified of any CORBA user-exceptions that these operations raise. The CORBA-specific code resides, to a large extent, in these callbacks.
The source code for the client's GUI is in the file
client/interfaces.lisp
.