[bt-devel] The design of the BackEnd

Thomas Philpot bt-devel@crosswire.org
Mon, 17 Jan 2000 16:07:12 -0600


>An internal text stream. I don't want the GUI to see where the data comes from 
>nor to know how to retrieve it. I also thought it might good the differ between
>normal text, bible, comment and dict but couldn' think of a real need for this.
>But maybe it will come later. Anyway I will give you information about what type of
>module text you get. You can now display everything in one presenter and make later
>sub classes that you can specialy use.

So the back end classes will handle the conversion from the files on Disk to
HTML and hand that information to the GUI?  In that case, there is right now
only a need for one presenter that handles HTML since the back end will take
care of formatting Bible Text, Commentaries, etc. correctly.  Of course, if we
want to do something specific say in a BibleTextPresenter, we'd have to
sub-class Presenter. 

>Well I think so :) I have though not yet seen the programming API but I think
>QWorkspace is enough for our need. But if you have good reasons to use QextMDI
>please tell me, I'm open! In the end you program the GUI.

QWorkspace is in Qt 2.x right? I haven't looked at the API yet.

>Speaking of class structure. I would like you to create a Container class that handles requests
>to and from the backend (for instance) and gives information to it's registered widgets (presenters,
>list view, etc.) and not to register each window. That way we can keep the data flow between
>backend and frontend clean and easier to change.

I definitely think we need an interface layer to separate the GUI from the
back end.   So this is basically what we have:

GUI <-> ContainerClass <-> CBackEnd <-> CModuleInfo <-> Modules on Disk

Is this close?  The GUI widgets that need info from the BackEnd register with
the ContainerClass (name subject to change ;) and it gets the info from
CBackEnd about which modules are there, etc.  I'm sure there's more the the
back end than this...  

Oh and one other thing, which classes are handling the HTML conversions?

Tom