What should a GUI do; also , why case sensitive?



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