Hi Alexandre, Thanks! (more below) On 28 March 2018 at 14:56, Alexandre Bergel <alexandre.bergel@me.com> wrote:
Hi Alistair!
Yes, this is something we thought about some times ago.
After updating Roassal, try this: -=-=-=-=-=-=-=-=-=-=-=-= v := RTView new. b := [ :someClasses | g := RTGrapher new. g view: v. ds := RTData new. ds points: someClasses. ds y: [ :cls | cls numberOfMethods ]. ds x: [ :cls | cls numberOfLinesOfCode ]. g add: ds.
g addDecorator: (RTRangeSelector new callback: [:es | | classesToZoomIn | classesToZoomIn := es collect: #model. v cleanAll. b value: classesToZoomIn ]). g build. ].
b value: RTShape withAllSubclasses. v -=-=-=-=-=-=-=-=-=-=-=-=
Let me know how it goes.
Great, it's working fine! If you select an empty portion of the graph an error is raised - "Error: No dataset has been added?". I solved this with the following change, which simply ignores empty areas and notifies the user: RTRangeSelector>>callbackWithSelectedElements | selectedElements | selectedElements := self elementsWithinTheSelection. selectedElements ifEmpty: [ UIManager default inform: 'Empty region selected, ignoring'. ^self ]. self evaluateCallBackWithElements: selectedElements That was a quick hack, so there could well be a better solution.
From what I can see, there isn't a way to zoom back out or scroll left and right.
I might modify RTRangeSelector so that a right click zooms out. I'll have to think about scrolling a bit more. Thanks again! Alistair
Cheers, Alexandre
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On Mar 28, 2018, at 4:02 AM, Alistair Grant <akgrant0710@gmail.com> wrote:
Hi Everyone,
I'm using RTGrapher to display a simple line graph where the x-axis has values from roughly 0 to 500,000 and the y-axis from 0 to 20.
What I'd like to be able to do is to zoom in just the x-axis, i.e. instead of displaying the entire 0 to 500,000 range, be able to narrow it down in stages, to, e.g. 430,000 to 431,000. The y-axis would be unchanged, i.e. still 0 to 20. Ideally I could then scroll left and right along the x-axis.
I can create a Spec widget with buttons to redraw the graph, but was wondering if there was a better way.
Thanks, Alistair