Here is a solution:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| browser |
browser := GLMTabulator new.m := ROMiniMap 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 |
moview raw @ m.
collection do: [ :x | moview view add: (ROElement spriteOn: x) + ROLabel + ROBox white ].moview addMenu: 'map' callBack: [ :viewStack |
ROVerticalLineLayout on: moview view elements.
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
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
Moose-dev mailing list
Moose-dev@iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev