Example #1
0
    /**
     * 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;
    }