This is a post in two parts. The first is purely Rossal and the second is on the Glamour-Roassal integration.
Part One RODraggableWithVelocity seems to have a problem overshooting the drag distance with large numbers of elements. For example, referring to the next script, with RODraggable only, if I drag the view background sideways by a quarter-window-width, even though it takes a few seconds to respond to a drag, the final position of the elements is a quarter-window-width sideways. However with RODraggableWithVelocity, doing the same action, I observe the elements briefly appear a quarter-window-width sideways, then another quarter-window-width, then another until the elements disappear off the side of the window. This behaviour disappears from this example by reducing to 1000 elements, but occurs in my application with only 100 elements (plus an equal number of edges). ----- | rawView domain | rawView := ROView new @ RODraggable " @ RODraggableWithVelocity " . domain := 1 to: 10000. domain do: [ :x | rawView add: (ROElement on: x) + (ROLabel) ]. ROVerticalLineLayout on: rawView elements. rawView open ----
Part Two Given that the paintingBlock of the GLMRoassalPresentation returned by 'GLMCompositePResentation>>rossal' is passed a ROMondrianViewBuilder that has already added RODraggableWithVelocity to the rawView, how do I remove that RODraggableWithVelocity from the rawView? The '@' method seems to work differently between ROView (in processing the interaction straight away) and ROElement (which seems to store the interaction for later processing so it can be removed more easily).
In addition, could something like a GLMMorphicRoassalRawRenderer be added to the Glamour-Roassal interface? - which would pass an unencumbered ROView to the paintingBlock. It is not really a Glamour-Roassal interface at the moment, more of a Glamour-Mondrian interface. I hacked up a GLMMorphicRoassalRawRenderer as best I could as part of my experiment with "Interactive Roassal" but it wasn't very elegant and I'm not sure it was correct.
cheers -ben