However, I think there is still another opportunity. RTComposer should be just a view with some nodes inside where the other views reside. Then, the instructions like #move:above: should be the ability of a layout. This would imply less concepts and you would also get the ability of creating a custom layout. What do you think?

This is actually the case. 
The composer knows exactly what other builder add to the view.
Since Roassal layouts work with single elements and with groups, the layout can be used with what the builders add to the view.

Alexandre




On Mon, Aug 4, 2014 at 1:31 AM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
Dear All,

This week end has been intense for Roassal (yeah, I got a flu, so I stayed home :-)
Two major improvements of Roassal: Pie builder and Builder composition have been added.

I will send a post about the pie builder later on. In this email I want to discuss the composition. Here is an example of builder composition:

<Screen Shot 2014-08-03 at 6.55.38 PM.png>

The code is available from RTComposerExample>>exampleClassAnalysis

The cool thing, is that highlights are propagated across different builders. This means that you can globally highlight some elements. 

The class RTComposer is actually quite simple.
Here is a short and simple example, in which code dedicated to the composition is indicated in bold:
-=-=—=-=-=—=-=-=—=-=-=—=-=-=—=
classes := Collection withAllSubclasses.

c := RTComposer new.

b1 := RTMondrianViewBuilder new.
b1 view: c view. 
b1 nodes: classes.
b1 gridLayout.
b1 build.
c propagateHighlight.
c group: #hierarchy.


b2 := RTCharterBuilder new.
b2 view: c view.
b2 extent: 200 @ 200.
b2 points: classes.
b2 allY: #numberOfMethods.
b2 stackX.
b2 curve.
b2 axisX.
b2 axisYWithNumberOfTicks: 4.
c propagateHighlight.
c group: #curve.

c move: #hierarchy above: #curve.
c open
-=-=—=-=-=—=-=-=—=-=-=—=-=-=—=
<Screen Shot 2014-08-03 at 7.19.02 PM.png>

This is still early work. Many more things have to be improved. For example, the layout of builder is quite simple. Maybe we will need something more complex. The propagation of events may also be improved. 

Feedbacks are welcome. This is a crucial point of Roassal, and it has to be done right. 

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




_______________________________________________
Moose-dev mailing list
Moose-dev@iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev




--
www.tudorgirba.com

"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
Moose-dev@iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev