Display layered tree in Roassal

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

Display layered tree in Roassal

Blondeau Vincent

Hi,

 

I would like to display a some elements by layers with Roassal.

Each element has a layer number (from 1 to 6 in the exemple) and is linked to elements from other layers (green lines).

So each line of the visualization contains elements of one layer.

 

I have tried with all the treeLayout but I don’t get a representation by the wanted layers.

 

So I asked Usman and he tells me to use userDefinedEdges:.

So I defined virtual edges from all elements from a layer to all the elements to the next layer.

 

And I get:

cid:image001.png@01CF4D0E.67BF1290

All the nodes are on the good line but the linked between them (in green) are horribly crossed.

 

Which virtual nodes should I add to make it works ? Or should I create/use a layout ?

 

Thanks for your answers,

 

Cheers,

Vincent

 




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.

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

Re: Display layered tree in Roassal

abergel
Hi Vincent, 

I am not sure to understand what you need exactly.
I just created a new builder, called RTLayerBuilder.

A simple example:
-=-=-=-=-=-=-=-=-=-=-=-=
| b |
b := RTLayerBuilder new.
b addLayer: 'ABC'.
b addLayer: 'BCA'.
b addLayer: 'DEFA'.
b open
-=-=-=-=-=-=-=-=-=-=-=-=

It gives:

By being a builder, you can enjoy all the facilities for defining shapes and interaction:

-=-=-=-=-=-=-=-=-=-=-=-=
| b |
b := RTLayerBuilder new.
b shape circle 
size: 20; withText.
b verticalGap: 30.
b horizontalGap: 40.
b addLayer: 'ABC'.
b addLayer: 'BCA'.
b addLayer: 'DEFA'.
b open
-=-=-=-=-=-=-=-=-=-=-=-=

Cheers,
Alexandre

On Apr 1, 2014, at 6:17 AM, Blondeau Vincent <[hidden email]> wrote:

Hi,
 
I would like to display a some elements by layers with Roassal.
Each element has a layer number (from 1 to 6 in the exemple) and is linked to elements from other layers (green lines).
So each line of the visualization contains elements of one layer.
 
I have tried with all the treeLayout but I don’t get a representation by the wanted layers.
 
So I asked Usman and he tells me to use userDefinedEdges:.
So I defined virtual edges from all elements from a layer to all the elements to the next layer.
 
And I get:
<image001.png>
All the nodes are on the good line but the linked between them (in green) are horribly crossed.
 
Which virtual nodes should I add to make it works ? Or should I create/use a layout ?
 
Thanks for your answers,
 
Cheers,
Vincent
 


Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




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

Re: Display layered tree in Roassal

Nicolas Anquetil
In reply to this post by Blondeau Vincent

can't you:
- create "packages" containing the elements
- display the "packages" without boxes around them
- display the elements in the (invisible) "packages"

?

nicolas

On 01/04/2014 11:17, Blondeau Vincent wrote:

Hi,

 

I would like to display a some elements by layers with Roassal.

Each element has a layer number (from 1 to 6 in the exemple) and is linked to elements from other layers (green lines).

So each line of the visualization contains elements of one layer.

 

I have tried with all the treeLayout but I don’t get a representation by the wanted layers.

 

So I asked Usman and he tells me to use userDefinedEdges:.

So I defined virtual edges from all elements from a layer to all the elements to the next layer.

 

And I get:

imap://nanqueti@zimbra.inria.fr:993/fetch%3EUID%3E/Projects/Moose-dev%3E159814?header=quotebody&part=1.1.2&filename=image001.png

All the nodes are on the good line but the linked between them (in green) are horribly crossed.

 

Which virtual nodes should I add to make it works ? Or should I create/use a layout ?

 

Thanks for your answers,

 

Cheers,

Vincent

 




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.


_______________________________________________
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: Display layered tree in Roassal

abergel
In reply to this post by abergel
Vincent, does this LayerBuilder solves your question?

Alexandre


On Apr 7, 2014, at 12:50 PM, Alexandre Bergel <[hidden email]> wrote:

> Hi Vincent,
>
> I am not sure to understand what you need exactly.
> I just created a new builder, called RTLayerBuilder.
>
> A simple example:
> -=-=-=-=-=-=-=-=-=-=-=-=
> | b |
> b := RTLayerBuilder new.
> b addLayer: 'ABC'.
> b addLayer: 'BCA'.
> b addLayer: 'DEFA'.
> b open
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> It gives:
> <Screen Shot 2014-04-07 at 12.16.31 PM.png>
>
> By being a builder, you can enjoy all the facilities for defining shapes and interaction:
>
> -=-=-=-=-=-=-=-=-=-=-=-=
> | b |
> b := RTLayerBuilder new.
> b shape circle
> size: 20; withText.
> b verticalGap: 30.
> b horizontalGap: 40.
> b addLayer: 'ABC'.
> b addLayer: 'BCA'.
> b addLayer: 'DEFA'.
> b open
> -=-=-=-=-=-=-=-=-=-=-=-=
> <Screen Shot 2014-04-07 at 12.16.44 PM.png>
>
> Cheers,
> Alexandre
>
> On Apr 1, 2014, at 6:17 AM, Blondeau Vincent <[hidden email]> wrote:
>
>> Hi,
>>  
>> I would like to display a some elements by layers with Roassal.
>> Each element has a layer number (from 1 to 6 in the exemple) and is linked to elements from other layers (green lines).
>> So each line of the visualization contains elements of one layer.
>>  
>> I have tried with all the treeLayout but I don’t get a representation by the wanted layers.
>>  
>> So I asked Usman and he tells me to use userDefinedEdges:.
>> So I defined virtual edges from all elements from a layer to all the elements to the next layer.
>>  
>> And I get:
>> <image001.png>
>> All the nodes are on the good line but the linked between them (in green) are horribly crossed.
>>  
>> Which virtual nodes should I add to make it works ? Or should I create/use a layout ?
>>  
>> Thanks for your answers,
>>  
>> Cheers,
>> Vincent
>>  
>>
>>
>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>>
>> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




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

Re: Display layered tree in Roassal

Blondeau Vincent
Thanks a lot,
It is a first step of what I want.

But, with this builder, it seems you need to have twice the element on different layers to have a link between them.
And I would like to define my own edges between two layers like in a tree graph, could you add it, please ?

By the way, how can I move the camera in the view ?

Thanks,

Vincent

-----Message d'origine-----
De : [hidden email] [mailto:[hidden email]] De la part de Alexandre Bergel
Envoyé : mardi 8 avril 2014 16:16
À : Moose-related development
Objet : [Moose-dev] Re: Display layered tree in Roassal

Vincent, does this LayerBuilder solves your question?

Alexandre


On Apr 7, 2014, at 12:50 PM, Alexandre Bergel <[hidden email]> wrote:

> Hi Vincent,
>
> I am not sure to understand what you need exactly.
> I just created a new builder, called RTLayerBuilder.
>
> A simple example:
> -=-=-=-=-=-=-=-=-=-=-=-=
>       | b |
>       b := RTLayerBuilder new.
>       b addLayer: 'ABC'.
>       b addLayer: 'BCA'.
>       b addLayer: 'DEFA'.
>       b open
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> It gives:
> <Screen Shot 2014-04-07 at 12.16.31 PM.png>
>
> By being a builder, you can enjoy all the facilities for defining shapes and interaction:
>
> -=-=-=-=-=-=-=-=-=-=-=-=
>       | b |
>       b := RTLayerBuilder new.
>       b shape circle
>               size: 20; withText.
>       b verticalGap: 30.
>       b horizontalGap: 40.
>       b addLayer: 'ABC'.
>       b addLayer: 'BCA'.
>       b addLayer: 'DEFA'.
>       b open
> -=-=-=-=-=-=-=-=-=-=-=-=
> <Screen Shot 2014-04-07 at 12.16.44 PM.png>
>
> Cheers,
> Alexandre
>
> On Apr 1, 2014, at 6:17 AM, Blondeau Vincent <[hidden email]> wrote:
>
>> Hi,
>>
>> I would like to display a some elements by layers with Roassal.
>> Each element has a layer number (from 1 to 6 in the exemple) and is linked to elements from other layers (green lines).
>> So each line of the visualization contains elements of one layer.
>>
>> I have tried with all the treeLayout but I don't get a representation by the wanted layers.
>>
>> So I asked Usman and he tells me to use userDefinedEdges:.
>> So I defined virtual edges from all elements from a layer to all the elements to the next layer.
>>
>> And I get:
>> <image001.png>
>> All the nodes are on the good line but the linked between them (in green) are horribly crossed.
>>
>> Which virtual nodes should I add to make it works ? Or should I create/use a layout ?
>>
>> Thanks for your answers,
>>
>> Cheers,
>> Vincent
>>
>>
>>
>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>>
>> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




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


Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.

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

Re: Display layered tree in Roassal

abergel
> Thanks a lot,
> It is a first step of what I want.

Excellent!

> But, with this builder, it seems you need to have twice the element on different layers to have a link between them.
> And I would like to define my own edges between two layers like in a tree graph, could you add it, please ?

I could add it, but well… my time is limited. The RTLayerBuilder is just a simple example on how to define a builder. RTLayerBuilder is extremely simple. Actually, there is just one important method (ie. longer than 2 lines of code):
-=-=-=-=-=-=-=-=-=-=-=-=
RTLayerBuilder >> renderIn: aView
        | elementsLayer topLayer currentLayer |
        "We draw the nodes"
        elementsLayer := objectLayers collect: [ :objects | self elementsWithInteractionOn: objects ].
        elementsLayer do: [ :l | RTHorizontalLineLayout new horizontalGap: horizontalGap; on: l. aView addAll: l ].
        RTVerticalLineLayout new verticalGap: verticalGap; alignCenter; on: elementsLayer.

        "We draw the edges from one layer to the layer above"
        2 to: elementsLayer size do: [ :i |
                topLayer := elementsLayer at: (i - 1).
                currentLayer := elementsLayer at: i.
                currentLayer do: [ :currentElement |
                        | aboveElements |
                        aboveElements := topLayer select: [ :el | el model = currentElement model ].
                        view addAll: (RTLine edgesFrom: currentElement toAll: aboveElements) ]
        ]
-=-=-=-=-=-=-=-=-=-=-=-=

I wrote this in 5 mn, and indeed, it can be improved. I recommend you to try to write you own builder to make it fit with you needs.

> By the way, how can I move the camera in the view ?

Have you tried RTCamera>>#translateBy:
Try this:
-=-=-=-=-=-=-=-=-=-=-=-=
| v menu |
v := RTView new.
v add: (RTEllipse new size: 50) element.

menu := RTMenuBuilder new view: v.
menu menu: '<-' callback: [ v canvas camera translateBy: -10 @ 0. v signalUpdate ].
menu menu: '->' callback: [ v canvas camera translateBy: 10 @ 0. v signalUpdate ].
menu menu: 'V' callback: [ v canvas camera translateBy: 0 @ 10. v signalUpdate ].
menu menu: '^' callback: [ v canvas camera translateBy: 0 @ -10. v signalUpdate ].
 
v
-=-=-=-=-=-=-=-=-=-=-=-=

Cheers,
Alexandre


>
>
> -----Message d'origine-----
> De : [hidden email] [mailto:[hidden email]] De la part de Alexandre Bergel
> Envoyé : mardi 8 avril 2014 16:16
> À : Moose-related development
> Objet : [Moose-dev] Re: Display layered tree in Roassal
>
> Vincent, does this LayerBuilder solves your question?
>
> Alexandre
>
>
> On Apr 7, 2014, at 12:50 PM, Alexandre Bergel <[hidden email]> wrote:
>
>> Hi Vincent,
>>
>> I am not sure to understand what you need exactly.
>> I just created a new builder, called RTLayerBuilder.
>>
>> A simple example:
>> -=-=-=-=-=-=-=-=-=-=-=-=
>>      | b |
>>      b := RTLayerBuilder new.
>>      b addLayer: 'ABC'.
>>      b addLayer: 'BCA'.
>>      b addLayer: 'DEFA'.
>>      b open
>> -=-=-=-=-=-=-=-=-=-=-=-=
>>
>> It gives:
>> <Screen Shot 2014-04-07 at 12.16.31 PM.png>
>>
>> By being a builder, you can enjoy all the facilities for defining shapes and interaction:
>>
>> -=-=-=-=-=-=-=-=-=-=-=-=
>>      | b |
>>      b := RTLayerBuilder new.
>>      b shape circle
>>              size: 20; withText.
>>      b verticalGap: 30.
>>      b horizontalGap: 40.
>>      b addLayer: 'ABC'.
>>      b addLayer: 'BCA'.
>>      b addLayer: 'DEFA'.
>>      b open
>> -=-=-=-=-=-=-=-=-=-=-=-=
>> <Screen Shot 2014-04-07 at 12.16.44 PM.png>
>>
>> Cheers,
>> Alexandre
>>
>> On Apr 1, 2014, at 6:17 AM, Blondeau Vincent <[hidden email]> wrote:
>>
>>> Hi,
>>>
>>> I would like to display a some elements by layers with Roassal.
>>> Each element has a layer number (from 1 to 6 in the exemple) and is linked to elements from other layers (green lines).
>>> So each line of the visualization contains elements of one layer.
>>>
>>> I have tried with all the treeLayout but I don't get a representation by the wanted layers.
>>>
>>> So I asked Usman and he tells me to use userDefinedEdges:.
>>> So I defined virtual edges from all elements from a layer to all the elements to the next layer.
>>>
>>> And I get:
>>> <image001.png>
>>> All the nodes are on the good line but the linked between them (in green) are horribly crossed.
>>>
>>> Which virtual nodes should I add to make it works ? Or should I create/use a layout ?
>>>
>>> Thanks for your answers,
>>>
>>> Cheers,
>>> Vincent
>>>
>>>
>>>
>>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>>>
>>> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>
> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




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

Re: Display layered tree in Roassal

Blondeau Vincent
Thanks for your time,
I succeeded to draw the edges and it's works fine.
But the edges are crossing a lot... Is there a kind of algorithm to sort the nodes to remove the crossing or I ask to much ?

By the way I found a bug in the SVG exporter
TRSVGVisitor>>drawRectangle:box:fillColor:borderWidth:borderColor:
Should  (aSmallInteger > 0 or: aColor ~= nil) be  (aSmallInteger > 0 and: [aColor ~= nil]) ?

Cheers,

Vincent


-----Message d'origine-----
De : [hidden email] [mailto:[hidden email]] De la part de Alexandre Bergel
Envoyé : mardi 8 avril 2014 19:05
À : Moose-related development
Objet : [Moose-dev] Re: Display layered tree in Roassal

> Thanks a lot,
> It is a first step of what I want.

Excellent!

> But, with this builder, it seems you need to have twice the element on different layers to have a link between them.
> And I would like to define my own edges between two layers like in a tree graph, could you add it, please ?

I could add it, but well... my time is limited. The RTLayerBuilder is just a simple example on how to define a builder. RTLayerBuilder is extremely simple. Actually, there is just one important method (ie. longer than 2 lines of code):
-=-=-=-=-=-=-=-=-=-=-=-=
RTLayerBuilder >> renderIn: aView
        | elementsLayer topLayer currentLayer |
        "We draw the nodes"
        elementsLayer := objectLayers collect: [ :objects | self elementsWithInteractionOn: objects ].
        elementsLayer do: [ :l | RTHorizontalLineLayout new horizontalGap: horizontalGap; on: l. aView addAll: l ].
        RTVerticalLineLayout new verticalGap: verticalGap; alignCenter; on: elementsLayer.

        "We draw the edges from one layer to the layer above"
        2 to: elementsLayer size do: [ :i |
                topLayer := elementsLayer at: (i - 1).
                currentLayer := elementsLayer at: i.
                currentLayer do: [ :currentElement |
                        | aboveElements |
                        aboveElements := topLayer select: [ :el | el model = currentElement model ].
                        view addAll: (RTLine edgesFrom: currentElement toAll: aboveElements) ]
        ]
-=-=-=-=-=-=-=-=-=-=-=-=

I wrote this in 5 mn, and indeed, it can be improved. I recommend you to try to write you own builder to make it fit with you needs.

> By the way, how can I move the camera in the view ?

Have you tried RTCamera>>#translateBy:
Try this:
-=-=-=-=-=-=-=-=-=-=-=-=
| v menu |
v := RTView new.
v add: (RTEllipse new size: 50) element.

menu := RTMenuBuilder new view: v.
menu menu: '<-' callback: [ v canvas camera translateBy: -10 @ 0. v signalUpdate ].
menu menu: '->' callback: [ v canvas camera translateBy: 10 @ 0. v signalUpdate ].
menu menu: 'V' callback: [ v canvas camera translateBy: 0 @ 10. v signalUpdate ].
menu menu: '^' callback: [ v canvas camera translateBy: 0 @ -10. v signalUpdate ].

v
-=-=-=-=-=-=-=-=-=-=-=-=

Cheers,
Alexandre


>
>
> -----Message d'origine-----
> De : [hidden email]
> [mailto:[hidden email]] De la part de Alexandre Bergel
> Envoyé : mardi 8 avril 2014 16:16 À : Moose-related development Objet
> : [Moose-dev] Re: Display layered tree in Roassal
>
> Vincent, does this LayerBuilder solves your question?
>
> Alexandre
>
>
> On Apr 7, 2014, at 12:50 PM, Alexandre Bergel <[hidden email]> wrote:
>
>> Hi Vincent,
>>
>> I am not sure to understand what you need exactly.
>> I just created a new builder, called RTLayerBuilder.
>>
>> A simple example:
>> -=-=-=-=-=-=-=-=-=-=-=-=
>>      | b |
>>      b := RTLayerBuilder new.
>>      b addLayer: 'ABC'.
>>      b addLayer: 'BCA'.
>>      b addLayer: 'DEFA'.
>>      b open
>> -=-=-=-=-=-=-=-=-=-=-=-=
>>
>> It gives:
>> <Screen Shot 2014-04-07 at 12.16.31 PM.png>
>>
>> By being a builder, you can enjoy all the facilities for defining shapes and interaction:
>>
>> -=-=-=-=-=-=-=-=-=-=-=-=
>>      | b |
>>      b := RTLayerBuilder new.
>>      b shape circle
>>              size: 20; withText.
>>      b verticalGap: 30.
>>      b horizontalGap: 40.
>>      b addLayer: 'ABC'.
>>      b addLayer: 'BCA'.
>>      b addLayer: 'DEFA'.
>>      b open
>> -=-=-=-=-=-=-=-=-=-=-=-=
>> <Screen Shot 2014-04-07 at 12.16.44 PM.png>
>>
>> Cheers,
>> Alexandre
>>
>> On Apr 1, 2014, at 6:17 AM, Blondeau Vincent <[hidden email]> wrote:
>>
>>> Hi,
>>>
>>> I would like to display a some elements by layers with Roassal.
>>> Each element has a layer number (from 1 to 6 in the exemple) and is linked to elements from other layers (green lines).
>>> So each line of the visualization contains elements of one layer.
>>>
>>> I have tried with all the treeLayout but I don't get a representation by the wanted layers.
>>>
>>> So I asked Usman and he tells me to use userDefinedEdges:.
>>> So I defined virtual edges from all elements from a layer to all the elements to the next layer.
>>>
>>> And I get:
>>> <image001.png>
>>> All the nodes are on the good line but the linked between them (in green) are horribly crossed.
>>>
>>> Which virtual nodes should I add to make it works ? Or should I create/use a layout ?
>>>
>>> Thanks for your answers,
>>>
>>> Cheers,
>>> Vincent
>>>
>>>
>>>
>>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>>>
>>> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>>> _______________________________________________
>>> Moose-dev mailing list
>>> [hidden email]
>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>
> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




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


Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.

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

Re: Display layered tree in Roassal

PabloEstefo
Hi Vincent,

On Apr 9, 2014, at 6:59, Blondeau Vincent <[hidden email]> wrote:

> Thanks for your time,
> I succeeded to draw the edges and it's works fine.
> But the edges are crossing a lot... Is there a kind of algorithm to sort the nodes to remove the crossing or I ask to much ?
>
> By the way I found a bug in the SVG exporter
> TRSVGVisitor>>drawRectangle:box:fillColor:borderWidth:borderColor:
> Should  (aSmallInteger > 0 or: aColor ~= nil) be  (aSmallInteger > 0 and: [aColor ~= nil]) ?

That was a known bug and it is fixed in the last version. Thanks for pointing it.

Cheers,
Pablo

>
> Cheers,
>
> Vincent
>
>
> -----Message d'origine-----
> De : [hidden email] [mailto:[hidden email]] De la part de Alexandre Bergel
> Envoyé : mardi 8 avril 2014 19:05
> À : Moose-related development
> Objet : [Moose-dev] Re: Display layered tree in Roassal
>
>> Thanks a lot,
>> It is a first step of what I want.
>
> Excellent!
>
>> But, with this builder, it seems you need to have twice the element on different layers to have a link between them.
>> And I would like to define my own edges between two layers like in a tree graph, could you add it, please ?
>
> I could add it, but well... my time is limited. The RTLayerBuilder is just a simple example on how to define a builder. RTLayerBuilder is extremely simple. Actually, there is just one important method (ie. longer than 2 lines of code):
> -=-=-=-=-=-=-=-=-=-=-=-=
> RTLayerBuilder >> renderIn: aView
>        | elementsLayer topLayer currentLayer |
>        "We draw the nodes"
>        elementsLayer := objectLayers collect: [ :objects | self elementsWithInteractionOn: objects ].
>        elementsLayer do: [ :l | RTHorizontalLineLayout new horizontalGap: horizontalGap; on: l. aView addAll: l ].
>        RTVerticalLineLayout new verticalGap: verticalGap; alignCenter; on: elementsLayer.
>
>        "We draw the edges from one layer to the layer above"
>        2 to: elementsLayer size do: [ :i |
>                topLayer := elementsLayer at: (i - 1).
>                currentLayer := elementsLayer at: i.
>                currentLayer do: [ :currentElement |
>                        | aboveElements |
>                        aboveElements := topLayer select: [ :el | el model = currentElement model ].
>                        view addAll: (RTLine edgesFrom: currentElement toAll: aboveElements) ]
>        ]
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> I wrote this in 5 mn, and indeed, it can be improved. I recommend you to try to write you own builder to make it fit with you needs.
>
>> By the way, how can I move the camera in the view ?
>
> Have you tried RTCamera>>#translateBy:
> Try this:
> -=-=-=-=-=-=-=-=-=-=-=-=
> | v menu |
> v := RTView new.
> v add: (RTEllipse new size: 50) element.
>
> menu := RTMenuBuilder new view: v.
> menu menu: '<-' callback: [ v canvas camera translateBy: -10 @ 0. v signalUpdate ].
> menu menu: '->' callback: [ v canvas camera translateBy: 10 @ 0. v signalUpdate ].
> menu menu: 'V' callback: [ v canvas camera translateBy: 0 @ 10. v signalUpdate ].
> menu menu: '^' callback: [ v canvas camera translateBy: 0 @ -10. v signalUpdate ].
>
> v
> -=-=-=-=-=-=-=-=-=-=-=-=
>
> Cheers,
> Alexandre
>
>
>>
>>
>> -----Message d'origine-----
>> De : [hidden email]
>> [mailto:[hidden email]] De la part de Alexandre Bergel
>> Envoyé : mardi 8 avril 2014 16:16 À : Moose-related development Objet
>> : [Moose-dev] Re: Display layered tree in Roassal
>>
>> Vincent, does this LayerBuilder solves your question?
>>
>> Alexandre
>>
>>
>> On Apr 7, 2014, at 12:50 PM, Alexandre Bergel <[hidden email]> wrote:
>>
>>> Hi Vincent,
>>>
>>> I am not sure to understand what you need exactly.
>>> I just created a new builder, called RTLayerBuilder.
>>>
>>> A simple example:
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>     | b |
>>>     b := RTLayerBuilder new.
>>>     b addLayer: 'ABC'.
>>>     b addLayer: 'BCA'.
>>>     b addLayer: 'DEFA'.
>>>     b open
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>
>>> It gives:
>>> <Screen Shot 2014-04-07 at 12.16.31 PM.png>
>>>
>>> By being a builder, you can enjoy all the facilities for defining shapes and interaction:
>>>
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>>     | b |
>>>     b := RTLayerBuilder new.
>>>     b shape circle
>>>             size: 20; withText.
>>>     b verticalGap: 30.
>>>     b horizontalGap: 40.
>>>     b addLayer: 'ABC'.
>>>     b addLayer: 'BCA'.
>>>     b addLayer: 'DEFA'.
>>>     b open
>>> -=-=-=-=-=-=-=-=-=-=-=-=
>>> <Screen Shot 2014-04-07 at 12.16.44 PM.png>
>>>
>>> Cheers,
>>> Alexandre
>>>
>>> On Apr 1, 2014, at 6:17 AM, Blondeau Vincent <[hidden email]> wrote:
>>>
>>>> Hi,
>>>>
>>>> I would like to display a some elements by layers with Roassal.
>>>> Each element has a layer number (from 1 to 6 in the exemple) and is linked to elements from other layers (green lines).
>>>> So each line of the visualization contains elements of one layer.
>>>>
>>>> I have tried with all the treeLayout but I don't get a representation by the wanted layers.
>>>>
>>>> So I asked Usman and he tells me to use userDefinedEdges:.
>>>> So I defined virtual edges from all elements from a layer to all the elements to the next layer.
>>>>
>>>> And I get:
>>>> <image001.png>
>>>> All the nodes are on the good line but the linked between them (in green) are horribly crossed.
>>>>
>>>> Which virtual nodes should I add to make it works ? Or should I create/use a layout ?
>>>>
>>>> Thanks for your answers,
>>>>
>>>> Cheers,
>>>> Vincent
>>>>
>>>>
>>>>
>>>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>>>>
>>>> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> [hidden email]
>>>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>>
>> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
>
> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
>
> _______________________________________________
> 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: Display layered tree in Roassal

abergel
In reply to this post by Blondeau Vincent
> But the edges are crossing a lot... Is there a kind of algorithm to sort the nodes to remove the crossing or I ask to much ?

What you are asking for is not trivial actually :-)
There is the sugiyama layout which is exactly about that: minimizing edge crossing.
I do not know how does it fit in your situation.
Have you tried to order the elements of each layers, according to what there is in the above layer? I would guess this result in something reasonable.

Alexandre

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



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