UniverseUniversity


Home Projects Jobs Clientele Contact

uu


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

UU UI organization



Below are few thoughts on how we'll organize user interface part
of Universe University.

We'll follow classical MVC pattern.
- Role of Model will be played by database encapsulating classes
    (i.e. User, Topic, Course, etc.)
- Controller classes will be servlets, one servlet for each page
    (LoginServlet, RegisterServlet, SolveProblemServlet, etc)
- View classes will be created from CSP (C++ Server Pages)

Request processing:

- Controller receives request
- Controller accesses Model objects as needed, potentially
  altering model state
- Controller stores results in request context
- Controller determines which view to forward request to
  based on user preferences (think themes)
- Controller determines which language to render page in
  based on user preferences
- Controller forwards the request to the view object

Template organization:

Templates (CSP pages) will have identical names, and stored
in subdirectories named based on theme.

One thing I am currently very unclear about is i18n support
for templates: There are two possible approaches to this problem.
One is to have all interface strings to be explicitly retrieved using
something like _() gettext macro, like this:
<HEAD><TITLE><%=_("Moooo")%></TITLE></HEAD>
Alternative is to modify CSP parser to do the substitution for us.

In both cases though there is still a problem: we cannot allow
UI strings in templates. Or rather, we cannot allow modifying them.
All templates should retain them exactly the same. It's somewhat easier
for the first case - HTML formatting will not have to be absolutely
identical.
At the same time, second case is lot easier to read.

Any comments/ideas will be appreciated.

-- 
Ilya A. Volynets-Evenbakh
Total Knowledge. CTO
http://www.total-knowledge.com


Authoright © Total Knowledge: 2001-2008