/**
  * _more_
  *
  * @param index _more_
  * @throws RemoteException _more_
  * @throws VisADException _more_
  */
 private void setStation(int index) throws VisADException, RemoteException {
   selectedStation.setPoint((RealTuple) latLons[index]);
   setLocation(latLons[index]);
   initSounding(dataList.get(index));
   getSoundingView().updateDisplayList();
 }
  /**
   * Creates the display and control buttons from a {@link ucar.unidata.data.DataChoice}.
   *
   * @param dataChoice The data for this instance.
   * @return <code>true</code> if and only if this instance was correctly initialized.
   * @throws VisADException couldn't create a VisAD object needed
   * @throws RemoteException couldn't create a remote object needed
   */
  public boolean init(DataChoice dataChoice) throws VisADException, RemoteException {

    /*
     * Initialize the superclass.
     */
    if (!super.init()) {
      return false;
    }

    setSpatialLoci(track);
    setSpatialLoci(stationProbes);

    if (!setData(dataChoice)) {
      return false;
    }
    List<DataSource> dsList = new ArrayList();
    dataChoice.getDataSources(dsList);
    TrackDataSource ds = (TrackDataSource) dsList.get(0);
    List adapters = ds.getAdapters();

    try {
      initDataChoice(adapters);
    } catch (Exception e) {
    }
    initSounding(dataList.get(0));

    stationProbes.setData(Util.indexedField(latLons, false));
    stationProbes.addAction(
        new ActionImpl("Station Probe Action") {
          private boolean first = true;

          public void doAction() {
            if (first) {
              first = false;
            } else {
              Misc.run(
                  new Runnable() {
                    public void run() {
                      try {
                        int i = stationProbes.getCloseIndex();
                        if ((i >= 0) && (stationMenue != null)) {
                          ignoreStationMenuEvent = true;
                          selectedStation.setPoint((RealTuple) latLons[i]);
                          stationMenue.setSelectedIndex(i);
                          setStation(i);
                        }
                      } catch (Exception ex) {
                        logException(ex);
                      } finally {
                        ignoreStationMenuEvent = false;
                      }
                    }
                  });
            }
          }
        });

    setPointSize();

    addDisplayable(stationProbes, FLAG_COLOR);
    addDisplayable(selectedStation, FLAG_COLOR);

    if (getSelectedStationIndex() >= 0) {
      selectedStation.setPoint((RealTuple) latLons[getSelectedStationIndex()]);
    }
    updateHeaderLabel();
    return true;
  }