Additions to application model

Pedro Szekely ([email protected])
Wed, 11 Jan 95 14:51:00 PST

JK,

It looks like our models need to be specified in the extended IDL
syntax so that we can express things like change reports. Basically,
there has to be a way to declare how models will inform clients (eg
the design environment) about changes in the model, so that clients
can update the screen or do whatever they need to do.

What this means, is that the Mastermind models are themselves
applications, and thus should be expressed in the Application Modeling
Language. This sounds very confusing, but it has to be this way.

For example, just to illustrate, here is how we should be defining the
presentation model.

interface Template {

Guide_Iterator guides (in H_V_Both which);
Guide guide (Symbol name);
Guide add_guide (in Symbol name, in Direction direction);
void remove_guide (in Guide guide);
//% report guide_added {Guide new_guide;};
//% report guide_removed {Guide old_guide;};

Grid_Iterator grids (in H_or_V which);
Grid grid (Symbol name);
Grid add_grid (in Symbol name, in Direction direction);
void remove_grid (in Grid grid);
//% report grid_added {Grid new_grid;};
//% report grid_removed {Grid old_grid;};
};

interface Guide {
readonly attribute Direction direction;
attribute Coordinate position;
attribute Coordinate margin1;
attribute Coordinate margin1;
//% report position_changed {Coordinate new_position;};
//% report margin1_changed {Coordinate new_margin;};
//% report margin2_changed {Coordinate new_margin;};
};

There is an extension to the IDL syntax that allows an interface to
specify what changes to objects the interface can report. The syntax
is similar to exceptions. There is no need to specify which methods
issue the reports like one does with exceptions.

Pedro Szekely
USC/ISI, 4676 Admiralty Way, Marina del Rey, CA 90292
Phone: 310/822-1511, Fax: 310/823-6714
URL: http://www.isi.edu/isd/HUMANOID-HOME.html