Subject: What should a GUI do; also , why case sensitive?
From: Abdulhaq Lynch
Date: Fri, 15 Oct 2004 22:35:09 +0100
On Friday 15 October 2004 22:10, Stavros Macrakis wrote:
>
> > The controller then executes the requested
> > action (e.g. send subexpression to a maxima kernel) and alters the model
> > (e.g. inserts subexpression as input line and maxima answer as output
> > line).
>
> Huh? It is bizarre for programs to be communicating using the
> human-friendly i/o form.
>
There is some misunderstanding here of what is intended.
In the MVC pattern (way of treating a software problem), the same data can be
represented to the user in a number of different ways all at the same. If
any of the views are used to modify the data, then the 'view' informs the
'controller' that the data has changed and the controller then updates the
underlying data model and instructs the other views to update their view of
the new data. There are a number of good books about "Design Patterns" which
you could say these days were required reading for a programmer/designer.
This (MVC pattern) is a very well known and successful way of coding GUI
programs and I myself wrote a very large workflow designer GUI package in
Java using this paradigm.
In the particular case of the user changing a Latex representation of a
mathematical expression, we assume that the user is merely modifying the
visual form and not the underlying expression itself (e.g. he is changing
the order of the variables). In this case there would be no need for the
underlying expression to be updated although we would expect that there
should be some way of linking the new view of the expression (ie Latex
string) to the underlying data and also saving it to memory or disk so that
it can be easily retrieved again when needed.
Abdulhaq