Subject: What should a GUI do; also , why case sensitive?
From: Michael Reimpell
Date: Fri, 15 Oct 2004 17:36:54 +0200
> Once I edit the Latex markup, all the other views are wrong (unless you
> recompute them from the Latex, which is in general not possible, since
> Latex -> Maxima cannot be guaranteed.) While you are welcome to think
> of the multiple view paradigm as a nice abstraction, I guess it
> seems obvious that there have been, for a while, several views (e.g.
> print as lisp data, print via the "displa" program, as latex)
> of expressions. There are only limited translations between views,
> making it tricky to provide selection of a subexpression from a display .
In a MVC design there is no translation between views at all. A view solely
represents the model (e.g. 1-D maxima input/output in this case). Therefore
it may allow you to select meaningful parts of the display, e.g.
subexpressions. Since the view knows the underlying model it represents, it
can then spawn events pointing at the model (e.g. at the subexpression) and
send them to the controller. 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).
The model receives the altering events and notifies all its views that it has
changed.
The latex view would merely give you a text string of the 1-D input/output to
be used with an external latex editor. For the reason you mentioned, there
will be no input view that allows you to use latex.
> > leaving us with the task to design a well defined communication
> > layer to the maxima kernel (model) and a mapping from messages of that
> > layer to mathml (view).
> From a Maxima system point of view, the underlying lisp tends to
> communicate directly with the user at a lisp error, or a debugging
> "break". Since each lisp has its own conventions at this point, there is
> some
> system-dependent code needed here.
In my opinion, this is the biggest problem at the moment. Since I'm not a lisp
expert, I don't know if there could be some try-catch construct to give the
user access to the lisp level in a secure fashion, keeping a clean interface
to the maxima kernel.
Michael