comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ReferenceCurveFacet.java @ 2407:dce0cc856357

'Bezugslinien': Added axis labels matching the displayed data. flys-artifacts/trunk@4036 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 10 Feb 2012 16:00:57 +0000
parents f008c3335a77
children ba15eb120a02
comparison
equal deleted inserted replaced
2406:84cdde4bc482 2407:dce0cc856357
1 package de.intevation.flys.artifacts.model; 1 package de.intevation.flys.artifacts.model;
2 2
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.List; 3 import java.util.List;
4 import java.util.Collections;
6 5
7 import de.intevation.artifactdatabase.state.Facet; 6 import de.intevation.artifactdatabase.state.Facet;
8 7
9 import de.intevation.artifacts.Artifact; 8 import de.intevation.artifacts.Artifact;
10 import de.intevation.artifacts.CallContext; 9 import de.intevation.artifacts.CallContext;
17 16
18 /** Facet for W-over-Ws. */ 17 /** Facet for W-over-Ws. */
19 public class ReferenceCurveFacet 18 public class ReferenceCurveFacet
20 extends DataFacet 19 extends DataFacet
21 { 20 {
22 public static final String BLACK_BOARD_KEY = "reference.curve.axis.scale"; 21 private static Logger log = Logger.getLogger(ReferenceCurveFacet.class);
23 22
24 public static final List BLACK_BOARD_KEY_LIST = 23 public static final String CONTEXT_KEY = "reference.curve.axis.scale";
25 Arrays.asList(new String [] { BLACK_BOARD_KEY });
26
27 private static Logger log = Logger.getLogger(ReferenceCurveFacet.class);
28 24
29 public ReferenceCurveFacet() { 25 public ReferenceCurveFacet() {
30 } 26 }
31 27
32 public ReferenceCurveFacet(int index, String name, String description) { 28 public ReferenceCurveFacet(int index, String name, String description) {
80 return copy; 76 return copy;
81 } 77 }
82 78
83 @Override 79 @Override
84 public List getDataProviderKeys(Artifact art, CallContext context) { 80 public List getDataProviderKeys(Artifact art, CallContext context) {
85 // Answer to key only if x or y in meter... 81
86 List keys = new ArrayList();
87 // compute / get data 82 // compute / get data
88 Object obj = context.getContextValue("reference.curve.axis.scale"); 83 Object obj = context.getContextValue(CONTEXT_KEY);
89 84
90 if (!(obj instanceof WWAxisTypes)) { 85 if (!(obj instanceof WWAxisTypes)) {
91 obj = new WWAxisTypes(getWWQQ(art, context)); 86 obj = new WWAxisTypes(getWWQQ(art, context));
92 context.putContextValue("reference.curve.axis.scale", obj); 87 context.putContextValue(CONTEXT_KEY, obj);
93 } 88 }
94 else { 89 else {
95 ((WWAxisTypes)obj).classify(getWWQQ(art, context)); 90 ((WWAxisTypes)obj).classify(getWWQQ(art, context));
96 } 91 }
97 // TODO we do not need to provide data
98 return BLACK_BOARD_KEY_LIST;
99 }
100 92
101 @Override 93 return Collections.emptyList();
102 public Object provideBlackboardData(
103 Artifact artifact,
104 Object key,
105 Object param,
106 CallContext context
107 ) {
108 // TODO we do not really need to provide data
109 if (!key.equals(BLACK_BOARD_KEY)) {
110 return null;
111 }
112
113 Object obj = context.getContextValue("reference.curve.axis.scale");
114
115 if (!(obj instanceof WWAxisTypes)) {
116 obj = new WWAxisTypes(getWWQQ(artifact, context));
117 context.putContextValue("reference.curve.axis.scale", obj);
118 }
119 else {
120 ((WWAxisTypes)obj).classify(getWWQQ(artifact, context));
121 }
122
123 return obj;
124 } 94 }
125 } 95 }
126 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 96 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org