RE: Mouse events using PickManipulationRendererJ3D (and

  • To: Flaggs, Don
  • Subject: RE: Mouse events using PickManipulationRendererJ3D (and
  • From: Bill Hibbard [mailto:billh@xxxxxxxxxxxxx]
  • Date: Tue, 23 Nov 2004 15:16:25 -0800
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
>
>