Exemplo n.º 1
0
  // @Override
  public void addRow(ConfigData configData, ResponseWriter writer, HttpServletRequest req) {
    String path = req.getParameter("path");
    String cityKey = req.getParameter("locationlist");
    String stationKey = req.getParameter("stationlist");
    String cityName = req.getParameter("cityname");
    if (path == null || path.length() == 0) {
      writer.addError("Error: Missing location path");
    } else if (cityKey == null || cityKey.length() == 0) {
      writer.addError(
          "Error: Missing City.  Please press \"Find City\" to pick a city when adding a location to update");
    } else {
      try {
        WeatherServiceImpl ws = (WeatherServiceImpl) configData.getWeatherService();

        StationSource stationSource =
            ws.resolveConfigurationToStation(
                isLocationKeyZipCode(cityKey), getLocationKeyCode(cityKey), stationKey);
        String stationName = stationSource.getName();
        Map<String, String> data = new HashMap<String, String>();

        data.put(FIELD_CITY, cityName);
        data.put(FIELD_STATION, stationName);

        configData.add(new WeatherConfigEntry(path, stationSource, data));
      } catch (WeatherServiceException e) {
        writer.addError("Can't get weather service");
        Logging.println("Can't get weather service in noaa.WeatherServiceUIImpl");
      } catch (InvalidConfigurationDataException e) {
        writer.addError("Can't find station");
        Logging.println("Can't find station", e);
      } catch (IllegalStateException e) {
        writer.addError("An entry for " + path + " has already been configured");
        Logging.println("An entry for " + path + " has already been configured", e);
      }
    }
  }