Hi,
I am trying to use Mondrian for a case in which I have nested elements and crosscutting edges. The issue is that I only found a cumbersome way to specify the layout.
Here is an example:
view := RTMondrian new. view shape rectangle fillColor: Color transparent. nodes := view nodes: { { 1 . 2 } . { 11 . 12 } } forEach: [ :col | view nodes: col ]. view edges source: { 1 . 11 } connectFrom: [ :x | x ] to: [ :x | x + 1 ]. view edges source: { 1 . 2 } connectFrom: [ :x | x ] to: [ :x | x + 10 ]. nodes do: [ :each | RTNest new layout: RTTreeLayout new; on: each nest: each nestedElements ]. view
With bold I have showed the code necessary for applying the layout. In previous versions of Roassal/Mondrian, layouts were applied lazily, after the graph was constructed. This allowed us to write something like this:
view := RTMondrian new. view shape rectangle fillColor: Color transparent. view nodes: { { 1 . 2 } . { 11 . 12 } } forEach: [ :col | view nodes: col. view layout tree ]. view edges source: { 1 . 11 } connectFrom: [ :x | x ] to: [ :x | x + 1 ]. view edges source: { 1 . 2 } connectFrom: [ :x | x ] to: [ :x | x + 10 ]. view
Did I miss something or is this the only way supported currently?
Cheers, Doru
-- www.tudorgirba.com www.feenk.com
"To utilize feedback, you first have to acquire it."