Interactive Scatter Plots...

   We will be using VisAD for interactive 2D and 3D scatterplots.  The
interactions to be added are "drilldown features" of sample point selection-
individually as sample point picking and collectively with sample point

The desired behaviors are:
1. For sample point picking, user clicks in plot area, and the sample point
that is "closest" (in terms of euclidean distance in x-y screen coordinates)
is highlighted, and a programmatic event is issued with the identity of that
sample available.

2. For sample group picking, user clicks in plot area, drags the cursor in a
path that creates a closed loop and releases the mouse button.  Then sample
points "inside" the loop (in terms of x-y screen coordinates) are
highlighted, and a programmatic event is issued with the identities of those
samples available.

I know how to do the algorithmic parts of these behaviors... but how do I:
A. Get the screen coordinates of a mouse click in this object
B. Get the screen coordinates of all the data samples (to compare to the
C. Highlight/unhighlight a sample point(s) (use a different color/circle it)
D. Accumulate the list of screen coodinates generated during the drag

   I am guessing/hoping that tasks A&D may be done without interference with
other callbacks, by doing the normal addMouseListener &
addMouseMotionListener with my own MouseInputAdapter & MouseMotionAdapter.
Is that so?  If "event crosstalk" might be a problem, is it possible to put
the object into a "select sample mode" temporarily, removing the existing
mouse listeners, add our listeners, use them, and then restore the "default
mode" by swapping the listeners back again?  How would I access the default

   What about tasks B&C?  I have to believe that other people are doing
these things, and hope you will share your experiences with me.

   Thank you for your kindness,

"Dare to be naive" ...Buckminster Fuller

Barry Wythoff
Computational Design
ArQule, Inc.
19 Presidential Way
Woburn, MA 01801-5140

email: bwythoff@xxxxxxxxxx
phone: 781-994-0388
fax: 781-376-6019