Hi Mike,
Yes, I've gone through all the tutorials suggested above and invoked
most of the mothods in my application.
I mainly use the visad built-in collaboration support so far. Based on
RendererControl, all graphics widgets associated with Controls and
ScalarMaps worked very well.
I found that when a DataReference has been removed in Host, Clients
didn't response. After investagation on VisAD, it seems that
REFERENCE_REMOVED event was not sent to clients. So I made some changes
to VisAD system to make this part work. Although I knew this may bring
some trouble later on, but I have no better choice at this moment.
To those self-developed graphics widgets (e.g. ComboBox, Button etc.)
which neither belongs to Controls nor ScalarMap. I still have no idea
how to make them collaborative.
The VisAD SpreadSheet had some similar requirements. I implemented a
fairly general way to send messages back and forth between server and
client, to keep things synchronized that were not already handled by the
built-in VisAD collaborative display logic.
Take a look at the VisAD SpreadSheet, in package visad.ss. In
particular, check out visad/ss/BasicSSCell.java starting at line 283
(the part labeled "COLLABORATION"). The sendMessage and receiveMessage
methods handle communication. It should be possible to adapt their
functionality for your needs, including synchronization of custom
widgets built with Swing components.
-Curtis