# HG changeset patch # User Raimund Renkert # Date 1354550072 -3600 # Node ID 05c9902c761d051b50e2b3af2dab912b14c0f1ce # Parent e8c6fbed889b5229f28a56842f53444ac9f8b33f Added example config for river 'Elbe' and read the config in context factory. diff -r e8c6fbed889b -r 05c9902c761d flys-artifacts/doc/conf/conf.xml --- a/flys-artifacts/doc/conf/conf.xml Mon Dec 03 16:53:22 2012 +0100 +++ b/flys-artifacts/doc/conf/conf.xml Mon Dec 03 16:54:32 2012 +0100 @@ -393,4 +393,12 @@ ${artifacts.config.dir}/themes.xml + + + + + + + + diff -r e8c6fbed889b -r 05c9902c761d flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java Mon Dec 03 16:53:22 2012 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/FLYSContextFactory.java Mon Dec 03 16:54:32 2012 +0100 @@ -1,6 +1,7 @@ package de.intevation.flys.artifacts.context; import java.io.File; +import java.text.ParseException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -27,6 +28,7 @@ import de.intevation.artifactdatabase.transition.TransitionEngine; import de.intevation.flys.artifacts.model.Module; +import de.intevation.flys.artifacts.model.ZoomScale; import de.intevation.flys.artifacts.states.StateFactory; import de.intevation.flys.artifacts.transitions.TransitionFactory; import de.intevation.flys.themes.Theme; @@ -84,6 +86,8 @@ public static final String XPATH_MODULES = "/artifact-database/modules/module"; + private static final String XPATH_ZOOM_SCALES = "/artifact-database/options/zoom-scales/zoom-scale"; + /** * Creates a new FLYSArtifactContext object and initialize all * components required by the application. @@ -101,11 +105,56 @@ configureThemesMappings(config, context); configureRiverWMS(config, context); configureModules(config, context); + configureZoomScales(config, context); return context; } + private void configureZoomScales(Document config, FLYSContext context) { + NodeList list = (NodeList)XMLUtils.xpath( + config, + XPATH_ZOOM_SCALES, + XPathConstants.NODESET); + ZoomScale scale = new ZoomScale(); + for (int i = 0; i < list.getLength(); i++) { + Element element = (Element)list.item(i); + String river = "default"; + double range = 0d; + double radius = 10d; + if (element.hasAttribute("river")) { + river = element.getAttribute("river"); + } + if (!element.hasAttribute("range")) { + continue; + } + else { + String r = element.getAttribute("range"); + try { + range = Double.parseDouble(r); + } + catch (NumberFormatException nfe) { + continue; + } + } + if (!element.hasAttribute("radius")) { + continue; + } + else { + String r = element.getAttribute("radius"); + try { + radius = Double.parseDouble(r); + } + catch (NumberFormatException nfe) { + continue; + } + } + scale.addRange(river, range, radius); + } + context.put("zoomscale", scale); + } + + /** * This method initializes the transition configuration. *