Here a screenshot of Ben's script:


We will soon release Roassal. Within 2 or 3 days. Roassal is truly mind blowing :-)

Cheers,
Alexandre


On 1 May 2012, at 12:58, Ben Coman wrote:

Just sharing a cool result of some experimentation with Mondrian.  I was pleasantly surprised with what I ended up with.
Contents of attached text file can be copied to Workspace.  Also I've uploaded this for Mondrian Easel as Mondrian-Example-BenComan.44.

cheers -ben


| view b actionBlock makeMenu |

view := MOViewRenderer new.

"Define shape such that the MOLayout name is displayed above the subview children"
b := MOFormsBuilder new.
b column; fill; row; fill; row; fill .
b x:1 y:1 add:
( MORectangleShape new
text: [ :value | (view nodeForDomainValue: value) layout. ];
textAlignment: #center;
borderColor: Color white
) .
b x:1 y:2 add: ( MORectangleShape new ) .
b x:1 y:2 add: ( MOChildrenShape new ) .
view shape: b shape.

"Define menus for setting the layouts of subviews"
actionBlock :=
[ :selectedValue :newLayout |
| element position |
element := view nodeForDomainValue: selectedValue.
position := element bounds origin.
element layout: newLayout.
element applyLayout.
element resetFormCacheUpToTheRoot.
element translateBy: position.
view updateWindow.
].
makeMenu :=
[ :layout |
view interaction item: (layout class name asString) action: [ :selectedValue | actionBlock value: selectedValue value: layout ].
].
makeMenu value: (MOGridLayout new).
makeMenu value: (MOBottomFlowLayout new).
makeMenu value: (MOBulletTreeLayout new).
makeMenu value: (MOCircleLayout new scaleBy: 6).
makeMenu value: (MODominanceTreeLayout new).
makeMenu value: (MOFADELayout new).
makeMenu value: (MOFlowLayout new).
makeMenu value: (MOForceBasedLayout new).
makeMenu value: (MOHorizontalDominanceTreeLayout new).
makeMenu value: (MOFlowLayout new).
makeMenu value: (MODominanceTreeLayout new).
makeMenu value: (MOHorizontalLineLayout new).
makeMenu value: (MOHorizontalNarrowTreeLayout new).
makeMenu value: (MOHorizontalTreeLayout new).
makeMenu value: (MOMinimumGridLayout new).
makeMenu value: (MOVerticalNarrowTreeLayout new).
makeMenu value: (MORadialTreeLayout new).
makeMenu value: (MOSpringLayout new).
makeMenu value: (MOSugiyamaLayout new).
makeMenu value: (MOTreeLayout new).
makeMenu value: (MOVerticalLineLayout new).

"Define some nodes and edges"
view
nodes: (10 to: 70 by: 10)
forEach:
[ :each |
view shape rectangle size: 20; withText.
view nodes: ( each+1 to: each+9).

view edge: each+1 from: each+1 to: each+2.
view edge: each+1 from: each+1 to: each+3.
view edge: each+1 from: each+1 to: each+4.
view edge: each+2 from: each+2 to: each+5.
view edge: each+2 from: each+2 to: each+6.
view edge: each+2 from: each+2 to: each+7.
view edge: each+3 from: each+3 to: each+7.
view edge: each+3 from: each+3 to: each+8.
view edge: each+3 from: each+3 to: each+9.

view circleLayout scaleBy: 6.
].
view circleLayout scaleBy: 25.

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

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