I'm working on making the rgl widget compatible with crosstalk. rgl is somewhat low level, so it is conceivable that a single rgl scene (one instance of the widget) would be displaying several different shared datasets.
I got the event handling working with a single dataset, and now I'm trying to handle more. I've set up several crosstalk.SelectionHandle
objects, and now when a change
event comes in, I need to figure out which handle sent it.
I've tried comparing event.sender
to all of the handles, but comparison using ==
fails on all of them. The constructor has an optional extraInfo
parameter, so I've tried putting an integer value or an object containing an integer value there, but I can't spot it in the event
I receive. Does anyone have any example code that uses extraInfo
, or more generally, that determines which of several handles triggered a particular event?
Edited to add: I think I've solved this. The extraInfo
isn't in the sender
, it's in this
in the change event handler. On to the next problem...
Edited again: I think I now understand the design. There are two kinds of extraInfo
: stuff added when the handle was created, and stuff added when the set()
message is sent. Both show up in the message. Both are just Javascript objects, which are basically glued onto the event object received by the onchange
event. So if I set the extraInfo
to be {foo: "bar"}
, then the event e
will have an e.foo
member containing "bar"
.