Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixWQCurveGenerator.java @ 3578:bae185bf9d2d
Theme the qsector markers.
flys-artifacts/trunk@5193 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Mon, 13 Aug 2012 07:35:57 +0000 |
parents | e7f1556192b3 |
children | c105b4466b4e |
comparison
equal
deleted
inserted
replaced
3577:25cce741d03c | 3578:bae185bf9d2d |
---|---|
3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; | 3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
4 import de.intevation.flys.artifacts.FLYSArtifact; | 4 import de.intevation.flys.artifacts.FLYSArtifact; |
5 import de.intevation.flys.artifacts.access.FixAnalysisAccess; | 5 import de.intevation.flys.artifacts.access.FixAnalysisAccess; |
6 import de.intevation.flys.artifacts.model.DateRange; | 6 import de.intevation.flys.artifacts.model.DateRange; |
7 import de.intevation.flys.artifacts.model.FacetTypes; | 7 import de.intevation.flys.artifacts.model.FacetTypes; |
8 import de.intevation.flys.artifacts.model.NamedDouble; | |
8 import de.intevation.flys.artifacts.model.QWDDateRange; | 9 import de.intevation.flys.artifacts.model.QWDDateRange; |
9 import de.intevation.flys.artifacts.model.fixings.FixFunction; | 10 import de.intevation.flys.artifacts.model.fixings.FixFunction; |
10 import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet; | 11 import de.intevation.flys.artifacts.model.fixings.FixWQCurveFacet; |
11 import de.intevation.flys.artifacts.model.fixings.QW; | 12 import de.intevation.flys.artifacts.model.fixings.QW; |
12 import de.intevation.flys.artifacts.model.fixings.QWD; | 13 import de.intevation.flys.artifacts.model.fixings.QWD; |
16 import de.intevation.flys.jfree.FLYSAnnotation; | 17 import de.intevation.flys.jfree.FLYSAnnotation; |
17 import de.intevation.flys.jfree.JFreeUtil; | 18 import de.intevation.flys.jfree.JFreeUtil; |
18 import de.intevation.flys.jfree.StyledXYSeries; | 19 import de.intevation.flys.jfree.StyledXYSeries; |
19 import de.intevation.flys.utils.ThemeUtil; | 20 import de.intevation.flys.utils.ThemeUtil; |
20 | 21 |
22 import org.jfree.chart.plot.Marker; | |
23 import org.jfree.chart.plot.ValueMarker; | |
24 import org.jfree.ui.RectangleAnchor; | |
25 import org.jfree.ui.TextAnchor; | |
26 | |
27 import java.awt.BasicStroke; | |
28 import java.awt.Color; | |
29 | |
30 | |
21 import java.text.DateFormat; | 31 import java.text.DateFormat; |
22 import java.util.ArrayList; | 32 import java.util.ArrayList; |
23 import java.util.List; | 33 import java.util.List; |
24 | 34 |
25 import org.apache.log4j.Logger; | 35 import org.apache.log4j.Logger; |
97 doWQCurveOut(aaf, doc, visible); | 107 doWQCurveOut(aaf, doc, visible); |
98 } | 108 } |
99 else if(FIX_OUTLIER.equals(name)) { | 109 else if(FIX_OUTLIER.equals(name)) { |
100 doOutlierOut(aaf, doc, visible); | 110 doOutlierOut(aaf, doc, visible); |
101 } | 111 } |
112 else if(QSECTOR.equals(name)) { | |
113 doQSectorOut(aaf, doc, visible); | |
114 } | |
102 else { | 115 else { |
103 logger.warn("Unknown facet name " + name); | 116 logger.warn("Unknown facet name " + name); |
104 return; | 117 return; |
105 } | 118 } |
106 } | 119 } |
174 protected void doOutlierOut(ArtifactAndFacet aaf, Document doc, boolean visible) { | 187 protected void doOutlierOut(ArtifactAndFacet aaf, Document doc, boolean visible) { |
175 logger.debug("doOutlierOut"); | 188 logger.debug("doOutlierOut"); |
176 | 189 |
177 QW[] qws = (QW[])aaf.getData(context); | 190 QW[] qws = (QW[])aaf.getData(context); |
178 addQWSeries(qws, aaf, doc, visible); | 191 addQWSeries(qws, aaf, doc, visible); |
192 } | |
193 | |
194 | |
195 /** Add markers for q sectors. */ | |
196 protected void doQSectorOut(ArtifactAndFacet aaf, Document theme, boolean visible) { | |
197 logger.debug("doQSectorOut"); | |
198 if (!visible) { | |
199 return; | |
200 } | |
201 | |
202 List<NamedDouble> qsectors = (List<NamedDouble>) aaf.getData(context); | |
203 | |
204 if (qsectors == null) { | |
205 logger.warn("No QSectors coming from data."); | |
206 return; | |
207 } | |
208 for (NamedDouble qsector : qsectors) { | |
209 if (Double.isNaN(qsector.getValue())) { | |
210 continue; | |
211 } | |
212 Marker m = new ValueMarker(qsector.getValue()); | |
213 m.setPaint(Color.black); | |
214 | |
215 float[] dashes = ThemeUtil.parseLineStyle(theme); | |
216 int size = ThemeUtil.parseLineWidth(theme); | |
217 BasicStroke stroke; | |
218 if (dashes.length <= 1) { | |
219 stroke = new BasicStroke(Integer.valueOf(size)); | |
220 } | |
221 else { | |
222 stroke = new BasicStroke(Integer.valueOf(size), | |
223 BasicStroke.CAP_BUTT, | |
224 BasicStroke.JOIN_ROUND, | |
225 1.0f, | |
226 dashes, | |
227 0.0f); | |
228 } | |
229 m.setStroke(stroke); | |
230 | |
231 if (ThemeUtil.parseShowLineLabel(theme)) { | |
232 m.setLabel(qsector.getName()); | |
233 m.setPaint(ThemeUtil.parseTextColor(theme)); | |
234 m.setLabelFont(ThemeUtil.parseTextFont(theme)); | |
235 } | |
236 Color paint = ThemeUtil.parseLineColorField(theme); | |
237 if (paint != null) { | |
238 m.setPaint(paint); | |
239 } | |
240 m.setLabelAnchor(RectangleAnchor.TOP_LEFT); | |
241 m.setLabelTextAnchor(TextAnchor.TOP_LEFT); | |
242 addDomainMarker(m); | |
243 } | |
179 } | 244 } |
180 | 245 |
181 protected void addQWSeries(QW[] qws, ArtifactAndFacet aaf, Document theme, boolean visible) { | 246 protected void addQWSeries(QW[] qws, ArtifactAndFacet aaf, Document theme, boolean visible) { |
182 if(qws != null) { | 247 if(qws != null) { |
183 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); | 248 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); |