private Series[] series;
private void initializeDataModel() {
series = new Series[2];
PlainSeries usdSeries = new PlainSeries("USD");
PlainSeries euroSeries = new PlainSeries("Euro");
Map<Date, Double> usdData = new HashMap<Date, Double>();
Map<Date, Double> euroData = new HashMap<Date, Double>();
Random random = new Random();
final double usdMaximumDailyDiff = 0.55;
final double usdMinimumExchangeRate = 1.25;
final double usdMaximumExchangeRate = 10.0;
double usdExchangeRateValue = usdMaximumExchangeRate * Math.random();
final double euroMaximumDailyDiff = 0.25;
final double euroMinimumExchangeRate = 9.5;
final double euroMaximumExchangeRate = 12.25;
double euroExchangeRateValue = euroMaximumExchangeRate * Math.random();
for (int valuePoints = 1; valuePoints <= 200; valuePoints++) {
Calendar calendar = Calendar.getInstance(new Locale("en"));
Date key = null;
while (key == null || usdData.containsKey(key)) {
final int month = 1;
final int date = valuePoints;
final int hourOfDay = 8 + random.nextInt(9);
final int minute = 30;
final int seconds = 0;
final int milliseconds = 0;
calendar.set(2008, month, date, hourOfDay, minute, seconds);
calendar.set(Calendar.MILLISECOND, milliseconds);
key = calendar.getTime();
}
usdData.put(key, usdExchangeRateValue);
euroData.put(key, euroExchangeRateValue);
usdExchangeRateValue += 2 * usdMaximumDailyDiff * random.nextDouble() - usdMaximumDailyDiff;
euroExchangeRateValue += 2.25 * euroMaximumDailyDiff * random.nextDouble() - euroMaximumDailyDiff;
if (usdExchangeRateValue < usdMinimumExchangeRate) {
usdExchangeRateValue = usdMinimumExchangeRate;
} else if (usdExchangeRateValue > usdMaximumExchangeRate) {
usdExchangeRateValue = usdMaximumExchangeRate;
}
if (euroExchangeRateValue < euroMinimumExchangeRate) {
euroExchangeRateValue = euroMinimumExchangeRate;
} else if (euroExchangeRateValue > euroMaximumExchangeRate) {
euroExchangeRateValue = euroMaximumExchangeRate;
}
}
usdSeries.setComparator(Sorter.ASCENDING);
usdSeries.setData(usdData);
euroSeries.setComparator(Sorter.ASCENDING);
euroSeries.setData(euroData);
series[0] = usdSeries;
series[1] = euroSeries;
}