X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Ffunction%2Fweather%2FWeatherResults.java;fp=tim%2Fprune%2Ffunction%2Fweather%2FWeatherResults.java;h=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hp=10fd3635fd5474326dbc1ba6b3ba527f59cd132b;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465;p=GpsPrune.git diff --git a/tim/prune/function/weather/WeatherResults.java b/tim/prune/function/weather/WeatherResults.java deleted file mode 100644 index 10fd363..0000000 --- a/tim/prune/function/weather/WeatherResults.java +++ /dev/null @@ -1,166 +0,0 @@ -package tim.prune.function.weather; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.TimeZone; - -import tim.prune.gui.DisplayUtils; - - -/** - * Model for results of weather forecast from openweathermap.org - */ -public class WeatherResults -{ - /** List of forecasts */ - private ArrayList _forecastList = new ArrayList(); - /** Flag whether the units are metric (Celsius) or not (Fahrenheit) */ - private boolean _tempsCelsius = true; - /** Location name */ - private String _locationName = null; - /** Last update timestamp */ - private String _updateTime = null; - /** Sunrise and sunset times as HH:MM */ - private String _sunriseTime = null, _sunsetTime = null; - - - /** - * Add a single forecast to this model (for the current weather) - * @param inResults current results - */ - public void setForecast(SingleForecast inResults) - { - _forecastList.clear(); - if (inResults != null) { - _forecastList.add(inResults); - } - } - - /** - * Add a list of forecasts to this model - * @param inList list of forecasts to add - */ - public void setForecasts(ArrayList inList) - { - _forecastList.clear(); - if (inList != null && inList.size() > 0) { - _forecastList.addAll(inList); - } - } - - /** @return the number of forecasts */ - public int getNumForecasts() - { - return _forecastList.size(); - } - - /** - * @param inIndex index of forecast starting from 0 - * @return the specified forecast - */ - public SingleForecast getForecast(int inIndex) - { - if (inIndex < 0 || inIndex >= getNumForecasts()) { - return null; - } - return _forecastList.get(inIndex); - } - - /** - * Clear the list of forecasts - */ - public void clear() - { - _forecastList.clear(); - _sunriseTime = _sunsetTime = null; - _updateTime = null; - } - - /** - * @param inCelsius true for celsius, false for fahrenheit - */ - public void setTempsCelsius(boolean inCelsius) - { - _tempsCelsius = inCelsius; - } - - /** @return true if this forecast uses Celsius */ - public boolean isCelsius() { - return _tempsCelsius; - } - - /** - * Set the sunrise and sunset times (only from current weather, not from forecast) - * @param inRiseTime sunrise time as YYYY-MM-DDThh:mm:ss - * @param inSetTime sunset time as YYYY-MM-DDThh:mm:ss - */ - public void setSunriseSunsetTimes(String inRiseTime, String inSetTime) - { - _sunriseTime = _sunsetTime = null; - if (inRiseTime != null && inRiseTime.length() == 19 - && inSetTime != null && inSetTime.length() == 19) - { - // Convert from UTC to system's time zone (not necessarily target's time zone!) - _sunriseTime = convertToLocalTimezone(inRiseTime.substring(11, 16)); - _sunsetTime = convertToLocalTimezone(inSetTime.substring(11, 16)); - } - } - - /** @return sunrise time as HH:MM */ - public String getSunriseTime() { - return _sunriseTime; - } - /** @return sunset time as HH:MM */ - public String getSunsetTime() { - return _sunsetTime; - } - - /** @param inName location name */ - public void setLocationName(String inName) { - _locationName = inName; - } - - /** @return location name */ - public String getLocationName() { - return _locationName; - } - - /** @param inTime timestamp of forecast */ - public void setUpdateTime(String inTime) { - _updateTime = inTime; - } - - /** @return timestamp of last update */ - public String getUpdateTime() - { - return _updateTime; - } - - /** - * Convert the given UTC time (HH:MM) into current timezone of computer - * @param inTimeString sunrise/sunset time in UTC (HH:MM) - * @return time in this timezone (HH:MM) - */ - private static String convertToLocalTimezone(String inTimeString) - { - if (inTimeString != null && inTimeString.length() == 5) - { - try - { - final int hour = Integer.parseInt(inTimeString.substring(0, 2)); - final int min = Integer.parseInt(inTimeString.substring(3)); - Calendar utcCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); - utcCal.set(Calendar.HOUR_OF_DAY, hour); - utcCal.set(Calendar.MINUTE, min); - // Make a second calendar in the current time zone and apply values - Calendar currCal = Calendar.getInstance(); - currCal.setTimeInMillis(utcCal.getTimeInMillis()); - return DisplayUtils.makeTimeString(currCal.get(Calendar.HOUR_OF_DAY), - currCal.get(Calendar.MINUTE)); - } - catch (NumberFormatException e) {} // ignore, just drop through - } - // Couldn't be parsed / converted - return inTimeString; - } -}