/** * Set the display for the data * * @param isEmpty true if the data is null * @throws RemoteException Java RMI error * @throws VisADException problem creating VisAD object */ public synchronized void setDisplay(boolean isEmpty) throws VisADException, RemoteException { if (isEmpty) { for (Iterator iter = extantDatums.iterator(); iter.hasNext(); ) { ((DataAdapter) iter.next()).addTo(); } } else { for (Iterator iter = obsoleteDatums.iterator(); iter.hasNext(); ) { ((DataAdapter) iter.next()).removeFrom(); } } obsoleteDatums.clear(); for (Iterator iter = changedDatums.iterator(); iter.hasNext(); ) { DataAdapter adapter = (DataAdapter) iter.next(); adapter.addTo(); iter.remove(); extantDatums.add(adapter); } for (Iterator iter = newDatums.iterator(); iter.hasNext(); ) { DataAdapter adapter = (DataAdapter) iter.next(); adapter.addTo(); iter.remove(); extantDatums.add(adapter); // Add listener now so fewest notifications. adapter.addPropertyChangeListener(adapter.CONSTANT_MAP, listener); } changed = false; }