Hi 

I do not recommend to use Mondrian for doing what you need. Actually, I suggest 
to make your own layout. 
You may want to check the following code example:

-=-=-=-=-=-=-=-=-=
classes := RTShape withAllSubclasses.

oldestAge := (classes collect: #ageInDays) max.

v := RTView new.
v @ RTDraggableView.
classes doWithIndex: [ :c :index |
        elements := RTEllipse new elementsOn: c methods.
        v addAll: elements.
        RTMetricNormalizer new
                elements: elements;
                normalizeX: #ageInDaysAsInteger min: 0 max: 200 minValue: 0 
maxValue: oldestAge.
        elements translateBy: 0 @ (index * 10).
        RTEdgeBuilder new
                view: v;
                linkElements: elements.
].
v
-=-=-=-=-=-=-=-=-=



I guess it is kind of close of what you need.

Cheers,
Alexandre


> On Jun 20, 2015, at 3:44 PM, Offray Vladimir Luna Cárdenas 
> <off...@riseup.net> wrote:
> 
> Thanks Alexandre and Nicolai,
> 
> Now with a modified version of the script at http://ws.stfx.eu/AOPPDKEGTVFG I 
> get the result below at the left, which has practically the same topology of 
> the original fossil timeline tree below at right. Now I would like to change 
> the edge length so it can convey commit date information (when commit 
> happens) and look even more similar. I will make some test with RTMultiLine 
> and orthoVertical shapes for edges, but any pointer to edge length variation 
> and node distance examples will be greatly appreciated. 
> 
> Finally about why "parents" instead of "parent" I try to use the same terms 
> in the Json file export for the properties imported in the object. I imagine 
> that if a commit is a merge of several branches, it could have several 
> parents. I will test with more complicated trees to test if this case prompts.
> 
> <abjfehfd..png><jfbdfbaj..png> 
> 
> 
> Cheers,
> 
> Offray
> 
> 
> 
> On 20/06/15 12:46, Alexandre Bergel wrote:
>> Hi Offray,
>> 
>> The problem is rather easy to solve. Consider this script:
>> 
>> -=-=-=-=-=-=-=-=-=-=-=-=
>> timeline := FossilTimeline new.
>> timeline importFromUrl:  '
>> http://mutabit.com/deltas/repos.fossil/piamed/libro/doc/tip/Libro/timeline-buscador.json
>> '.
>> 
>> 
>> "Visualization"
>> view := RTMondrian new.
>> view nodes: timeline commits.
>> view edges
>>     connectFrom: #parents.
>> view layout tree.
>> view.
>> -=-=-=-=-=-=-=-=-=-=-=-=
>> 
>> Apparently, each fossil commit has a parent. The parent could be nil (which 
>> is okay).
>> Why do you call the variable “parents” and not “parent” ?
>> 
>> Cheers,
>> Alexandre
>> 
>> 
>>> On Jun 19, 2015, at 9:41 AM, Offray Vladimir Luna Cárdenas 
>>> <off...@riseup.net>
>>>  wrote:
>>> 
>>> Alexandre,
>>> 
>>> Could you please run this:
>>> 
>>> ~~~~~~~~~
>>> "Adapted from: 
>>> https://vimeo.com/116886609
>>> "
>>> | view timeline |
>>> 
>>> "Loading package for working with fossil"
>>> "Integration with external tools"
>>> Gofer new 
>>>     smalltalkhubUser: 'Offray' project: 'Grafoscopio';
>>>     package: 'Grafoscopio-ExternalTools';
>>>     load.
>>> 
>>> "Extracting data"
>>> timeline := FossilTimeline new.
>>> timeline importFromUrl:  '
>>> http://mutabit.com/deltas/repos.fossil/piamed/libro/doc/tip/Libro/timeline-buscador.json
>>> '.
>>> 
>>> "Visualization"
>>> view := RTMondrian new.
>>> view nodes: timeline commits.
>>> view edges
>>>     connectFrom: [#parents first].
>>> view layout tree.
>>> view.
>>> "(timeline commits at: 1) parents first"
>>> ~~~~~~~~~
>>> 
>>> At the end you will get a set of squares visualized like this ones:
>>> 
>>> <jcjdcjje..png>
>>> ^Up Graphic 1: Trying to understand edges.
>>> 
>>> These squares are representations of FossilCommits objects imported from a 
>>> Json file, and the "connectFrom: [#parents first]" is the line I'm having 
>>> problems with. "#parents first" is the message I send to each node to know 
>>> its parents in that very collection of commits, so I imagined that if I put 
>>> that as the block argument for "connectFrom" I would get a nice tree, 
>>> similar to the graphic 2 below. I don't get what's happening here or what 
>>> I'm missing.
>>> 
>>> <cfbfiagc..png>
>>> ^ Up Graphic 2: A nicely drawn mondrian tree layout for RTLayout.
>>> 
>>> Any help on how to get tree like visualizations for this Fossil objects 
>>> would be greatly appreciated.
>>> 
>>> Thanks,
>>> 
>>> Offray
>>> 
>>> Ps: Something was happening with ws.stfx.eu this morning at 7:00 (GMT -5) 
>>> and trying to publish a workspace gives a 500 error.
>>> 
>>> 
>>> On 16/06/15 16:08, Alexandre Bergel wrote:
>>> 
>>>> I am not really following. Hard to guess here.
>>>> 
>>>> Can you make the image accessible for me? I can then have a closer look at 
>>>> it.
>>>> 
>>>> Alexandre
>>>> 
>>>> 
>>>> 
>>>> 
>>>>> On Jun 15, 2015, at 3:18 PM, Offray Vladimir Luna Cárdenas 
>>>>> <off...@riseup.net>
>>>>> 
>>>>>  wrote:
>>>>> 
>>>>> Hi all. Is me again :),
>>>>> 
>>>>> I have being fighting all this morning trying to bet a better 
>>>>> understanding of edge connections and tree layouts. I'm making some 
>>>>> progress, but still I don't grasp it. At [1] you can find my starting 
>>>>> example. So far, so good, so I created my own variation for my own data 
>>>>> at [2]. My main issue is the #connectFrom message argument. If you 
>>>>> uncomment the last line of [1] you will see that sending the #superclass 
>>>>> message gives me an object that is of the same kind that the ones have 
>>>>> been added to the view previously and I imagine that the reason they can 
>>>>> be connected in a tree. With the example at [2] the message [#parents 
>>>>> first] gives me a fossil commit object, but if I ran the code, the nodes 
>>>>> are unconnected. What I'm missing?
>>>>> 
>>>>> [1] 
>>>>> 
>>>>> http://ws.stfx.eu/DK3VNXBVAHXF
>>>>> 
>>>>> 
>>>>> [2] 
>>>>> 
>>>>> http://ws.stfx.eu/DHF4VIR8TSPC
>>>>> 
>>>>> 
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> Offray
>>>>> 
>>>>> On 15/06/15 06:47, Offray Vladimir Luna Cárdenas wrote:
>>>>> 
>>>>> 
>>>>>> Hi Peter,
>>>>>> 
>>>>>> Thanks for your quick answer. I was pretty curious about trying to 
>>>>>> implement some of this ideas, but only until today I had the proper time 
>>>>>> to do it. I ran your code and now I'm trying to translate the ideas on 
>>>>>> it to my problem: Drawing a tree for the story of a fossil repository. 
>>>>>> 
>>>>>> First, using the procedure at [1] I was able to export a fossil commit 
>>>>>> repo history as Json and by running the script at [2] I was able to get 
>>>>>> a small set of dots, which represent dictionaries with all commit data, 
>>>>>> including ancestors for each node, like the attached screenshot shows. 
>>>>>> In the video at [3] at 1:06 min, seems that lays the key for my 
>>>>>> visualization, but for that I need to create a fossil commit object that 
>>>>>> can understand the #ancestor message. Because I already have them as 
>>>>>> dictionaries thanks to NeoJson, seems that I'm really close to get the 
>>>>>> visualization I'm looking for. I hope to work on it this morning and 
>>>>>> return to the list with data visualizations or more questions.
>>>>>> 
>>>>>> 
>>>>>> [1] 
>>>>>> 
>>>>>> http://stackoverflow.com/questions/30577090/how-to-export-fossil-scm-timeline-to-another-format/30584926#30584926
>>>>>> 
>>>>>> 
>>>>>> [2] 
>>>>>> 
>>>>>> http://ws.stfx.eu/A5C8JJMA2HUK
>>>>>> 
>>>>>> 
>>>>>> [3] 
>>>>>> 
>>>>>> https://vimeo.com/116886609
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Cheers,
>>>>>> 
>>>>>> Offray
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On 02/06/15 05:09, Peter Uhnák wrote:
>>>>>> 
>>>>>> 
>>>>>>> HI Offray,
>>>>>>> 
>>>>>>> I gave it a quick bash and come up with the following code. It's just a 
>>>>>>> prototype and could be greatly simplified.
>>>>>>> 
>>>>>>> - MCVersionInfo ancestors for whatever reason returned empty array down 
>>>>>>> the line (so its cut off at the end), but I didn't investigate the 
>>>>>>> problem
>>>>>>> - edge building and possibly ancestor retrieval could be simplified 
>>>>>>> with builders; I think RTMondrian has methods for it but can't remember 
>>>>>>> exactly (agilevisualization mentioned RTGraphBuilder but that has been 
>>>>>>> removed to my knowledge)
>>>>>>> 
>>>>>>> ~~~~~~~~~~~~~~~
>>>>>>> mc := MCSmalltalkhubRepository allInstances detect: [ :m | m project = 
>>>>>>> 'Roassal2' ].
>>>>>>> 
>>>>>>> root := mc versionInfoFromFileNamed: mc readableFileNames first.
>>>>>>> 
>>>>>>> family := Set new.
>>>>>>> retriever := nil.
>>>>>>> retriever := [ :child |
>>>>>>>  family add: child.
>>>>>>>  child ancestors do: [ :a | retriever value: a ]
>>>>>>> ].
>>>>>>> retriever value: root.
>>>>>>> obs := family asGroup.
>>>>>>> 
>>>>>>> v := RTView new.
>>>>>>> es := RTEllipse new size: 15; color: Color blue; elementsOn: obs.
>>>>>>> v addAll: es.
>>>>>>> 
>>>>>>> edges := RTEdge
>>>>>>>  buildEdgesFromObjects: obs
>>>>>>>  from: #yourself
>>>>>>>  toAll: #ancestors
>>>>>>>  using: (RTArrowedLine new withShorterDistanceAttachPoint; color: Color 
>>>>>>> red)
>>>>>>>  scope: es.
>>>>>>> v addAll: edges.
>>>>>>> 
>>>>>>> es @ RTDraggable.
>>>>>>> es @ (RTLabelled new text: [ :m | m nameWithout: 'Roassal2' ]).
>>>>>>> 
>>>>>>> v @ RTDraggableView.
>>>>>>> v @ RTZoomableView.
>>>>>>> 
>>>>>>> RTDominanceTreeLayout new
>>>>>>>  verticalGap: 30;
>>>>>>>  horizontalGap: 15;
>>>>>>>  on: es.
>>>>>>> 
>>>>>>> v open
>>>>>>> ~~~~~~~~~~~~~~~~
>>>>>>> 
>>>>>>> 
>>>>>>> <Mail Attachment.png>
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> Peter
>>>>>>> ​
>>>>>>> 
>>>>>>> On Tue, Jun 2, 2015 at 5:39 AM, Offray Vladimir Luna Cárdenas 
>>>>>>> 
>>>>>>> <off...@riseup.net>
>>>>>>> 
>>>>>>>  wrote:
>>>>>>> Hi,
>>>>>>> 
>>>>>>> On a closer detail, seems that [1] contains the starting point I'm 
>>>>>>> looking for. I'll keep you posted and of course any other approach will 
>>>>>>> be listened.
>>>>>>> 
>>>>>>> [1] 
>>>>>>> 
>>>>>>> https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/Roassal/0104-Roassal.html
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> 
>>>>>>> Offray
>>>>>>> 
>>>>>>> 
>>>>>>> On 01/06/15 22:04, Offray Vladimir Luna Cárdenas wrote:
>>>>>>> Hi all,
>>>>>>> 
>>>>>>> I had asked a similar question before with no much advances, but today 
>>>>>>> I made a discovery that can improve the things a lot: how to export 
>>>>>>> timeline data as structured JSON [1] (and of course this open the 
>>>>>>> possibility to work with it on Pharo). Now I would like to graph the 
>>>>>>> data as a tree with forks, merges and dates and authors of commits. I 
>>>>>>> have seen chronia, but seems overkill for this feature (and is 
>>>>>>> integrated with CVS only).
>>>>>>> 
>>>>>>> [1] 
>>>>>>> 
>>>>>>> http://stackoverflow.com/questions/30577090/how-to-export-fossil-scm-timeline-to-another-format/30580043#30580043
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> As usual, any pointer on how to get this going will be greatly 
>>>>>>> appreciated and I will give feedback to the community on how to do it.
>>>>>>> 
>>>>>>> Cheers,
>>>>>>> 
>>>>>>> Offray
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
> 

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



Reply via email to