An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20081023/665365da/attachment.pl>
Getting the panel location of a xyplot matrix using a mouse click in a GDCanvas
3 messages · Daniel Kornhauser, Deepayan Sarkar
On Thu, Oct 23, 2008 at 12:26 PM, Daniel Kornhauser
<dkor at northwestern.edu> wrote:
Hi:
I would like to find out the panel of a xyplot matrix where a mouse clicked.
I know this functionality is already bundled in trellis.focus but I can't
use it because I am coding a stand alone application in Java using with
GDCanvas as a graphics device.
I tried calling trellis.focus from Java with:
re.eval("t = trellis.focus()"));
However it did not work for an embedded GDCanvas. The above call to the
trellis.focus() returns null no matter where I click.
(Side note: the functionality must be implemented in the GDCanvas because
trellis.focus does work correctly in JGR)
I wish to handle all the user GUI events in Java to evaluate different
commands in an Rengine.
With a GDCanvas, it's straightforward to get the x y position of a mouse
click with the standard e.getX() and e.getY()
So my handler would look like:
public void mouseClicked(MouseEvent e) {
System.out.println("Clicked" + e.getX() + " " + e.getY());
System.out.println(re.eval("t = trellis.focus()"));
System.out.println(re.eval("t"));
// I would update the panel here ...
}
I am only using Java because:
- I am proficient in Java GUI programmer
- It is multiplatform
Another way of posing the question is:
Given the coordinates from grid.location how can I find out the plane of an
xyplot matrix where the user clicked.
I have tried to figure out how to do it from code using trellis.clickFocus,
but I have have only been playing with R for a week, so I am quite lost
reading R code.
The approach in trellis.clickFocus should get you close. One important
point is that
clickLoc <- grid.locator("npc")
returns the location in NPC, whereas your e.getX() and e.getY() would
be in device coordinates. help(grconvertX) should tell you how to make
the conversion.
-Deepayan
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20081024/b30d55e4/attachment.pl>