annotate artifacts/src/main/java/org/dive4elements/river/exports/fixings/FixChartGenerator.java @ 7691:fa4fbd66e752

(issue1579) Fix axes syncronisation at Gauges The SyncNumberAxis was completely broken. It only synced in one direction and even that did not work correctly when data was added to the axis (and the syncAxis rescaled but forgot the old axis) then there were lots of ways to bypass that scaling. And i also think the trans calculation was wrong. It has been replaced by a "mostly" simple method to just keep the W in M and W in CM+Datum axes in sync. I say "Mostly" because it had to deal with the Bounds interface.
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 13 Dec 2013 19:03:00 +0100
parents 0a337f0005c2
children e4606eae8ea5
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4437
diff changeset
9 package org.dive4elements.river.exports.fixings;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4437
diff changeset
11 import org.dive4elements.artifacts.ArtifactNamespaceContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4437
diff changeset
12 import org.dive4elements.artifacts.CallContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4437
diff changeset
13 import org.dive4elements.artifacts.common.utils.XMLUtils;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4437
diff changeset
14 import org.dive4elements.river.exports.XYChartGenerator;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import java.io.OutputStream;
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17
3406
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
18 import org.apache.log4j.Logger;
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
19 import org.w3c.dom.Document;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3406
diff changeset
21 /**
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3406
diff changeset
22 * Base class for FixChartGenerator.
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3406
diff changeset
23 */
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 public abstract class FixChartGenerator
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 extends XYChartGenerator
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 {
3650
cbe2febe30cc Merged revisions 5391-5392 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3406
diff changeset
27 /** Private logger. */
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 private static Logger logger = Logger.getLogger(FixChartGenerator.class);
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29
3727
b81f328da582 Removed code duplication.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3650
diff changeset
30 public static final Double INVALID_KM = Double.valueOf(-1d);
3406
3732e1bab0aa Add kilometer to chart titles
Christian Lins <christian.lins@intevation.de>
parents: 3221
diff changeset
31 public static final String CURRENT_KM = "currentKm";
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 public static final String XPATH_CHART_CURRENTKM =
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
33 "/art:action/art:attributes/art:currentKm/@art:km";
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 @Override
7077
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
36 public void init(String outName, Document request, OutputStream out, CallContext context) {
0a337f0005c2 Extended init() of OutGenerator to take name of the out to serve.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
37 super.init(outName, request, out, context);
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38
3727
b81f328da582 Removed code duplication.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3650
diff changeset
39 Double currentKm = getCurrentKmFromRequest(request);
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
40
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
41 if (logger.isDebugEnabled()) {
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
42 logger.debug("currentKm = " + currentKm);
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
43 }
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
44
4437
dd8a63002fb8 Only put current Km to the context if it is a valid km
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3727
diff changeset
45 if (currentKm != INVALID_KM) {
dd8a63002fb8 Only put current Km to the context if it is a valid km
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3727
diff changeset
46 context.putContextValue(CURRENT_KM, currentKm);
dd8a63002fb8 Only put current Km to the context if it is a valid km
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3727
diff changeset
47 }
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 }
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49
3727
b81f328da582 Removed code duplication.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3650
diff changeset
50 public static final Double getCurrentKmFromRequest(Document request) {
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
51
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
52 String km = XMLUtils.xpathString(
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 request,
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 XPATH_CHART_CURRENTKM,
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 ArtifactNamespaceContext.INSTANCE);
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 if (km == null) {
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
58 return INVALID_KM;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 }
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 try {
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
62 return Double.valueOf(km);
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 }
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
64 catch (NumberFormatException nfe) {
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
65 return INVALID_KM;
3088
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 }
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 }
960307cf2adc Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 }
3221
06ae0258269b More braindead code removal.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3088
diff changeset
69 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org