Unidata - To provide the data services, tools, and cyberinfrastructure leadership that advance Earth system science, enhance educational opportunities, and broaden participation. Unidata
         
  advanced  
 

Re: collaborative GUI

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


 
 
  Contact Us     Site Map     Search     Terms and Conditions     Privacy Policy     Participation Policy
 
National Science Foundation (NSF) UCAR Community Programs   Unidata is a member of the UCAR Community Programs, is managed by the University Corporation for Atmospheric Research, and is sponsored by the National Science Foundation.
P.O. Box 3000     Boulder, CO 80307-3000 USA     Tel: 303-497-8643     Fax: 303-497-8690