Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java @ 4619:05c9902c761d
Added example config for river 'Elbe' and read the config in context factory.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Mon, 03 Dec 2012 16:54:32 +0100 |
parents | 58bdf95df5e4 |
children | e29f368c09ba |
comparison
equal
deleted
inserted
replaced
4618:e8c6fbed889b | 4619:05c9902c761d |
---|---|
1 package de.intevation.flys.artifacts.context; | 1 package de.intevation.flys.artifacts.context; |
2 | 2 |
3 import java.io.File; | 3 import java.io.File; |
4 import java.text.ParseException; | |
4 import java.util.ArrayList; | 5 import java.util.ArrayList; |
5 import java.util.HashMap; | 6 import java.util.HashMap; |
6 import java.util.List; | 7 import java.util.List; |
7 import java.util.Map; | 8 import java.util.Map; |
8 | 9 |
25 import de.intevation.artifactdatabase.state.StateEngine; | 26 import de.intevation.artifactdatabase.state.StateEngine; |
26 import de.intevation.artifactdatabase.transition.Transition; | 27 import de.intevation.artifactdatabase.transition.Transition; |
27 import de.intevation.artifactdatabase.transition.TransitionEngine; | 28 import de.intevation.artifactdatabase.transition.TransitionEngine; |
28 | 29 |
29 import de.intevation.flys.artifacts.model.Module; | 30 import de.intevation.flys.artifacts.model.Module; |
31 import de.intevation.flys.artifacts.model.ZoomScale; | |
30 import de.intevation.flys.artifacts.states.StateFactory; | 32 import de.intevation.flys.artifacts.states.StateFactory; |
31 import de.intevation.flys.artifacts.transitions.TransitionFactory; | 33 import de.intevation.flys.artifacts.transitions.TransitionFactory; |
32 import de.intevation.flys.themes.Theme; | 34 import de.intevation.flys.themes.Theme; |
33 import de.intevation.flys.themes.ThemeGroup; | 35 import de.intevation.flys.themes.ThemeGroup; |
34 import de.intevation.flys.themes.ThemeFactory; | 36 import de.intevation.flys.themes.ThemeFactory; |
82 public static final String XPATH_RIVER_WMS = | 84 public static final String XPATH_RIVER_WMS = |
83 "/artifact-database/floodmap/river"; | 85 "/artifact-database/floodmap/river"; |
84 | 86 |
85 public static final String XPATH_MODULES = "/artifact-database/modules/module"; | 87 public static final String XPATH_MODULES = "/artifact-database/modules/module"; |
86 | 88 |
89 private static final String XPATH_ZOOM_SCALES = "/artifact-database/options/zoom-scales/zoom-scale"; | |
90 | |
87 /** | 91 /** |
88 * Creates a new FLYSArtifactContext object and initialize all | 92 * Creates a new FLYSArtifactContext object and initialize all |
89 * components required by the application. | 93 * components required by the application. |
90 * | 94 * |
91 * @param config The artifact server configuration. | 95 * @param config The artifact server configuration. |
99 configureOutGenerators(config, context); | 103 configureOutGenerators(config, context); |
100 configureThemes(config, context); | 104 configureThemes(config, context); |
101 configureThemesMappings(config, context); | 105 configureThemesMappings(config, context); |
102 configureRiverWMS(config, context); | 106 configureRiverWMS(config, context); |
103 configureModules(config, context); | 107 configureModules(config, context); |
108 configureZoomScales(config, context); | |
104 | 109 |
105 return context; | 110 return context; |
111 } | |
112 | |
113 | |
114 private void configureZoomScales(Document config, FLYSContext context) { | |
115 NodeList list = (NodeList)XMLUtils.xpath( | |
116 config, | |
117 XPATH_ZOOM_SCALES, | |
118 XPathConstants.NODESET); | |
119 ZoomScale scale = new ZoomScale(); | |
120 for (int i = 0; i < list.getLength(); i++) { | |
121 Element element = (Element)list.item(i); | |
122 String river = "default"; | |
123 double range = 0d; | |
124 double radius = 10d; | |
125 if (element.hasAttribute("river")) { | |
126 river = element.getAttribute("river"); | |
127 } | |
128 if (!element.hasAttribute("range")) { | |
129 continue; | |
130 } | |
131 else { | |
132 String r = element.getAttribute("range"); | |
133 try { | |
134 range = Double.parseDouble(r); | |
135 } | |
136 catch (NumberFormatException nfe) { | |
137 continue; | |
138 } | |
139 } | |
140 if (!element.hasAttribute("radius")) { | |
141 continue; | |
142 } | |
143 else { | |
144 String r = element.getAttribute("radius"); | |
145 try { | |
146 radius = Double.parseDouble(r); | |
147 } | |
148 catch (NumberFormatException nfe) { | |
149 continue; | |
150 } | |
151 } | |
152 scale.addRange(river, range, radius); | |
153 } | |
154 context.put("zoomscale", scale); | |
106 } | 155 } |
107 | 156 |
108 | 157 |
109 /** | 158 /** |
110 * This method initializes the transition configuration. | 159 * This method initializes the transition configuration. |