I started yesterday to read the chapter. I bought the book at ESUG. :D

On Sep 20, 2013, at 3:13 PM, Alejandro Infante <alejandroinfant...@gmail.com>
 wrote:

> Also I forgot to tell you that the new book "Deep into Pharo" has a chapter 
> for Roassal and another for Mondrian.
> 
> Maybe that's the best place to start from, the link of the book is 
> http://rmod.lille.inria.fr/pbe2/.
> 
> 
> 2013/9/20 roberto.mine...@usi.ch <roberto.mine...@usi.ch>
> Thanks Alejandro,
> 
> Yes I went through the examples and I understood the difference between the 
> examples using the builder (which are easier) and with pure Roassal, which 
> are..let's say.. less user friendly..
> 
> I am trying, in pure Roassal, to do a tree map and add another node to the 
> ROView then calling signalUpdate. No luck 'till now..
> 
> Cheers,
> R
> 
> On Sep 20, 2013, at 3:01 PM, Alejandro Infante <alejandroinfant...@gmail.com>
>  wrote:
> 
> > Well,
> > If you started with the Easel then you must have seen the examples. Well at 
> > first you see two boxes with examples inside (one on the top and the other 
> > below (If you dont see the second one just drag the view).
> >
> > The first one has a label at the top-left corner that says 
> > ROMondrianExample, and this were done using the ROMondrianViewBuilder API, 
> > and you can see that you interact mainly with the "view" variable.
> > The second box is called ROExample and then you interact mainly with the 
> > "rawView" variable which is pure Roassal.
> >
> > The difference between them is that the ROMondrianViewBuilder is a nice and 
> > friendly API, but doing really complex stuff it's not possible. So we go 
> > one level below to pure Roassal.
> >
> > Here you have the Collection class hierarchy in Roassal:
> > |rawView|
> >       rawView := ROView new.
> >       Collection withAllSubclasses do: [ :c |
> >               | el |
> >               el := ROBorder elementOn: c.
> >               el @ ROPopup.
> >               rawView add: el ].
> >
> >       "Draw edges"
> >       rawView addAll: (ROEdge
> >                               buildEdgesFromElements: rawView elements
> >                               from:  [ :cls | cls superclass ]
> >                               to: #yourself
> >                               using: ROLine new).
> >
> >       ROTreeLayout on: rawView elementsNotEdge edges: rawView 
> > elementsAsEdge.
> >       rawView open.
> >
> > I recommend you to see the ROExamples and if there is something that you 
> > don't know just ask to the mailing list.
> > You may like to see the ROExamples>>interactions>>addingOnClick example.
> >
> >
> > 2013/9/20 roberto.mine...@usi.ch <roberto.mine...@usi.ch>
> > Thanks Alejandro, I will try what you propose!
> >
> > What do you mean by
> > > Another thing bothering me is that you mentioned the method #nodes, thats 
> > > from the ROMondrianViewBuilder, which I think is not that friendly with 
> > > dynamic stuff.
> >
> > How would you construct a view without using the ROMondrianViewBuilder? I 
> > am used to start as in the Roassal Easel like
> >         rawView := ROView new.
> >         view := ROMondrianViewBuilder view: rawView
> >
> > And then adding nodes to the view, calling view nodes: myNodes
> >
> > Cheers,
> > R
> >
> >
> >
> > On Sep 20, 2013, at 1:49 PM, Alejandro Infante 
> > <alejandroinfant...@gmail.com>
> >  wrote:
> >
> > > In Roassal calling the method #signalUpdate to the view should show those 
> > > new nodes. If you want to re-layout the nodes you should apply a new 
> > > layout to the nodes before the #signalUpdate.
> > >
> > > Another pretty interesting feature is the method ROContainer>>callback: 
> > > aCallback. The idea is that every time an element is added inside the 
> > > container the callback is called.
> > > Now how you can use this:
> > >
> > > element callback: (ROContainerCallbackLayout new layout: (ROGridLayout 
> > > new gapSize: 2)).
> > >
> > > Remember that you must send signalUpdate to the view if you want to see 
> > > the changes.
> > >
> > > Another thing bothering me is that you mentioned the method #nodes, thats 
> > > from the ROMondrianViewBuilder, which I think is not that friendly with 
> > > dynamic stuff.
> > > It is a little bit ugly but you can always get the ROView from 
> > > ROMondrianViewBuilder sending the message #view and over that do all kind 
> > > of Roassal magic stuff, like adding the callback with the TreeLayout the 
> > > the ROView itself. Also for adding new nodes you should add them directly 
> > > to the ROView, or at least I haven't found the way to do that without 
> > > having to add all the nodes again to the Builder.
> > >
> > > Hope that help you.
> > >
> > >
> > > 2013/9/20 roberto.mine...@usi.ch <roberto.mine...@usi.ch>
> > > *and have the visualization re-layouted?
> > >
> > > On Sep 20, 2013, at 11:24 AM, "roberto.mine...@usi.ch" 
> > > <roberto.mine...@usi.ch>
> > >  wrote:
> > >
> > > > Hi,
> > > >
> > > > I was playing around with Roassal (in particular, a tree map) and I 
> > > > have a question: Is there a way to dynamically adding nodes? I mean, 
> > > > once the view is generated to update the #nodes by adding a new node 
> > > > (and associations as well, i.e., edges) and have the visualization re-
> > > >
> > > > Thanks in advance.
> > > >
> > > > Roby
> > >
> > >
> > >
> >
> >
> >
> 
> 
> 


Reply via email to