java/HrisniciSpameri/src/java/cz/frantovo/hrisniciSpameri/grafy/CasovyGrafUtoku.java
Metoda nebude deklarovat, že vrací HashMapu, ale jen Mapu – obecné rozhraní místo konkrétní implementace (uvnitř se stále používá HashMapa).
1 package cz.frantovo.hrisniciSpameri.grafy;
3 import cz.frantovo.hrisniciSpameri.DenniSouhrn;
4 import cz.frantovo.hrisniciSpameri.dto.Soucet;
5 import de.laures.cewolf.DatasetProduceException;
6 import de.laures.cewolf.DatasetProducer;
7 import de.laures.cewolf.links.CategoryItemLinkGenerator;
8 import de.laures.cewolf.tooltips.CategoryToolTipGenerator;
9 import java.io.Serializable;
10 import java.util.Collection;
11 import java.util.Date;
12 import java.util.HashMap;
14 import org.jfree.data.category.CategoryDataset;
15 import org.jfree.data.time.Day;
16 import org.jfree.data.time.TimeSeries;
17 import org.jfree.data.time.TimeSeriesCollection;
18 import org.jfree.data.xy.XYDataset;
24 public class CasovyGrafUtoku implements DatasetProducer, CategoryToolTipGenerator, CategoryItemLinkGenerator, Serializable {
26 private static final long serialVersionUID = -9133218147909088777L;
28 public XYDataset produceDataset(Map parametry) throws DatasetProduceException {
30 DenniSouhrn ds = new DenniSouhrn();
31 ds.setZacatekString(String.valueOf(parametry.get("zacatek")));
32 ds.setKonecString(String.valueOf(parametry.get("konec")));
33 ds.setCilString(String.valueOf(parametry.get("cil")));
35 HashMap<Integer, TimeSeries> casoveRady = new HashMap<Integer, TimeSeries>();
37 for (Collection<Soucet> ss : ds.getSoucty().values()) {
40 if (casoveRady.get(s.getCil().getId()) == null) {
41 casoveRady.put(s.getCil().getId(), new TimeSeries(s.getCil().getNazev(), org.jfree.data.time.Day.class));
43 casoveRady.get(s.getCil().getId()).add(new Day(s.getDen()), s.getPocet());
47 TimeSeriesCollection dataset = new TimeSeriesCollection();
48 for (TimeSeries ts : casoveRady.values()) {
49 dataset.addSeries(ts);
55 public boolean hasExpired(Map params, Date since) {
56 return (System.currentTimeMillis() - since.getTime()) > 5000;
59 public String getProducerId() {
60 return this.getClass().getSimpleName();
63 public String generateToolTip(CategoryDataset data, int series, int item) {
67 public String generateLink(Object dataset, int series, Object category) {