Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/ManualPointsSingleState.java @ 3198:d35f28655fa6
Create and handle new manual line type facets.
flys-artifacts/trunk@4814 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 27 Jun 2012 15:22:01 +0000 |
parents | 5642a83420f2 |
children | e74e707ff650 |
comparison
equal
deleted
inserted
replaced
3197:3e7911a02645 | 3198:d35f28655fa6 |
---|---|
1 package de.intevation.flys.artifacts.states; | 1 package de.intevation.flys.artifacts.states; |
2 | 2 |
3 import java.util.List; | 3 import java.util.List; |
4 | 4 |
5 import org.apache.log4j.Logger; | 5 import org.apache.log4j.Logger; |
6 | |
7 import org.json.JSONArray; | |
8 import org.json.JSONException; | |
6 | 9 |
7 import de.intevation.artifacts.CallMeta; | 10 import de.intevation.artifacts.CallMeta; |
8 import de.intevation.artifacts.CallContext; | 11 import de.intevation.artifacts.CallContext; |
9 | 12 |
10 import de.intevation.artifactdatabase.state.Facet; | 13 import de.intevation.artifactdatabase.state.Facet; |
11 | 14 |
12 import de.intevation.flys.artifacts.FLYSArtifact; | 15 import de.intevation.flys.artifacts.FLYSArtifact; |
13 import de.intevation.flys.artifacts.ManualPointsArtifact; | 16 import de.intevation.flys.artifacts.ManualPointsArtifact; |
14 | 17 |
18 import de.intevation.flys.artifacts.model.CrossSectionWaterLineFacet; | |
19 import de.intevation.flys.artifacts.model.FacetTypes; | |
15 import de.intevation.flys.artifacts.model.ManualPointsFacet; | 20 import de.intevation.flys.artifacts.model.ManualPointsFacet; |
16 import de.intevation.flys.artifacts.model.FacetTypes; | |
17 | 21 |
18 import de.intevation.flys.artifacts.resources.Resources; | 22 import de.intevation.flys.artifacts.resources.Resources; |
19 | |
20 | 23 |
21 /** | 24 /** |
22 * The only state for an ManualPointArtifact. | 25 * The only state for an ManualPointArtifact. |
23 */ | 26 */ |
24 public class ManualPointsSingleState | 27 public class ManualPointsSingleState |
25 extends DefaultState | 28 extends DefaultState |
26 implements FacetTypes | 29 implements FacetTypes |
27 { | 30 { |
28 /** Developer-centric description of facet. */ | 31 /** Developer-centric description of facet. */ |
29 public static final String I18N_DESCRIPTION = "facet.longitudinal_section.manualpoint"; | 32 public static final String I18N_DESCRIPTION |
33 = "facet.longitudinal_section.manualpoint"; | |
34 | |
35 /** Part of data key. */ | |
36 protected static final String DOT_DATA | |
37 = ".data"; | |
38 | |
39 /** Part of data key. */ | |
40 protected static final String DOT_LINES | |
41 = ".lines"; | |
30 | 42 |
31 /** The logger that is used in this state. */ | 43 /** The logger that is used in this state. */ |
32 private static final Logger logger = Logger.getLogger(ManualPointsSingleState.class); | 44 private static final Logger logger = |
45 Logger.getLogger(ManualPointsSingleState.class); | |
33 | 46 |
34 | 47 |
35 /** | 48 /** |
36 * Add an ManualPointsFacet to list of Facets. | 49 * Add ManualPointsFacets to list of Facets. |
37 * | 50 * |
38 * @param artifact Ignored. | 51 * @param artifact Ignored. |
39 * @param hash Ignored. | 52 * @param hash Ignored. |
40 * @param context Ignored. | |
41 * @param meta CallMeta to be used for internationalization. | 53 * @param meta CallMeta to be used for internationalization. |
42 * @param facets List to add ManualPointsFacet to. | 54 * @param facets List to add ManualPointsFacet to. |
43 * | 55 * |
44 * @return null. | 56 * @return null. |
45 */ | 57 */ |
52 logger.debug("ManualPointsSingleState.compute()"); | 64 logger.debug("ManualPointsSingleState.compute()"); |
53 ManualPointsArtifact points = (ManualPointsArtifact) artifact; | 65 ManualPointsArtifact points = (ManualPointsArtifact) artifact; |
54 | 66 |
55 // Add Facet per Diagram type if data given. | 67 // Add Facet per Diagram type if data given. |
56 for (ChartType ct: ChartType.values()) { | 68 for (ChartType ct: ChartType.values()) { |
57 String pointData = points.getDataAsString(ct + "." + MANUALPOINTS + ".data"); | 69 // Handle points. |
58 if (pointData != null && !pointData.equals("") && !pointData.equals("[]")) { | 70 String pointData = points.getDataAsString(ct + "." + MANUALPOINTS + |
71 DOT_DATA); | |
72 if (pointData != null && !pointData.equals("") | |
73 && !pointData.equals("[]")) { | |
59 String fName = ct + "." + MANUALPOINTS; | 74 String fName = ct + "." + MANUALPOINTS; |
60 ManualPointsFacet facet = new ManualPointsFacet( | 75 ManualPointsFacet facet = new ManualPointsFacet( |
61 0, | 76 0, |
62 fName, | 77 fName, |
63 Resources.getMsg(meta, "manualpoints", "Manual Points")); | 78 Resources.getMsg(meta, "manualpoints", "Manual Points")); |
65 facets.add(facet); | 80 facets.add(facet); |
66 } | 81 } |
67 else { | 82 else { |
68 //logger.debug("No points for " + ct); | 83 //logger.debug("No points for " + ct); |
69 } | 84 } |
85 | |
86 // Handle lines. | |
87 String linesData = points.getDataAsString(ct + "." + MANUALPOINTS + | |
88 DOT_LINES); | |
89 if (linesData != null && !linesData.equals("") | |
90 && !linesData.equals("[]")) { | |
91 try { | |
92 JSONArray lines = new JSONArray((String) linesData); | |
93 for (int i = 0, P = lines.length(); i < P; i++) { | |
94 JSONArray array = lines.getJSONArray(i); | |
95 double y = array.getDouble(0); | |
96 String name = array.getString(1); | |
97 String fName = ct + "." + MANUALLINE; | |
98 logger.debug("have facet: " + y + " / " + name + " -> " + fName); | |
99 CrossSectionWaterLineFacet facet = new CrossSectionWaterLineFacet( | |
100 i, | |
101 fName, | |
102 name); | |
103 | |
104 facets.add(facet); | |
105 } | |
106 } | |
107 catch(JSONException e){ | |
108 logger.error("Could not decode json."); | |
109 } | |
110 | |
111 } | |
112 else { | |
113 //logger.debug("No points for " + ct); | |
114 } | |
70 } | 115 } |
71 | 116 |
72 return null; | 117 return null; |
73 } | 118 } |
74 | 119 |
75 | 120 |
121 /** Call compute. */ | |
76 @Override | 122 @Override |
77 public Object computeInit( | 123 public Object computeInit( |
78 FLYSArtifact artifact, | 124 FLYSArtifact artifact, |
79 String hash, | 125 String hash, |
80 Object context, | 126 Object context, |
83 ) { | 129 ) { |
84 return compute(artifact, hash, meta, facets); | 130 return compute(artifact, hash, meta, facets); |
85 } | 131 } |
86 | 132 |
87 | 133 |
134 /** Call compute. */ | |
88 @Override | 135 @Override |
89 public Object computeFeed( | 136 public Object computeFeed( |
90 FLYSArtifact artifact, | 137 FLYSArtifact artifact, |
91 String hash, | 138 String hash, |
92 CallContext context, | 139 CallContext context, |