Mercurial > dive4elements > river
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 : |