Hi Rick,
> I also want to add a listener to the SSCell so that if a right click
> happens over the cell, the popup menu is displayed. Currently
> though popup menu's won't display over the cell and mouse events
> don't work.
>
> My guess is that the SSCell has its own mouse handling stuff and
> is capturing my clicks before my functions can handle it. As to
> why the menu doesn't display over the cell even when the click isn't
> on the cell i don't know...
I just added new DisplayEvents for MOUSE_PRESSED_RIGHT
and MOUSE_PRESSED_LEFT. Call the addDisplayListener()
method on your FancySSCell to create a link to a
DisplayListener, then in your DisplayListener:
public void displayChanged( DisplayEvent e ) {
if (e.getId() == DisplayEvent.MOUSE_PRESSED_RIGHT) {
// activate popup menu
}
}
These new DisplayEvents are now on our ftp server.
The reason your popup menu won't show over the FancySSCell
is that the popup is lightweight (i.e., not associated with
a native window) but the FancySSCell display is heavyweight
because that is what Java3D needs to run OpenGL. This is a
long-standing Java problem that won't be fixed any time soon.
The work-around is to use heavyweight Components (e.g., AWT
rather than Swing) for things that must appear over Java3D.
Cheers,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706
hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html