comparison artifacts/src/main/java/org/dive4elements/river/jfree/StyledXYSeries.java @ 7891:4fe290eddb43 facet-metadata

Added metadata to styled series.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 21 May 2014 11:36:21 +0200
parents d20a26e96ef1
children e4606eae8ea5
comparison
equal deleted inserted replaced
7890:d4792d01480d 7891:4fe290eddb43
7 */ 7 */
8 8
9 package org.dive4elements.river.jfree; 9 package org.dive4elements.river.jfree;
10 10
11 import java.util.List; 11 import java.util.List;
12 import java.util.Map;
12 13
13 import org.apache.log4j.Logger; 14 import org.apache.log4j.Logger;
15 import org.dive4elements.artifacts.Artifact;
16 import org.dive4elements.artifacts.CallContext;
17 import org.dive4elements.river.artifacts.D4EArtifact;
18 import org.dive4elements.river.artifacts.access.RiverAccess;
19 import org.dive4elements.river.artifacts.resources.Resources;
20 import org.dive4elements.river.model.Unit;
14 import org.dive4elements.river.themes.ThemeDocument; 21 import org.dive4elements.river.themes.ThemeDocument;
22 import org.dive4elements.river.utils.RiverUtils;
15 23
16 import org.jfree.data.xy.XYDataItem; 24 import org.jfree.data.xy.XYDataItem;
17 import org.jfree.data.xy.XYSeries; 25 import org.jfree.data.xy.XYSeries;
18 26
19 import java.awt.Shape; 27 import java.awt.Shape;
20 28
21 /** 29 /**
22 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 30 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
23 */ 31 */
24 public class StyledXYSeries extends XYSeries implements StyledSeries, HasLabel { 32 public class StyledXYSeries
33 extends XYSeries
34 implements StyledSeries, HasLabel, XYMetaDataset {
25 35
26 private static final Logger logger = Logger.getLogger(StyledXYSeries.class); 36 private static final Logger logger = Logger.getLogger(StyledXYSeries.class);
27 37
28 protected Style style; 38 protected Style style;
29 39
30 /** If this Series is to be labelled, use this String as label. */ 40 /** If this Series is to be labelled, use this String as label. */
31 protected String label; 41 protected String label;
32 42
43 /** The meta data for this series. */
44 protected Map<String, String> metaData;
33 45
34 public StyledXYSeries(String key, ThemeDocument theme) { 46 public StyledXYSeries(String key, ThemeDocument theme) {
35 this(key, true, theme, (Shape)null); 47 this(key, true, theme, (Shape)null);
36 } 48 }
37 49
113 protected void add(List<XYDataItem> items) { 125 protected void add(List<XYDataItem> items) {
114 for(XYDataItem item : items) { 126 for(XYDataItem item : items) {
115 add(item.getXValue(), item.getYValue()); 127 add(item.getXValue(), item.getYValue());
116 } 128 }
117 } 129 }
130
131
132 @Override
133 public Map<String, String> getMetaData() {
134 return metaData;
135 }
136
137
138 @Override
139 public void putMetaData(Map<String, String> metaData,
140 Artifact artifact,
141 CallContext context) {
142 this.metaData = metaData;
143 D4EArtifact d4e = (D4EArtifact) artifact;
144 RiverAccess access = new RiverAccess(d4e);
145 Unit unit = RiverUtils.getRiver(d4e).getWstUnit();
146 if (metaData.containsKey("X")) {
147 this.metaData.put("X",
148 Resources.getMsg(
149 context.getMeta(),
150 metaData.get("X"),
151 new Object[] { access.getRiverName() }));
152 }
153 if (metaData.containsKey("Y")) {
154 this.metaData.put("Y",
155 Resources.getMsg(
156 context.getMeta(),
157 metaData.get("Y"), new Object[] { unit.getName() }));
158 }
159 }
118 } 160 }
119 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 161 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org