annotate artifacts/src/main/java/org/dive4elements/river/exports/AbstractChartGenerator.java @ 9119:36c80c7fd02f

missing files Veg'Zone, FontMapper
author gernotbelger
date Tue, 05 Jun 2018 10:25:48 +0200
parents 07d51fd4864c
children 1cc7653ca84f
rev   line source
9104
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
2 * Software engineering by
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
5 *
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
9 */
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.exports;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
11
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
12 import javax.xml.xpath.XPathConstants;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
13
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
14 import org.dive4elements.artifacts.ArtifactNamespaceContext;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
15 import org.dive4elements.artifacts.CallContext;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
16 import org.dive4elements.artifacts.common.utils.XMLUtils;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.artifacts.D4EArtifact;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.artifacts.access.RangeAccess;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.artifacts.access.RiverAccess;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
20 import org.jfree.chart.JFreeChart;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
21 import org.jfree.chart.title.TextTitle;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
22 import org.w3c.dom.Document;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
23
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
24 /**
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
25 * @author Gernot Belger
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
26 */
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
27 // FIXME: this class is intended to contain all duplicate code from ChartGenerator and ChartGenerator2; who will clean
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
28 // up this mess...?
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
29 abstract class AbstractChartGenerator implements OutGenerator {
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
30 private static final String XPATH_CHART_EXPORT = "/art:action/art:attributes/art:export/@art:value";
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
31
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
32 // TODO: move real code here
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
33 protected abstract D4EArtifact getArtifact();
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
34
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
35 /** The CallContext object. */
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
36 // TODO: move real code here
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
37 protected abstract CallContext getContext();
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
38
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
39 /** The document of the incoming out() request. */
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
40 // TODO: move real code here
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
41 protected abstract Document getRequest();
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
42
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
43 /**
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
44 * Adds a metadata sub-title to the chart if it gets exported
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
45 */
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
46 protected final void addMetadataSubtitle(final JFreeChart chart) {
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
47 if (isExport()) {
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
48 final String text = ChartExportHelper.createMetadataSubtitle(getArtifact(), getContext(), getRiverName());
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
49 chart.addSubtitle(new TextTitle(text));
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
50 }
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
51 }
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
52
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
53 /**
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
54 * This method returns the export flag specified in the <i>request</i> document
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
55 * or <i>false</i> if no export is specified in <i>request</i>.
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
56 */
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
57 protected final boolean isExport() {
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
58 final Boolean export = (Boolean) XMLUtils.xpath(getRequest(), XPATH_CHART_EXPORT, XPathConstants.BOOLEAN, ArtifactNamespaceContext.INSTANCE);
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
59
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
60 return export == null ? false : export;
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
61 }
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
62
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
63 protected final String getRiverName() {
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
64 return new RiverAccess(getArtifact()).getRiver().getName();
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
65 }
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
66
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
67 protected final String getRiverUnit() {
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
68 return new RiverAccess(getArtifact()).getRiver().getWstUnit().getName();
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
69 }
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
70
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
71 protected final double[] getRange() {
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
72 final D4EArtifact flys = getArtifact();
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
73
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
74 final RangeAccess rangeAccess = new RangeAccess(flys);
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
75 return rangeAccess.getKmRange();
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
76 }
07d51fd4864c Added metadata subtitle to all chart export
gernotbelger
parents:
diff changeset
77 }

http://dive4elements.wald.intevation.org