Mixing layout

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Mixing layout

MathieuDehouck

Hi

 

We speak with Tudor about mixing layout, and here is something I try.

====================================

| view rawView |
rawView := ROView new.
view := ROMondrianViewBuilder view: rawView.
"-------------"
"-------------"

    view shape rectangle borderColor: (Color white).
    
    view nodes: ROObject withAllSubclasses  forEach: [ :each |
                view nodes: each withAllSubclasses .
                view edgesFrom: #superclass.            
                view layout: (ROTreeLayout new horizontalGap: 4) .   
    ].
    
        view layout:( RORectanglePackingLayout new ratioWidth: 100 height: 100 ).

"-------------"
"-------------"
"Below is the initiation of the menu and opening the visualization"
ROEaselMorphic new populateMenuOn: view.
view open

 

=======================================

 

So, it seems it can be done with not too long a script.



Regards

Math

 

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

test 2 layouts.png (33K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Mixing layout

Tudor Girba-2
Hi,

Not really. You could do it because you in your example you controlled the objects corresponding to the roots of the hierarchy.

Here is my challenge. Make this graph layout the trees it can and wrap the lines afterwards:

view nodes: (1 to: 100).
view edgesFrom: [ :x | x atRandom ].

:)

For everyone else: the idea is to be able to compose layouts out of layout pieces. For example, we should be able to apply a tree layout and then arrange the resulting trees in a flow layout or in a compact rectangle layout.

Cheers,
Doru


On May 30, 2013, at 5:41 PM, [hidden email] wrote:

> Hi
>
>  
> We speak with Tudor about mixing layout, and here is something I try.
>
> ====================================
>
> | view rawView |
> rawView := ROView new.
> view := ROMondrianViewBuilder view: rawView.
> "-------------"
> "-------------"
>
>     view shape rectangle borderColor: (Color white).
>    
>     view nodes: ROObject withAllSubclasses  forEach: [ :each |
>                 view nodes: each withAllSubclasses .
>                 view edgesFrom: #superclass.            
>                 view layout: (ROTreeLayout new horizontalGap: 4) .    
>     ].
>    
>         view layout:( RORectanglePackingLayout new ratioWidth: 100 height: 100 ).
>
> "-------------"
> "-------------"
> "Below is the initiation of the menu and opening the visualization"
> ROEaselMorphic new populateMenuOn: view.
> view open
>
>  
> =======================================
>
>  
> So, it seems it can be done with not too long a script.
>
>
>
>
> Regards
>
> Math
>
>  
> <test 2 layouts.png>_______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Reasonable is what we are accustomed with."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Mixing layout

Stéphane Ducasse

On May 30, 2013, at 9:57 PM, Tudor Girba <[hidden email]> wrote:

> Hi,
>
> Not really. You could do it because you in your example you controlled the objects corresponding to the roots of the hierarchy.
>
> Here is my challenge. Make this graph layout the trees it can and wrap the lines afterwards:
>
> view nodes: (1 to: 100).
> view edgesFrom: [ :x | x atRandom ].
>
> :)
>
> For everyone else: the idea is to be able to compose layouts out of layout pieces. For example, we should be able to apply a tree layout and then arrange the resulting trees in a flow layout or in a compact rectangle layout.

Not easy :)

>
> Cheers,
> Doru
>
>
> On May 30, 2013, at 5:41 PM, [hidden email] wrote:
>
>> Hi
>>
>>
>> We speak with Tudor about mixing layout, and here is something I try.
>>
>> ====================================
>>
>> | view rawView |
>> rawView := ROView new.
>> view := ROMondrianViewBuilder view: rawView.
>> "-------------"
>> "-------------"
>>
>>    view shape rectangle borderColor: (Color white).
>>
>>    view nodes: ROObject withAllSubclasses  forEach: [ :each |
>>                view nodes: each withAllSubclasses .
>>                view edgesFrom: #superclass.            
>>                view layout: (ROTreeLayout new horizontalGap: 4) .    
>>    ].
>>
>>        view layout:( RORectanglePackingLayout new ratioWidth: 100 height: 100 ).
>>
>> "-------------"
>> "-------------"
>> "Below is the initiation of the menu and opening the visualization"
>> ROEaselMorphic new populateMenuOn: view.
>> view open
>>
>>
>> =======================================
>>
>>
>> So, it seems it can be done with not too long a script.
>>
>>
>>
>>
>> Regards
>>
>> Math
>>
>>
>> <test 2 layouts.png>_______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> www.tudorgirba.com
>
> "Reasonable is what we are accustomed with."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Mixing layout

Usman Bhatti
In reply to this post by Tudor Girba-2



On Thu, May 30, 2013 at 9:57 PM, Tudor Girba <[hidden email]> wrote:
Hi,

Not really. You could do it because you in your example you controlled the objects corresponding to the roots of the hierarchy.

But by definition, the tree has always a root. In my opinion the computation of the root is the necessary step in a layout involving trees. You can compute the root by looking at the incoming connections and setting as the root the one which does not have any, or has the least?. We had this problem when we have to represent a graph as a tree, we ask the user to provide the root.
 

Here is my challenge. Make this graph layout the trees it can and wrap the lines afterwards:

view nodes: (1 to: 100).
view edgesFrom: [ :x | x atRandom ].

:)

For everyone else: the idea is to be able to compose layouts out of layout pieces. For example, we should be able to apply a tree layout and then arrange the resulting trees in a flow layout or in a compact rectangle layout.

Cheers,
Doru


On May 30, 2013, at 5:41 PM, [hidden email] wrote:

> Hi
>
>
> We speak with Tudor about mixing layout, and here is something I try.
>
> ====================================
>
> | view rawView |
> rawView := ROView new.
> view := ROMondrianViewBuilder view: rawView.
> "-------------"
> "-------------"
>
>     view shape rectangle borderColor: (Color white).
>
>     view nodes: ROObject withAllSubclasses  forEach: [ :each |
>                 view nodes: each withAllSubclasses .
>                 view edgesFrom: #superclass.
>                 view layout: (ROTreeLayout new horizontalGap: 4) .
>     ].
>
>         view layout:( RORectanglePackingLayout new ratioWidth: 100 height: 100 ).
>
> "-------------"
> "-------------"
> "Below is the initiation of the menu and opening the visualization"
> ROEaselMorphic new populateMenuOn: view.
> view open
>
>
> =======================================
>
>
> So, it seems it can be done with not too long a script.
>
>
>
>
> Regards
>
> Math
>
>
> <test 2 layouts.png>_______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Reasonable is what we are accustomed with."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: Mixing layout

Tudor Girba-2
:) Look at the example I provided. The TreeLayout can identify some roots, but you do not know the roots without applying a graph algorithm first.

Cheers,
Doru


On Fri, May 31, 2013 at 12:07 PM, Usman Bhatti <[hidden email]> wrote:



On Thu, May 30, 2013 at 9:57 PM, Tudor Girba <[hidden email]> wrote:
Hi,

Not really. You could do it because you in your example you controlled the objects corresponding to the roots of the hierarchy.

But by definition, the tree has always a root. In my opinion the computation of the root is the necessary step in a layout involving trees. You can compute the root by looking at the incoming connections and setting as the root the one which does not have any, or has the least?. We had this problem when we have to represent a graph as a tree, we ask the user to provide the root.
 

Here is my challenge. Make this graph layout the trees it can and wrap the lines afterwards:

view nodes: (1 to: 100).
view edgesFrom: [ :x | x atRandom ].

:)

For everyone else: the idea is to be able to compose layouts out of layout pieces. For example, we should be able to apply a tree layout and then arrange the resulting trees in a flow layout or in a compact rectangle layout.

Cheers,
Doru


On May 30, 2013, at 5:41 PM, [hidden email] wrote:

> Hi
>
>
> We speak with Tudor about mixing layout, and here is something I try.
>
> ====================================
>
> | view rawView |
> rawView := ROView new.
> view := ROMondrianViewBuilder view: rawView.
> "-------------"
> "-------------"
>
>     view shape rectangle borderColor: (Color white).
>
>     view nodes: ROObject withAllSubclasses  forEach: [ :each |
>                 view nodes: each withAllSubclasses .
>                 view edgesFrom: #superclass.
>                 view layout: (ROTreeLayout new horizontalGap: 4) .
>     ].
>
>         view layout:( RORectanglePackingLayout new ratioWidth: 100 height: 100 ).
>
> "-------------"
> "-------------"
> "Below is the initiation of the menu and opening the visualization"
> ROEaselMorphic new populateMenuOn: view.
> view open
>
>
> =======================================
>
>
> So, it seems it can be done with not too long a script.
>
>
>
>
> Regards
>
> Math
>
>
> <test 2 layouts.png>_______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Reasonable is what we are accustomed with."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--

"Every thing has its own flow"

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev