comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/SQRelation.java @ 3559:f9f266504f1d

S/Q relation: Initially activate/deactivate facets. flys-artifacts/trunk@5156 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 29 Jul 2012 12:30:25 +0000
parents 1df6984628c3
children 5063c93dfb8e
comparison
equal deleted inserted replaced
3558:c3cd414982fe 3559:f9f266504f1d
1 package de.intevation.flys.artifacts.states; 1 package de.intevation.flys.artifacts.states;
2 2
3 import de.intevation.artifactdatabase.state.Facet; 3 import de.intevation.artifactdatabase.state.Facet;
4 4 import de.intevation.artifactdatabase.state.FacetActivity;
5
6 import de.intevation.artifacts.Artifact;
5 import de.intevation.artifacts.CallContext; 7 import de.intevation.artifacts.CallContext;
6 import de.intevation.artifacts.CallMeta; 8 import de.intevation.artifacts.CallMeta;
9
10 import de.intevation.artifacts.common.utils.StringUtils;
7 11
8 import de.intevation.flys.artifacts.FLYSArtifact; 12 import de.intevation.flys.artifacts.FLYSArtifact;
9 13
10 import de.intevation.flys.artifacts.access.SQRelationAccess; 14 import de.intevation.flys.artifacts.access.SQRelationAccess;
11 15
50 "facet.sq_relation.outlier.curve"; 54 "facet.sq_relation.outlier.curve";
51 55
52 public static final String I18N_FACET_OUTLIER_MEASUREMENT = 56 public static final String I18N_FACET_OUTLIER_MEASUREMENT =
53 "facet.sq_relation.outlier.measurement"; 57 "facet.sq_relation.outlier.measurement";
54 58
59 public static final int CURVE_INDEX = 0;
60 public static final int MEASURREMENT_INDEX = 1;
61 public static final int OUTLIER_INDEX = 2;
62 public static final int OUTLIER_CURVE_INDEX = 3;
63 public static final int OUTLIER_MEASUREMENT_INDEX = 4;
64
65 public static final String [][] FACET_NAMES = {
66 { SQ_A_CURVE, SQ_B_CURVE, SQ_C_CURVE,
67 SQ_D_CURVE, SQ_E_CURVE, SQ_F_CURVE
68 },
69 { SQ_A_MEASUREMENT, SQ_B_MEASUREMENT, SQ_C_MEASUREMENT,
70 SQ_D_MEASUREMENT, SQ_E_MEASUREMENT, SQ_F_MEASUREMENT
71 },
72 { SQ_A_OUTLIER, SQ_B_OUTLIER, SQ_C_OUTLIER,
73 SQ_D_OUTLIER, SQ_E_OUTLIER, SQ_F_OUTLIER
74 },
75 { SQ_A_OUTLIER_CURVE, SQ_B_OUTLIER_CURVE, SQ_C_OUTLIER_CURVE,
76 SQ_D_OUTLIER_CURVE, SQ_E_OUTLIER_CURVE, SQ_F_OUTLIER_CURVE
77 },
78 { SQ_A_OUTLIER_MEASUREMENT, SQ_B_OUTLIER_MEASUREMENT,
79 SQ_C_OUTLIER_MEASUREMENT, SQ_D_OUTLIER_MEASUREMENT,
80 SQ_E_OUTLIER_MEASUREMENT, SQ_F_OUTLIER_MEASUREMENT
81 }
82 };
83
84
85 static {
86 // Active/deactivate facets.
87 FacetActivity.Registry.getInstance().register(
88 "minfo",
89 new FacetActivity() {
90 @Override
91 public Boolean isInitialActive(
92 Artifact artifact,
93 Facet facet,
94 String output
95 ) {
96 String name = facet.getName();
97
98 if (StringUtils.contains(name, FACET_NAMES[CURVE_INDEX])
99 || StringUtils.contains(
100 name, FACET_NAMES[OUTLIER_MEASUREMENT_INDEX])
101 ) {
102 // TODO: Only the last should be active.
103 return Boolean.TRUE;
104 }
105
106 if (StringUtils.contains(
107 name, FACET_NAMES[MEASURREMENT_INDEX])
108 || StringUtils.contains(
109 name, FACET_NAMES[OUTLIER_INDEX])
110 ) {
111 return Boolean.FALSE;
112 }
113
114 return null;
115 }
116 });
117 }
118
55 public SQRelation() { 119 public SQRelation() {
56 } 120 }
57 121
58 122
59 @Override 123 @Override
105 169
106 CallMeta meta = context.getMeta(); 170 CallMeta meta = context.getMeta();
107 String stateId = getID(); 171 String stateId = getID();
108 for (int i = 0; i < 6; i++) { 172 for (int i = 0; i < 6; i++) {
109 container.add(new SQOverviewFacet( 173 container.add(new SQOverviewFacet(
110 i, 174 i,
111 i, 175 i,
112 "sq_chart_overview", 176 "sq_chart_overview",
113 Resources.getMsg( 177 Resources.getMsg(
114 context.getMeta(), 178 meta,
115 I18N_FACET_CURVE, 179 I18N_FACET_CURVE,
116 I18N_FACET_CURVE 180 I18N_FACET_CURVE
117 ), 181 ),
118 hash, 182 hash,
119 getID() 183 getID()
120 )); 184 ));
121 } 185 }
122 for (int res = 0, n = sqr.length; res < n; res++) { 186 for (int res = 0, n = sqr.length; res < n; res++) {
123 187
124 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; i++) { 188 for (int i = 0; i < SQResult.NUMBER_FRACTIONS; i++) {
125 SQFractionResult result = sqr[res].getFraction(i); 189 SQFractionResult result = sqr[res].getFraction(i);
130 } 194 }
131 195
132 container.add(new SQCurveFacet( 196 container.add(new SQCurveFacet(
133 res, 197 res,
134 i, 198 i,
135 getFractionFacetname(0, i), 199 getFractionFacetname(CURVE_INDEX, i),
136 Resources.getMsg( 200 Resources.getMsg(
137 meta, 201 meta,
138 I18N_FACET_CURVE, 202 I18N_FACET_CURVE,
139 I18N_FACET_CURVE 203 I18N_FACET_CURVE
140 ), 204 ),
158 } 222 }
159 223
160 container.add(new SQOutlierFacet( 224 container.add(new SQOutlierFacet(
161 index, 225 index,
162 i, 226 i,
163 getFractionFacetname(2, i), 227 getFractionFacetname(OUTLIER_INDEX, i),
164 Resources.getMsg( 228 Resources.getMsg(
165 meta, 229 meta,
166 I18N_FACET_OUTLIERS, 230 I18N_FACET_OUTLIERS,
167 I18N_FACET_OUTLIERS, 231 I18N_FACET_OUTLIERS,
168 round 232 round
172 )); 236 ));
173 237
174 container.add(new SQOutlierCurveFacet( 238 container.add(new SQOutlierCurveFacet(
175 index, 239 index,
176 i, 240 i,
177 getFractionFacetname(3, i), 241 getFractionFacetname(OUTLIER_CURVE_INDEX, i),
178 Resources.getMsg( 242 Resources.getMsg(
179 meta, 243 meta,
180 I18N_FACET_OUTLIER_CURVE, 244 I18N_FACET_OUTLIER_CURVE,
181 I18N_FACET_OUTLIER_CURVE, 245 I18N_FACET_OUTLIER_CURVE,
182 round 246 round
186 )); 250 ));
187 251
188 container.add(new SQOutlierMeasurementFacet( 252 container.add(new SQOutlierMeasurementFacet(
189 index, 253 index,
190 i, 254 i,
191 getFractionFacetname(4, i), 255 getFractionFacetname(OUTLIER_MEASUREMENT_INDEX, i),
192 Resources.getMsg( 256 Resources.getMsg(
193 meta, 257 meta,
194 I18N_FACET_OUTLIER_MEASUREMENT, 258 I18N_FACET_OUTLIER_MEASUREMENT,
195 I18N_FACET_OUTLIER_MEASUREMENT, 259 I18N_FACET_OUTLIER_MEASUREMENT,
196 round 260 round
201 } // for all outliers 265 } // for all outliers
202 266
203 container.add(new SQMeasurementFacet( 267 container.add(new SQMeasurementFacet(
204 res, 268 res,
205 i, 269 i,
206 getFractionFacetname(1, i), 270 getFractionFacetname(MEASURREMENT_INDEX, i),
207 Resources.getMsg( 271 Resources.getMsg(
208 meta, 272 meta,
209 I18N_FACET_MEASUREMENTS, 273 I18N_FACET_MEASUREMENTS,
210 I18N_FACET_MEASUREMENTS 274 I18N_FACET_MEASUREMENTS
211 ), 275 ),
214 )); 278 ));
215 } // for all fractions 279 } // for all fractions
216 } // for all results 280 } // for all results
217 } 281 }
218 282
219 public static final String [][] FACET_NAMES = {
220 { SQ_A_CURVE, SQ_B_CURVE, SQ_C_CURVE,
221 SQ_D_CURVE, SQ_E_CURVE, SQ_F_CURVE
222 },
223 { SQ_A_MEASUREMENT, SQ_B_MEASUREMENT, SQ_C_MEASUREMENT,
224 SQ_D_MEASUREMENT, SQ_E_MEASUREMENT, SQ_F_MEASUREMENT
225 },
226 { SQ_A_OUTLIER, SQ_B_OUTLIER, SQ_C_OUTLIER,
227 SQ_D_OUTLIER, SQ_E_OUTLIER, SQ_F_OUTLIER
228 },
229 { SQ_A_OUTLIER_CURVE, SQ_B_OUTLIER_CURVE, SQ_C_OUTLIER_CURVE,
230 SQ_D_OUTLIER_CURVE, SQ_E_OUTLIER_CURVE, SQ_F_OUTLIER_CURVE
231 },
232 { SQ_A_OUTLIER_MEASUREMENT, SQ_B_OUTLIER_MEASUREMENT,
233 SQ_C_OUTLIER_MEASUREMENT, SQ_D_OUTLIER_MEASUREMENT,
234 SQ_E_OUTLIER_MEASUREMENT, SQ_F_OUTLIER_MEASUREMENT
235 }
236 };
237
238
239 protected static String getFractionFacetname(int type, int idx) { 283 protected static String getFractionFacetname(int type, int idx) {
240 if (log.isDebugEnabled()) { 284 if (log.isDebugEnabled()) {
241 log.debug("getFractionFacetname(): " + type + " | " + idx); 285 log.debug("getFractionFacetname(): " + type + " | " + idx);
242 } 286 }
243 type %= FACET_NAMES.length; 287 type %= FACET_NAMES.length;

http://dive4elements.wald.intevation.org