Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 

RE: Mouse events using PickManipulationRendererJ3D (and

Bill,

Since I'm not changing the data, but only picking values, I really don't
need to use a CellImpl/doAction()approach with it's spurious mouse
behavior.  Using a DisplayListener/displayChanged() approach watching
for a right mouse event seems to work fine for picking while maintaining
all other mouse functionality, so that's the way to go.  So anyway, by
keeping all the "picking" code inside the method call the same and by
just replacing the CellImpl/doAction() wrapper code with a
DisplayListener/displayChanged() equivalent results in expected mouse
behavior.

...  dlf

-----Original Message-----
> From: Flaggs, Don 
Sent: Monday, November 22, 2004 6:38 PM
Cc: visad@xxxxxxxxxxxxxxxx
brushing) problems ...


Bill,

Attached here is the console output from a session where the problem
appeared.  It's mostly generated by your DisplayEvent.toString() method
to show what mouse activity the DisplayImpl was seeing.  The pick event
messages come from a println() within the CellImpl.doAction().  The 1st
set of output shows right mouse events correctly resulting in pick
events from the CellImpl.doAction().  The 2nd set of output first
generated a cursor upon left mouse press, and then a pick event upon
left mouse release!?!  I'm going to try and instrument the code a little
more...  Any ideas while I do that?

thanks...  dlf


>>>>  GOOD INTERACTION  <<<<
Display event: DisplayEvent: Display=plotID:3, Id=MOUSE_PRESSED, X=291,
Y=211, remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=MOUSE_PRESSED_RIGHT,
X=291, Y=211, remoteId=0
>>>  got a pick event
>>> object picked: index: 232
 k: 0   value: 118.0
 k: 1   value: 7914.57275390625
 k: 2   value: 456.741943359375
 k: 3   value: 257.7852478027344
 k: 4   value: 307.7412109375
 k: 5   value: 247.43136596679688
 k: 6   value: 343.8174743652344
 k: 7   value: 182.00833129882812
 k: 8   value: 345.41107177734375
 k: 9   value: 314.0792541503906
 k: 10   value: 351.0933532714844
 k: 11   value: 261.0024108886719
 k: 12   value: -2286.75
 k: 13   value: 232.0
 k: 14   value: 1.0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=TRANSFORM_DONE, X=0,
Y=0, remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0


>>>>  INCORRECT INTERACTION (left mouse with drag)  <<<<
Display event: DisplayEvent: Display=plotID:3, Id=MOUSE_PRESSED_LEFT,
X=85, Y=77, remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=MOUSE_RELEASED, X=149,
Y=130, remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=MOUSE_RELEASED_LEFT,
X=149, Y=130, remoteId=0
>>>  got a pick event
>>> object picked: index: 1170
 k: 0   value: 674.0
 k: 1   value: 6776.08056640625
 k: 2   value: 525.112548828125
 k: 3   value: 278.3368835449219
 k: 4   value: 258.8907775878906
 k: 5   value: 259.7996520996094
 k: 6   value: 116.74113464355469
 k: 7   value: 138.6013641357422
 k: 8   value: 242.25827026367188
 k: 9   value: 246.7772216796875
 k: 10   value: 195.46710205078125
 k: 11   value: 142.10330200195312
 k: 12   value: -17572.4453125
 k: 13   value: 1170.0
 k: 14   value: 1.0
Display event: DisplayEvent: Display=plotID:3, Id=TRANSFORM_DONE, X=0,
Y=0, remoteId=0
Display event: DisplayEvent: Display=plotID:3, Id=FRAME_DONE, X=0, Y=0,
remoteId=0



-----Original Message-----
Sent: Thursday, November 18, 2004 1:28 PM
Cc: visad@xxxxxxxxxxxxxxxx
brushing) problems ...


Don,

Then the behavior you describe is a great mystery. I don't
recall ever hearing about a similar problem. If you can
send me your application so I can run it. Even better would
be a small test program that generates the problem.

Bill

On Thu, 18 Nov 2004, Flaggs, Don wrote:

> 1) we're hopefully not doing anything but using their default
behaviors,
> assuming that using the PickManipulationRendererJ3D doesn't invalid
> "standard" mouse behaviors and events specific to each button remain
as
> they should???
> 2) we're just using SelectRangeWidget functionality.
>
> -----Original Message-----
> From: Bill Hibbard [mailto:billh@xxxxxxxxxxxxx]
> Sent: Tuesday, November 16, 2004 3:19 AM
> To: Flaggs, Don
> Cc: visad@xxxxxxxxxxxxxxxx
> Subject: Re: Mouse events using PickManipulationRendererJ3D (and
> brushing) problems ...
>
>
> Hi Don,
>
> > We're putting together an application where we're creating multiple
> 2D/3D scatterplot views of the same data using all the usual widgets,
> which works fine.  The next hurdle is adding picking so that the user
> can see a complete listing of all data associated with the picked
> object.  We've following the "cookbook" from one of your examples, and
> on the surface things appear to work.  The problem is that after using
> the right mouse button for picking, which works correctly, subsequent
> mouse events using other buttons are hosed, e.g., the left mouse now
> brings up the 3D cursor, and when released causes a doAction() to be
> fired.  All this of course means that the usual left mouse button
> fuctionality is lost.
>
> Are you calling MouseHelper.setFunctionMap()?
> Or MouseHelper.setEnableCombos()? Or are you
> using a custom extension of MouseBehavior?
> These are the only way I know to modify mouse
> button behaviors. If you've found a bug, we've
> never seen this sort of thing before (which
> doesn't mean its impossible).
>
> > One other thing that we've noticed is that after brushing one of the
> data fields to exclude specific data values, we still see some of the
> excluded points appearing in the display, or at least the values for
> them returned when they are picked by a getValues() call says that
> they're there...
>
> How are you excluding points? By actually
> constructing new Fields with those points
> removed? Or merely by SelectRangeWidgets?
>
> Thanks,
> Bill
>
>


 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Community Programs   Unidata is a member of the UCAR Community Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690