[jsword-devel] ProjectB Primer
Wed, 10 Apr 2002 09:11:51 -0500
Nicely done summary! I like the sound of things so far. Once my taxes
are put to bed this weekend, I'll get some time to really dig in and
familiarize myself with your code.
Joe Walker wrote:
> ProjectB Primer part 1: Architecture overview.
> ProjectB is split into 3 sections - model, view and controller.
> The key interfaces in the model (Book and Bible) give you access to various
> texts plus simple search capabilities.
> The controller builds on this to add more advanced search functions and a
> few other non view specific bits and pieces.
> There are a number of views of which only the Swing GUI and the CLI are up
> to date. There are also servlet/applet/awt UIs and even a very old COM
> The design of the model aims for:
> - Source independence: None of the UIs should care where the data comes
> from. It could be Sword data files, ProjectB data files, SomeOtherVendor
> data files, a SOAP connection across the net, etc.
> - View independence: The data should be viewable on a PDA, Swing GUI, WML,
> HTML, etc, but should look good on those that support styled text. This
> means using XML as a view-independent content source. I understand there is
> a standard in development (?) to do just this (there certainly wasn't when I
> started) so I would like to switch to that when it is done.
> - Not creating heavy search burndens. There are 2 fairly simple methods to
> implement to allow all of the search functionality to work.
> Most of the interest in the controller layer is around search. There are 2
> methods of searching: command based ("aaron & moses") or best match based
> ("For god so loves")
> The Swing GUI is bean based. There are beans for most things, so rebuilding
> the GUI to look quite different should be fairly easy.
> All of the views use XSLT to convert the XML from the model into something
> that should be viewable. For the CLI interface the XSL strips off any style
> hints. For swing and the old servlet UIs there were a number of XSLT sheets
> to allow the user to select their look.