Here is a solution: -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | browser | browser := GLMTabulator new. browser column: #list; column: #drawing.
browser transmit to: #list; andShow: [ :a | a list ]. browser transmit to: #drawing; andShow: [ :a | a roassal painting: [ :moview :collection | | m | m := ROMiniMap new. moview raw @ m. collection do: [ :x | moview view add: (ROElement spriteOn: x) + ROLabel + ROBox white ]. ROVerticalLineLayout on: moview view elements.
moview addMenu: 'map' callBack: [ :viewStack | m openMiniMapFor: viewStack ].
] ].
browser openOn: #(1 2 3 4 5 6). -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Probably not ideal, but it seems to do what you may need.
Cheers, Alexandre
On Jun 17, 2013, at 12:34 PM, Usman Bhatti usman.bhatti@gmail.com wrote:
Alex, Probably its the way keyboard shortcuts are handled in Glamour. ========================================================== This is not working:
| browser viewHack | browser := GLMTabulator new. browser column: #list; column: #drawing.
browser transmit to: #list; andShow: [ :a | a list ]. browser transmit to: #drawing; andShow: [ :a | a roassal painting: [ :moview :collection | moview raw @ (ROMiniMap new targetView: moview stack). collection do: [ :x | moview view add: (ROElement spriteOn: x) + ROLabel + ROBox white ]. ROVerticalLineLayout on: moview view elements. viewHack := moview view. ] ].
browser openOn: #(1 2 3 4 5 6).
====================================================================== But this does: | browser viewHack | browser := GLMTabulator new. browser column: #drawing.
browser transmit to: #drawing; andShow: [ :a | a roassal painting: [ :moview :collection | moview raw @ (ROMiniMap new targetView: moview stack). collection do: [ :x | moview view add: (ROElement spriteOn: x) + ROLabel + ROBox white ]. ROVerticalLineLayout on: moview view elements. viewHack := moview view. ] ].
browser openOn: #(1 2 3 4 5 6).
So may be we need to invoke the mini map without keyboard shortcuts.
usman
On Mon, Jun 17, 2013 at 5:23 PM, Alexandre Bergel alexandre.bergel@me.com wrote: Why is this not working? Can you give a complete script that we can start from?
Cheers, Alexandre
On Jun 17, 2013, at 10:47 AM, Usman Bhatti usman.bhatti@gmail.com wrote:
On Mon, Jun 17, 2013 at 3:28 PM, Alexandre Bergel alexandre.bergel@me.com wrote:
I just tried it out at now it is definetly faster. It is fast enough to be usable. The dragging is still a bit slow but that matter of seconds not minutes as before. Would it be possible to have a scrollable visualization instead of a draggable one?
Having scrollbars is on our todos for a long time. Juraj will implement one on some point. In the meantime, have you tried the minimap? This is pretty cool.
Yes it is. MiniMap is not working in Glamour-Roassal, so if someone can have a look, it'll be great.
Doit the following and press the key m:
"Source code: ROMondrianExample>>miniMapOn:" "Preambule. It includes the initialization. " | view rawView | rawView := ROView new. view := ROMondrianViewBuilder view: rawView. "-------------" "-------------"
view raw @ (ROMiniMap new targetView: view stack). "press m to open the view minimap " view shape rectangle width: [ :cls | cls numberOfVariables * 5 ]; height: #numberOfMethods; linearFillColor: #numberOfLinesOfCode within: Collection withAllSubclasses. view interaction popupText: [ :cls | cls name, (String with: Character cr), cls methods size printString, ' methods', (String with: Character cr), cls instVarNames size printString, ' variables', (String with: Character cr), cls numberOfLinesOfCode printString, ' LOC' ]. view interaction action: #browse. view nodes: Collection withAllSubclasses. view edgesFrom: #superclass. view treeLayout.
"-------------" "-------------" "Below is the initiation of the menu and opening the visualization" ROEaselMorphic new populateMenuOn: view. view open -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
<Screen Shot 2013-06-17 at 9.28.21 AM.png>
Alexandre
Cheers, Fabrizio
2013/6/16 Stéphane Ducasse Stephane.Ducasse@inria.fr
On Jun 16, 2013, at 5:12 PM, Alexandre Bergel alexandre.bergel@me.com wrote:
Stupid problem it was. The ROView object keeps a list of elements that are visible within the window. In the drawing loop, the view iterates over each elements and check if the element is visible before drawing it. However this is completely unnecessary.
why? because when you explain it it looks something smart to do :)
But there are still some optimizations to be done
Alexandre
On Jun 15, 2013, at 2:36 PM, Stéphane Ducasse stephane.ducasse@inria.fr wrote:
Alex
What was the problem?
Stef On Jun 14, 2013, at 6:30 PM, Alexandre Bergel alexandre.bergel@me.com wrote:
Hi Fabrizio,
Can you try again? It should be significantly faster, even though we are still rendering elements that are not visible.
Cheers, Alexandre
On Jun 14, 2013, at 5:41 AM, Fabrizio Perin fabrizio.perin@gmail.com wrote:
> Hi, > to have fast algorithms to layout the elements is very good, but a visualization that opens in 1 second but that I cannot touch is useless. I tried to open a name cloud visualization on a group with 21300 elements, the visulization take just few seconds to open up but than even to display a popup window with a mouse over an element take seconds. Not to mention that I cannot scroll the view or I have to wait minutes sometimes. > > The same visulization opened with a MOViewRenderer was nice and easy to interact with and to browse. > > So, my point is that the priority is absolutly to make roassal more scalable in term of interaction and not in term of initial rendering. > Cheers, > Fabrizio > > > 2013/6/8 Tudor Girba tudor@tudorgirba.com > n log(n) sounds quite good for this kind of algorithm. But, what does n mean? Is it the amount of nodes, or the amount of edges as well? > > Doru > > > On Jun 7, 2013, at 6:18 PM, Alexandre Bergel alexandre.bergel@me.com wrote: > >> Hi Mathieu, >> >> We will have a look at this asap >> >> Alexandre >> >> >> On Jun 7, 2013, at 9:19 AM, mathieubmddehouck@mailoo.org wrote: >> >>> Hi >>> >>> I've made some tests on the force based layout, and it seems it has really a complexity in nlog(n) (and we cannot do really better). >>> >>> Thus when you take 3 seconds to compute a layout with 100 nodes, then it's normal to take 40 seconds with 1000 nodes. >>> >>> >>> Regards >>> >>> Mathieu >>> >>> >>> _______________________________________________ >>> Moose-dev mailing list >>> Moose-dev@iam.unibe.ch >>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev >> >> -- >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >> 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 > > "We cannot reach the flow of things unless we let go." > > > > > _______________________________________________ > Moose-dev mailing list > Moose-dev@iam.unibe.ch > https://www.iam.unibe.ch/mailman/listinfo/moose-dev > > _______________________________________________ > Moose-dev mailing list > Moose-dev@iam.unibe.ch > https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev