Ejemplo n.º 1
0
  private boolean validateDatumLine() {
    // System.out.println("Validating Datum Line");

    double datumLineDSP1Lat = datumLineInputPanel.getLKPLat();

    if (datumLineDSP1Lat == -9999) {
      return false;
    }

    double datumLineDSP1Lon = datumLineInputPanel.getLKPLon();

    Position dsp1;

    if (datumLineDSP1Lat != -9999 && datumLineDSP1Lon != -9999) {
      dsp1 = Position.create(datumLineDSP1Lat, datumLineDSP1Lon);
    } else {
      // msgbox
      // System.out.println("Failed lat");
      return false;
    }

    double datumLineDSP2Lat = datumLineInputPanel.getDsp2LKPLat();

    if (datumLineDSP2Lat == -9999) {
      return false;
    }

    double datumLineDSP2Lon = datumLineInputPanel.getDsp2LKPLon();

    Position dsp2;

    if (datumLineDSP2Lat != -9999 && datumLineDSP2Lon != -9999) {
      dsp2 = Position.create(datumLineDSP2Lat, datumLineDSP2Lon);
    } else {
      // msgbox
      // System.out.println("Failed lat");
      return false;
    }

    double datumLineDSP3Lat = datumLineInputPanel.getDsp3LKPLat();

    if (datumLineDSP3Lat == -9999) {
      return false;
    }

    double datumLineDSP3Lon = datumLineInputPanel.getDsp3LKPLon();

    Position dsp3;

    if (datumLineDSP3Lat != -9999 && datumLineDSP3Lon != -9999) {
      dsp3 = Position.create(datumLineDSP3Lat, datumLineDSP3Lon);
    } else {
      // msgbox
      // System.out.println("Failed lat");
      return false;
    }

    // System.out.println("All validated correctly, we got positions");

    // System.out.println("DSp1 Date is " +
    // datumLineInputPanel.getLKPDate());

    // System.out.println("DSp2 Date is " +
    // datumLineInputPanel.getDSP2Date());

    // System.out.println("DSp3 Date is " +
    // datumLineInputPanel.getDSP2Date());

    // System.out.println("CSS Date is " +
    // datumLineInputPanel.getCSSDate());

    // Time and date will be automatically sorted

    List<SurfaceDriftPanel> weatherList = datumLineInputPanel.getSurfaceDriftPanelList();

    List<SARWeatherData> sarWeatherDataPoints = new ArrayList<SARWeatherData>();

    for (int i = 0; i < weatherList.size(); i++) {
      // Get weather
      SurfaceDriftPanel weatherPanel = weatherList.get(i);

      double TWCKnots = weatherPanel.getTWCKnots();

      if (TWCKnots == -9999) {
        // Error message is handled within function
        return false;
      }

      double leewayKnots = weatherPanel.getLeeway();

      if (leewayKnots == -9999) {
        // Error message is handled within function
        return false;
      }

      double twcHeading = weatherPanel.getTWCHeading();

      if (twcHeading == -9999) {
        // Error message is handled within function
        return false;
      }

      double leewayHeading = weatherPanel.getLeewayHeading();

      if (leewayHeading == -9999) {
        // Error message is handled within function
        return false;
      }

      DateTime dateTime = new DateTime(weatherPanel.getDateTime().getTime());

      SARWeatherData sarWeatherData =
          new SARWeatherData(twcHeading, TWCKnots, leewayKnots, leewayHeading, dateTime);

      sarWeatherDataPoints.add(sarWeatherData);
    }

    double xError = datumLineInputPanel.getInitialPositionError();

    if (xError == -9999) {
      // Error message is handled within function
      return false;
    }

    double yError = datumLineInputPanel.getNavError();

    if (yError == -9999) {
      // Error message is handled within function
      return false;
    }

    double safetyFactor = datumLineInputPanel.getSafetyFactor();

    if (safetyFactor == -9999) {
      // Error message is handled within function
      return false;
    }

    int searchObject = datumLineInputPanel.getSearchItemID();

    // Only valid search objects is value 0 to 19
    if (searchObject < 0 || searchObject > 20) {
      // Error message is handled within function
      // System.out.println("failed search object with id " +
      // searchObject);
      return false;
    }

    // rapidResponsePosition
    // commenceStartPosition
    // TWCKnots
    // twcHeading
    // leewayKnots
    // leewayHeading
    // xError
    // yError
    // safetyFactor
    // searchObject

    if (!datumLineInputPanel.checkTime()) {
      return false;
    }

    if (!datumLineInputPanel.checkMetocTime()) {
      return false;
    }

    voctManager.inputDatumLineData(
        datumLineInputPanel.getSARID(),
        datumLineInputPanel.getLKPDate(),
        datumLineInputPanel.getDSP2Date(),
        datumLineInputPanel.getDSP3Date(),
        datumLineInputPanel.getCSSDate(),
        dsp1,
        dsp2,
        dsp3,
        xError,
        yError,
        safetyFactor,
        searchObject,
        sarWeatherDataPoints);

    return true;
  }