Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Hi Paul, > In a simple 2D plotter built with visad, I'd like to detect which > line (or lines) the mouse is over. I have registered a DisplayListener > on the Display, but I am uncertain how to do two things: > > - detect mouse motion events (now I just get MOUSE_PRESSED and RELEASEd) > - figure out which line the mouse is over > - display a small tooltip-like tranisent window on top of the display, > announcing the name of the line. > > Tips on any of these points will be most welcome! You need to extend visad.MouseHelper to process mouse move events in a similar way that it processes mouse right button click events, then extend your MouseBehaviorJ*D (either J2D or J3D) to use your extension of MouseHelper. See: http://www.unidata.ucar.edu/glimpse/visad-list/2255 for a basic explanation of at least how to extend. Note the findRay() method of MouseBehaviorJ*D will compute a Ray in 3-D coordinates from a mouse screen location, then you need to invert ScalarMap scalings and any CoordinateSstems, as in visad.DataRenderer.drag_direct(). Its all a bit complex, I'm afraid. If your users were willing to click right mouse buttons on Data depictions, you could just use visad.bom.PickManipulationRendererJ3D (asssuming you are doing 2-D in a DisplayImplJ3D). Good luck, Bill
visad
archives: