Re: detecting which dataRef the mouse is over

Hi Ugo-

Ugo Taddei wrote:

> You'll find attached (see below) a PickManipulationRendererJ2D.java
> which works for 2D displays (without Java 3D). This file has been
> altered from PickManipulation 3D by "Heftrich, Torsten, AVENTIS/DE"
> <Heftrich@xxxxxxxxxxxxxxx>, who made the file available.

Hopefully, this could be added to the core.
 
> I personally would'd find it better if the left mouse button where for
> picking, i.e. clicking on data, and the right mouse button were for
> rotating display. This is because the user tries intuitively to pick
> data with the left button. Rotating the dislay is less obvious and makes
> less sense in 2D. However, this is all subjective stuff and I'm by no
> means suggesting that one should change the standard behaviour.

Much of VisAD's core focus is geared toward 3D displays, thus the
default behavior for the MouseHelper, I would imagine.  But as most
of us have found, when doing 2D displays (even in Java3D), the mouse
behavior is not intuitive and seems backwards in some cases.  In other
programs, things like rubberbanding, point/click are typically done
with MouseButton1 (left button for a right-handed mouse).  However,
pop-up menus are usually triggered with a right click.

> However, it'd be better if the programmer could change the behaviour
> without having to touch the VisAD source or having to extend sme class.
> That is, I'd like to be able to use picking with the left button, and
> rotating with the right. Also, this might simplify programming apps
> where the left mouse button is "overloaded": it might pick data, it
> might move the display, it might display the coordinates, if, say, some
> checkbox is selected. Think of all those Mac users out there with a
> single-button-mouse ;-) (I know, I know, in the Mac there are
> metakeys...and I wish I had one too ;-)

I thought this would be a good idea also and attempted to quantify
the various actions (manipulate, rotate, pan/zoom) and then modify
MouseHelper so these could be configurable.  The big obstacle with
MouseHelper that I encountered is the ability to simulate a mouse
click by clicking the other two.  This added a level of complexity
that I didn't even want to attempt to factor and thus I gave up.
Maybe some other brave soul would take this on because I think
mouse behaviour is one of the greatest complaints we hear from our
users and that I have heard from other developers and VisAD users.  
We should not have to extend classes, this should be a user preference.  
If you look at Vis5D, the mouse behavior can change based on the type
of manipulation you are doing (slicing, profiling, etc).  Having
the same capability in VisAD would be a plus.

Don
*************************************************************
Don Murray                               UCAR Unidata Program
dmurray@xxxxxxxxxxxxxxxx                        P.O. Box 3000
(303) 497-8628                              Boulder, CO 80307
http://www.unidata.ucar.edu/staff/donm
*************************************************************