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 :

http://dive4elements.wald.intevation.org