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.

http://dive4elements.wald.intevation.org