annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/WDifferencesState.java @ 8860:28df64078f27

Merge with 0862ea5d66baf60e7eee496d130a35157cc9ec12
author gernotbelger
date Fri, 19 Jan 2018 11:23:42 +0100
parents 8c64617a7991 5e38e2924c07
children 23264d1a528f
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: 5867
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: 5867
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: 4054
diff changeset
9 package org.dive4elements.river.artifacts.states;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
1643
ff7bffb7d5f0 Let WDifferences-diagram show more than one difference, if asked to.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1626
diff changeset
11 import java.util.ArrayList;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12 import java.util.List;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14 import org.apache.log4j.Logger;
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
15
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
16 import org.dive4elements.artifactdatabase.state.Facet;
7792
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
17 import org.dive4elements.artifactdatabase.state.FacetActivity;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
18 import org.dive4elements.artifactdatabase.data.StateData;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
20 import org.dive4elements.artifacts.CallContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
21 import org.dive4elements.artifacts.Artifact;
8547
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
22 import org.dive4elements.river.artifacts.access.RangeAccess;
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
23 import org.dive4elements.river.artifacts.ChartArtifact;
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
24 import org.dive4elements.river.artifacts.D4EArtifact;
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
25 import org.dive4elements.river.artifacts.FixationArtifact;
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
26 import org.dive4elements.river.artifacts.MINFOArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
27 import org.dive4elements.river.artifacts.StaticWKmsArtifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
28 import org.dive4elements.river.artifacts.WINFOArtifact;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
29
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
30 import org.dive4elements.river.artifacts.math.WKmsOperation;
2136
3a5ef4ac8e0f 'New Chart' for w-differences curve.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1886
diff changeset
31
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
32 import org.dive4elements.river.artifacts.model.CalculationResult;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
33 import org.dive4elements.river.artifacts.model.DataFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
34 import org.dive4elements.river.artifacts.model.DifferenceCurveFacet;
7792
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
35 import org.dive4elements.river.artifacts.model.DifferenceCurveFilterFacet;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
36 import org.dive4elements.river.artifacts.model.EmptyFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
37 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
38 import org.dive4elements.river.artifacts.model.WKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
39 import org.dive4elements.river.artifacts.model.WQKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4054
diff changeset
40
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
41 import org.dive4elements.river.artifacts.model.fixings.FixRealizingResult;
7792
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
42 import org.dive4elements.river.artifacts.resources.Resources;
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
43
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
44 import org.dive4elements.river.utils.RiverUtils;
8186
a1ceacf15d3a Removed NASTY package clash. We had too org.dive4elements.river.util packages.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7792
diff changeset
45 import org.dive4elements.river.backend.utils.StringUtil;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
46
6573
7d86ed4537d9 Cosmetics, doc, obsolete import removal.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
47 /** State of a WINFOArtifact to get differences of data of other artifacts. */
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
48 public class WDifferencesState
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
49 extends DefaultState
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
50 implements FacetTypes
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
51 {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
52 /** The log that is used in this state. */
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
53 private static Logger log = Logger.getLogger(WDifferencesState.class);
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
54
7792
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
55 private static final String I18N_DIFFERENCES_FACET_NAME =
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
56 "facet.w_differences";
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
57 private static final String I18N_DIFFERENCES_FACET_NAME_RAW =
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
58 "facet.w_differences.raw";
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
59
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
60 static {
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
61 // Active/deactivate facets.
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
62 FacetActivity.Registry.getInstance().register(
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
63 "winfo",
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
64 new FacetActivity() {
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
65 @Override
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
66 public Boolean isInitialActive(
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
67 Artifact artifact,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
68 Facet facet,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
69 String output
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
70 ) {
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
71 String name = facet.getName();
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
72
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
73 if (name.equals(FacetTypes.W_DIFFERENCES)) {
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
74 return Boolean.FALSE;
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
75 }
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
76 return Boolean.TRUE;
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
77 }
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
78 });
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
79 }
1173
2490d6ef394e Extended WDifferences bracnh of WINFO to have calculation in dedicated,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
80
2490d6ef394e Extended WDifferences bracnh of WINFO to have calculation in dedicated,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
81 /** Specify to display nothing (this is kind of a "final" state). */
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 @Override
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83 protected String getUIProvider() {
1173
2490d6ef394e Extended WDifferences bracnh of WINFO to have calculation in dedicated,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
84 return "noinput";
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
86
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
87
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
88 @Override
1183
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
89 public boolean validate(Artifact artifact)
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
90 throws IllegalArgumentException
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
91 {
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
92 D4EArtifact flys = (D4EArtifact) artifact;
7029
a3d4153afb16 issue1470: Make validate of WDifferencesState return true if in "new chart".
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6618
diff changeset
93 if (artifact instanceof ChartArtifact) {
a3d4153afb16 issue1470: Make validate of WDifferencesState return true if in "new chart".
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6618
diff changeset
94 return true;
a3d4153afb16 issue1470: Make validate of WDifferencesState return true if in "new chart".
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6618
diff changeset
95 }
1183
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
96
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
97 StateData data = flys.getData("diffids");
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
98
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
99 if (data == null) {
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
100 throw new IllegalArgumentException("diffids is empty");
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
101 }
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
102
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
103 // TODO: Also validate format.
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
104
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
105 return true;
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
106 }
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
107
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
108
3122
721298eeb694 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
109 /**
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
110 * Access the data (wkms) of an artifact, coded in mingle.
3122
721298eeb694 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
111 */
8853
8c64617a7991 Some source code comments and fixme's
gernotbelger
parents: 8647
diff changeset
112 // FIXME: meanwhile used by several places outside this context; refactor into separate helper class to access waterlevels
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
113 public WKms getWKms(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
114 String mingle,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
115 CallContext context,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
116 double from,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
117 double to
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
118 ) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
119 log.debug("WDifferencesState.getWKms " + mingle);
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
120 String[] def = mingle.split(";");
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
121 String uuid = def[0];
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
122 String name = def[1];
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
123 int idx = Integer.parseInt(def[2]);
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
124 D4EArtifact d4eArtifact = RiverUtils.getArtifact(
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
125 uuid,
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
126 context);
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
127
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
128 if (d4eArtifact == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
129 log.warn("One of the artifacts (1) for diff calculation "
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
130 + "could not be loaded");
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
131 return null;
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
132 }
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
133
8552
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
134 WKms retval = null;
8547
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
135 if (d4eArtifact instanceof StaticWKmsArtifact) {
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
136 StaticWKmsArtifact staticWKms = (StaticWKmsArtifact) d4eArtifact;
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
137 log.debug("WDifferencesState obtain data from StaticWKms");
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
138 WKms wkms = staticWKms.getWKms(idx, from, to);
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
139 if (wkms == null) {
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
140 log.error("No WKms from Static artifact for this range.");
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
141 return new WQKms();
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
142 }
8552
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
143 return wkms; /* No need for additional km filtering */
8547
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
144 } else if (d4eArtifact instanceof WINFOArtifact) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
145 log.debug("Get WKms from WINFOArtifact");
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
146 WINFOArtifact flys = (WINFOArtifact) d4eArtifact;
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
147
6618
e8e76d50d119 issue1399: Use WKms instead of WQKms object, as W-Difference artifact themselves
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6582
diff changeset
148 WKms[] wkms = (WKms[]) flys.getWaterlevelData(context).
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
149 getData();
6618
e8e76d50d119 issue1399: Use WKms instead of WQKms object, as W-Difference artifact themselves
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6582
diff changeset
150 if (wkms == null || wkms.length == 0) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
151 log.warn("no waterlevels in artifact");
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
152 }
6618
e8e76d50d119 issue1399: Use WKms instead of WQKms object, as W-Difference artifact themselves
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6582
diff changeset
153 else if (wkms.length < idx+1) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
154 log.warn("Not enough waterlevels in artifact.");
8552
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
155 retval = new WQKms();
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
156 }
8552
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
157 retval = wkms[idx];
8547
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
158 } else if (d4eArtifact instanceof MINFOArtifact) {
8546
522f72f43ae6 Warn for not implemented difference handling of minfo artifacts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
159 log.warn("Get WKms from MINFOArtifact not implemented!");
522f72f43ae6 Warn for not implemented difference handling of minfo artifacts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
160 // CalculationResult r = (CalculationResult)
522f72f43ae6 Warn for not implemented difference handling of minfo artifacts.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
161 // d4eArtifact.compute(context, ComputeType.ADVANCE, false);
8547
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
162 } else if (d4eArtifact instanceof FixationArtifact) {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
163 log.debug ("Get WKms from FixationArtifact.");
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
164 CalculationResult r = (CalculationResult)
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
165 d4eArtifact.compute(context, ComputeType.ADVANCE, false);
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
166 FixRealizingResult frR = (FixRealizingResult) r.getData();
8552
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
167 retval = frR.getWQKms()[idx];
6582
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
168 }
7216143665d9 issue1394, issue1366: Prepare difference state to handle other artifacts, esp.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6573
diff changeset
169
8552
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
170
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
171 if (retval == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
172 log.error(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
173 "Do not know how to handle (getWKms) minuend/subtrahend");
8552
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
174 } else if (!Double.isNaN(from) && !Double.isNaN(to)) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
175 /* Filter out only relevant data points for calulation results.*/
8552
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
176 log.debug("Before filter: " + retval.size());
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
177 retval = retval.filteredKms(from, to);
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
178 log.debug("After filter: " + retval.size());
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
179 }
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
180
fa57a2cb1dfa (issue1754) Add km filtering for winfo anf fixanal results in difference calculations
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8547
diff changeset
181 return retval;
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
182 }
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
183
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
184
1643
ff7bffb7d5f0 Let WDifferences-diagram show more than one difference, if asked to.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1626
diff changeset
185 /**
1652
46a2a5dc98b7 In W-Difference-calculation, respect indices of selected facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1643
diff changeset
186 * Return CalculationResult with Array of WKms that are difference of
46a2a5dc98b7 In W-Difference-calculation, respect indices of selected facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1643
diff changeset
187 * Waterlevels. Add respective facets (DifferencesCurveFacet, DataFacet).
1643
ff7bffb7d5f0 Let WDifferences-diagram show more than one difference, if asked to.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1626
diff changeset
188 */
1183
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
189 @Override
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 public Object computeAdvance(
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
191 D4EArtifact artifact,
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
192 String hash,
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
193 CallContext context,
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
194 List<Facet> facets,
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
195 Object old
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
196 ) {
2136
3a5ef4ac8e0f 'New Chart' for w-differences curve.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1886
diff changeset
197 if (artifact instanceof ChartArtifact) {
3a5ef4ac8e0f 'New Chart' for w-differences curve.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1886
diff changeset
198 ChartArtifact chart = (ChartArtifact)artifact;
3a5ef4ac8e0f 'New Chart' for w-differences curve.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1886
diff changeset
199 facets.add(new EmptyFacet());
3a5ef4ac8e0f 'New Chart' for w-differences curve.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1886
diff changeset
200 return null;
3a5ef4ac8e0f 'New Chart' for w-differences curve.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1886
diff changeset
201 }
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
202 WINFOArtifact winfo = (WINFOArtifact) artifact;
1173
2490d6ef394e Extended WDifferences bracnh of WINFO to have calculation in dedicated,
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1161
diff changeset
203 String id = getID();
8547
04367906f158 (issue1754) Add distantce handling to WINFO differences state
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8546
diff changeset
204 RangeAccess rangeAccess = new RangeAccess(artifact);
8647
5f60bd7c4b42 (issue1754) Simplify code to handle a>b cases.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8608
diff changeset
205 double from = rangeAccess.getFrom(true);
5f60bd7c4b42 (issue1754) Simplify code to handle a>b cases.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8608
diff changeset
206 double to = rangeAccess.getTo(true);
1183
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
207 // Load the Artifacts/facets that we want to subtract and display.
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
208 // Expected format is:
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8647
diff changeset
209 //[42537f1e-3522-42ef-8968-635b03d8e9c6;longitudinal_section.w;0]#[...]
1661
a890bf077de5 Use StringUtil.wWrap , fix wrong loop, minor refac and cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1655
diff changeset
210 String diffids = winfo.getDataAsString("diffids");
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
211 log.debug("WDifferencesState has: " + diffids);
1661
a890bf077de5 Use StringUtil.wWrap , fix wrong loop, minor refac and cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1655
diff changeset
212 String datas[] = diffids.split("#");
1183
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
213
8608
0f6f702742b4 (issue1754) Check if start > end and handle this
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8552
diff changeset
214 log.debug("Difference from: " + from + " to: " + to);
0f6f702742b4 (issue1754) Check if start > end and handle this
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8552
diff changeset
215 /* Check if we need to obtain the data in a different order */
1183
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
216 // Validate the Data-Strings.
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
217 for (String s: datas) {
4054
102050c4fc00 fix issue909: strange validation code. be fearles.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3122
diff changeset
218 if (!WaterlevelSelectState.isValueValid(s)) {
1183
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
219 // TODO: escalate.
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
220 }
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
221 }
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
222
1626
b9b47af71564 Preparations for ability to display multiple differences in one plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1187
diff changeset
223 if (datas.length < 2) {
1183
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
224 // TODO crash with style
9c1cda9e2bc4 Load given artifacts for w-diff calculation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1173
diff changeset
225 }
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
226
1643
ff7bffb7d5f0 Let WDifferences-diagram show more than one difference, if asked to.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1626
diff changeset
227 List<WKms> wkmss = new ArrayList<WKms>();
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
228
1661
a890bf077de5 Use StringUtil.wWrap , fix wrong loop, minor refac and cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1655
diff changeset
229 for(int i = 0; i < datas.length; i+=2) {
1652
46a2a5dc98b7 In W-Difference-calculation, respect indices of selected facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1643
diff changeset
230 // e.g.:
46a2a5dc98b7 In W-Difference-calculation, respect indices of selected facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1643
diff changeset
231 // 42537f1e-3522-42ef-8968-635b03d8e9c6;longitudinal_section.w;1
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
232 WKms minuendWKms = getWKms(StringUtil.unbracket(datas[i+0]),
8647
5f60bd7c4b42 (issue1754) Simplify code to handle a>b cases.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8608
diff changeset
233 context, from, to);
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
234 WKms subtrahendWKms = getWKms(StringUtil.unbracket(datas[i+1]),
8647
5f60bd7c4b42 (issue1754) Simplify code to handle a>b cases.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8608
diff changeset
235 context, from, to);
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
236
1626
b9b47af71564 Preparations for ability to display multiple differences in one plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1187
diff changeset
237 String facetName = "diff ()";
7792
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
238 String minName = "min";
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
239 String subName = "sub";
1626
b9b47af71564 Preparations for ability to display multiple differences in one plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1187
diff changeset
240
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
241 if (minuendWKms != null && subtrahendWKms != null) {
7792
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
242 minName = StringUtil.wWrap(minuendWKms.getName());
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
243 subName = StringUtil.wWrap(subtrahendWKms.getName());
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
244 facetName = minName + " - " + subName;
1732
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
245 WKms wkms = WKmsOperation.SUBTRACTION.operate(minuendWKms,
1a57027286ce Handle StaticWKmsArtifacts in WDifferencesState.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1696
diff changeset
246 subtrahendWKms);
1643
ff7bffb7d5f0 Let WDifferences-diagram show more than one difference, if asked to.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1626
diff changeset
247 wkms.setName(facetName);
ff7bffb7d5f0 Let WDifferences-diagram show more than one difference, if asked to.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1626
diff changeset
248 wkmss.add(wkms);
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
249 log.debug("WKMSSubtraction happened");
1626
b9b47af71564 Preparations for ability to display multiple differences in one plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1187
diff changeset
250 }
b9b47af71564 Preparations for ability to display multiple differences in one plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1187
diff changeset
251 if (facets != null) {
7792
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
252 facets.add(new DifferenceCurveFacet(
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
253 i/2,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
254 W_DIFFERENCES,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
255 Resources.getMsg(
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
256 context.getMeta(),
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
257 I18N_DIFFERENCES_FACET_NAME_RAW,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
258 facetName,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
259 new Object[] { minName, subName }),
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
260 ComputeType.ADVANCE,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
261 id,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
262 hash));
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
263 facets.add(new DifferenceCurveFilterFacet(i/2,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
264 W_DIFFERENCES_FILTERED,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
265 Resources.getMsg(
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
266 context.getMeta(),
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
267 I18N_DIFFERENCES_FACET_NAME,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
268 facetName,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
269 new Object[] { minName, subName }),
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
270 ComputeType.ADVANCE,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
271 id,
6451970e0562 Add the new difference facet and set facets active/inactive.
Raimund Renkert <rrenkert@intevation.de>
parents: 7697
diff changeset
272 hash));
1626
b9b47af71564 Preparations for ability to display multiple differences in one plot.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1187
diff changeset
273 }
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2136
diff changeset
274 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2136
diff changeset
275
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2136
diff changeset
276 if (facets != null) {
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2136
diff changeset
277 facets.add(new DataFacet(CSV, "CSV data"));
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2136
diff changeset
278 facets.add(new DataFacet(PDF, "PDF data"));
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
279 log.debug("Adding facets in WDifferencesState.");
2180
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2136
diff changeset
280 }
65b32220f197 Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 2136
diff changeset
281 else {
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8186
diff changeset
282 log.debug("Not adding facets in WDifferencesState.");
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
283 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
284
1652
46a2a5dc98b7 In W-Difference-calculation, respect indices of selected facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1643
diff changeset
285 // TODO Evaluate whether null is okay as reports.
1643
ff7bffb7d5f0 Let WDifferences-diagram show more than one difference, if asked to.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1626
diff changeset
286 WKms[] diffs = wkmss.toArray(new WKms[wkmss.size()]);
1652
46a2a5dc98b7 In W-Difference-calculation, respect indices of selected facets.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1643
diff changeset
287 CalculationResult result = new CalculationResult(diffs, null);
1643
ff7bffb7d5f0 Let WDifferences-diagram show more than one difference, if asked to.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1626
diff changeset
288 return result;
1151
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
289 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
290 }
08048bd090e6 Added very stubby WDifferences State/OutGenerator for WINFOArtifact.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
291 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org