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