Tuesday, March 21, 2006

a new display architecture, random thoughts

Too much time spent on rearchitecting! Hopfully redoing the display architecture will be the last big one.

I had previously mentioned that an early version of AgileWiki used display events, which were then used to generate TeX output or a GUI display. But there are other considerations, too.

In the latest implementation, a good part of the display was driven by the mode of the display. So we could accomodate web browsing from a mobile phone or a desktop, novice and advanced users. This is applied to several areas, including the header information, default display and lists of topics. As well, the modal display needed to know the applicable commands and which commands might move the user to a different topic. Pretty fancy stuff, and we need to handle it all.

Now we have the additional requirement of running scripts, which need to be aware of when an error occurs and which probably run either silently or, in the case of an error, just display the list of commands which executed up to the point of failure.

In the case of a frame display, we would have portal events requesting a list of applicable commands, a particular heading, or the body of the display. Things like topic lists can be controled by modal variables provided by the portal and/or the display mode.

It seems like we need to have a display mode object (guest/beginner/expert/master/mobile/etc.) that sits between the portal and the display logic. It would handle requests from the portal (give me the header, the command pane, the main display), responding with a series of display events. This display mode object would provide the display parameters to the display logic, and capture the display events for the main display. Or perhaps, instead of having the command invoke the display logic as it does now, it just indicates the logic to be invoked when the main display is requested.

Now, how would a text portal work? It might follow something like this sequence:
  1. request a command to be evaluated.
  2. request the display of the header.
  3. request the main display as determined by the command.
Bill

0 Comments:

Post a Comment

<< Home