[Circle-dev] Widget trees for frontend screen layout
Philip Kovac
pkovac at cs.uml.edu
Mon Jun 1 15:24:19 BST 2009
> My exact problem is how to provide each object's widget tree to the
> frontend, including possibly any types of object provided by parent
> classes. Because all the window items (currently defined, anyway... [2])
> have basic scroller and text entry widgets, these will be present for any
> object. So should each object type, eg.. IRC channel re-provide its
> widget tree in full, or could it somehow be pieced together a class at a
> time, each class building its superclass tree, then modifying for its
> own needs? If it provides it in full, then every class down the heirarchy
> needs to be updated whenever a base class gains a new widget. Whereas,
> taking is superclass and modifying could be difficult in general; hard to
> see how exactly it could know the bits to remove/replace, or places to
> insert new pieces, in a generic way that actually copes with superclasses
> being updated around it.
I think it'd be more suitable to just construct the tree individually
rather than having subclasses. In theory they'd have relatively little
in common anyway aside from a few fixed fields, which you may want to
have in very different locations.
> Neither of these approaches take into account the Session, of course.
> Perhaps the object should just ask the Session to build a widget tree for
> its type. The Session would therefore need a complete library of trees
> for every type known in the Circle BE. This would provide delegation of
> onscreen layout per Session type, but means the Session has to be fully
> aware of all the objects.
I think this is sensible. Session types should be aware of what types
of windows they have anyway.
> Plus, none of these ideas yet take into account that onscreen layout of
> an item might vary per client configuration - do you want the nicklist
> displayed in a channel window, or not, for example..?
>
Provide a human readable name for them, and then there could be a
'view' menu for each page which configures all channel windows to
hide/show items from the list of these names.
More information about the Circle-dev
mailing list