Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixDeltaWtGenerator.java @ 3727:b81f328da582
Removed code duplication.
flys-artifacts/trunk@5399 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sat, 08 Sep 2012 12:58:58 +0000 |
parents | a74bdd032cf7 |
children | 7bc61f4ab26b |
comparison
equal
deleted
inserted
replaced
3726:b679f6048acc | 3727:b81f328da582 |
---|---|
1 package de.intevation.flys.exports.fixings; | 1 package de.intevation.flys.exports.fixings; |
2 | 2 |
3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; | 3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
4 import de.intevation.artifacts.ArtifactNamespaceContext; | |
5 import de.intevation.artifacts.CallContext; | 4 import de.intevation.artifacts.CallContext; |
6 import de.intevation.artifacts.common.utils.XMLUtils; | |
7 import de.intevation.flys.artifacts.FLYSArtifact; | 5 import de.intevation.flys.artifacts.FLYSArtifact; |
8 import de.intevation.flys.artifacts.access.FixAnalysisAccess; | 6 import de.intevation.flys.artifacts.access.FixAnalysisAccess; |
9 import de.intevation.flys.artifacts.model.DateRange; | 7 import de.intevation.flys.artifacts.model.DateRange; |
10 import de.intevation.flys.artifacts.model.FacetTypes; | 8 import de.intevation.flys.artifacts.model.FacetTypes; |
11 import de.intevation.flys.artifacts.model.QWDDateRange; | 9 import de.intevation.flys.artifacts.model.QWDDateRange; |
24 import java.util.HashMap; | 22 import java.util.HashMap; |
25 import java.util.List; | 23 import java.util.List; |
26 import java.util.Map; | 24 import java.util.Map; |
27 import java.util.Set; | 25 import java.util.Set; |
28 | 26 |
29 import javax.xml.xpath.XPathConstants; | |
30 | |
31 import org.apache.log4j.Logger; | 27 import org.apache.log4j.Logger; |
32 import org.jfree.chart.annotations.XYTextAnnotation; | 28 import org.jfree.chart.annotations.XYTextAnnotation; |
33 import org.jfree.data.time.Day; | 29 import org.jfree.data.time.Day; |
34 import org.jfree.data.time.RegularTimePeriod; | 30 import org.jfree.data.time.RegularTimePeriod; |
35 import org.jfree.data.time.TimeSeries; | 31 import org.jfree.data.time.TimeSeries; |
36 import org.jfree.data.time.TimeSeriesCollection; | 32 import org.jfree.data.time.TimeSeriesCollection; |
37 import org.w3c.dom.Document; | 33 import org.w3c.dom.Document; |
38 import org.w3c.dom.Element; | |
39 | 34 |
40 | 35 |
41 /** | 36 /** |
42 * Generator for Delta W(t) charts. | 37 * Generator for Delta W(t) charts. |
43 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | 38 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> |
48 { | 43 { |
49 /** Private logger. */ | 44 /** Private logger. */ |
50 private static Logger logger = | 45 private static Logger logger = |
51 Logger.getLogger(FixDeltaWtGenerator.class); | 46 Logger.getLogger(FixDeltaWtGenerator.class); |
52 | 47 |
53 public static final String XPATH_CHART_CURRENTKM = | |
54 "/art:action/art:attributes/art:currentKm"; | |
55 | |
56 public static final String I18N_CHART_TITLE = | 48 public static final String I18N_CHART_TITLE = |
57 "chart.fix.deltawt.title"; | 49 "chart.fix.deltawt.title"; |
58 | 50 |
59 public static final String I18N_CHART_SUBTITLE = | 51 public static final String I18N_CHART_SUBTITLE = |
60 "chart.fix.deltawt.subtitle"; | 52 "chart.fix.deltawt.subtitle"; |
108 protected String getChartTitle() { | 100 protected String getChartTitle() { |
109 return Resources.format( | 101 return Resources.format( |
110 context.getMeta(), | 102 context.getMeta(), |
111 I18N_CHART_TITLE, | 103 I18N_CHART_TITLE, |
112 "", | 104 "", |
113 getCurrentKmFromRequest().doubleValue()); | 105 FixChartGenerator |
106 .getCurrentKmFromRequest(request).doubleValue()); | |
114 } | 107 } |
115 | 108 |
116 | 109 |
117 @Override | 110 @Override |
118 protected String getDefaultChartSubtitle() { | 111 protected String getDefaultChartSubtitle() { |
401 | 394 |
402 @Override | 395 @Override |
403 public void init(Document request, OutputStream out, CallContext context) { | 396 public void init(Document request, OutputStream out, CallContext context) { |
404 super.init(request, out, context); | 397 super.init(request, out, context); |
405 | 398 |
406 Double currentKm = getCurrentKmFromRequest(); | 399 Double currentKm = FixChartGenerator.getCurrentKmFromRequest(request); |
407 | 400 |
408 if (logger.isDebugEnabled()) { | 401 if (logger.isDebugEnabled()) { |
409 logger.debug("currentKm = " + currentKm); | 402 logger.debug("currentKm = " + currentKm); |
410 } | 403 } |
411 | 404 |
412 context.putContextValue("currentKm", currentKm); | 405 context.putContextValue("currentKm", currentKm); |
413 | 406 |
414 StyledValueMarker marker = new StyledValueMarker(0, request); | 407 StyledValueMarker marker = new StyledValueMarker(0, request); |
415 valueMarker.add(marker); | 408 valueMarker.add(marker); |
416 } | 409 } |
417 | |
418 protected Double getCurrentKmFromRequest() { | |
419 Element km = (Element)XMLUtils.xpath( | |
420 request, | |
421 XPATH_CHART_CURRENTKM, | |
422 XPathConstants.NODE, | |
423 ArtifactNamespaceContext.INSTANCE); | |
424 | |
425 if (km == null) { | |
426 return Double.valueOf(-1d); | |
427 } | |
428 | |
429 String uri = ArtifactNamespaceContext.NAMESPACE_URI; | |
430 // XXX: When using XPath already why is the 'km' | |
431 // attribute not fetched directly? | |
432 String currentKm = km.getAttributeNS(uri, "km"); | |
433 try { | |
434 return Double.valueOf(currentKm); | |
435 } | |
436 catch (NumberFormatException nfe) { | |
437 return Double.valueOf(-1d); | |
438 } | |
439 } | |
440 } | 410 } |
441 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : | 411 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |