Class hierarchy topology
Juraj Kubelka
juraj.kubelka at googlemail.com
Tue Feb 12 10:23:38 UTC 2008
Hi Sebastian,
sorry, I am late. There was a really sunny weather :-)
So, about my work, results and issues:
1. Source codes:
- repository: http://www.squeaksource.com/JKExperiments.html
- ob-dev: http://source.wiresong.ca/ob
- packages:
- OmniBrowser-jk.408
- OB-Morphic-lr.45
- OB-Standard-jk.325
- OB-TraitsIntegration-jk.41
- packages with sUnit tests (necessary because of tests in
OB-TraitsIntegration-jk.41)
- OB-Tests-Core-cwp.65
- OB-Fake-lr.9
- Bogus-cwp.18
- BogusInfo-cwp.17
- OB-Tests-Standard-dr.86
2. Check out:
- OBTraitsBrowser openOnClass: ClassDescription selector:
#addInstVarName:.
- OBTraitsBrowser openOnClass: ClassDescription.
3. Basic implementation motivation
- It is possible to set tree navigation for an OBMetaEdge.
See: OBTraitMetagraphBuilder>>populateTraitFilterInTree
There is a new property for OBMetaEdge called navigate (instvar)
and new classes OBDefaultEdgeNavigation and OBTreeEdgeNavigation
which defines navigation. Every OBNode has also instvar
navigate. It is set during children gathering (see
OBMetaEdge>>nodesForParent:). So, how it works:
If `OBTraitsBrowser openOnClass: ClassDescription` is executed,
a Subtree collects OBFan(s). After that OBColumn(s) is/are
adjusted (see OBSubtree>>selectInColumns:). There are some
changes. Every column is responsible for adjusting of next
column (see #nextColumnWithFan:selection:,
#columnAfter:withFan:selection:). An OBNode's navigate instvar
helps do decide which navigation to use (see
OBFan>>columnAfter:selection:).
There is OBTreeColumn instead of OBColumn which can hold more
fans (OBFan).
4. The present state and issues
Generally it works except switches. There is a lot of garbage,
which may breaks something, but after clarifying of some issues i
am planning to write everything from scratch again (i mean tree
navigation part).
1. Switches
Actually I do not know how to handle switches (e.g. buttons |
instance | ? | class |). There are 3 basic situations:
1. node has only default edges (no tree edges)
There is no problem. It behaves just like now. Buttons are
in column with the node as parent node.
2. node has both default and tree edges
I have no idea how to handle it. Ignore tree edges?
Duplicate buttons?
3. node has only tree edges
It is quite clear i think. Buttons are displayed if parent
node is selected in the parent node's column.
2. OBColumn vs. OBTreeColumn (Tree navigation in core OmniBrowser
package)
If it is wanted to integrate tree navigation to the core,
OBTreeColumn should be dissolved to OBColumn. And the same with
a view presentation (a Morphic classes). Should i focus on it?
Do we want to have a tree capable morph as default graphic
representation?
Thanks for any comments.
Jura
On Feb 11, 2008 1:39 PM, Sebastian Sastre <ssastre at seaswork.com> wrote:
> Hi Jura,
>
> can you specify the repository you mention so I can take a look?
>
> thanks,
>
> Sebastian Sastre
>
>
> ________________________________
>
> De: squeak-dev-bounces at lists.squeakfoundation.org
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] En nombre de Juraj
> Kubelka
> Enviado el: Viernes, 08 de Febrero de 2008 11:42
> Para: David Röthlisberger
> CC: The general-purpose Squeak developers list
> Asunto: Re: Class hierarchy topology
>
>
> Hi!
>
> OK. I will merge my changes back to OB repository and anyone can
> play with it. But there are conceptual issues I haven't solved yet. I will
> merge it by tomorrow and post some notes.
>
> Jura
>
>
> On Feb 8, 2008 2:17 PM, David Röthlisberger <squeak at c3com.ch>
> wrote:
>
>
>
> > I'm not yet familiar to OmniBrowser but I read that
> it's a framework
> > to make browsers. Do you think could be feasible to make
> a
> variant of it so
> > it have a tree view instead of the idented one?
>
>
> Isn't Juraj Kubelka working on that? I think he has
> implemented a tree view for
> OmniBrowser.
> He can certainly tell you more.
>
> David
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080212/3c106e57/attachment.htm
More information about the Squeak-dev
mailing list
|