diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java @ 358:2f7a28f211c7

Fetch ChartTheme from CallContext instead of creating it each time before creating a chart. gnv-artifacts/trunk@431 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 15 Dec 2009 15:30:25 +0000
parents 226091ed3cbd
children 77cd3a2bc381
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java	Tue Dec 15 15:14:21 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java	Tue Dec 15 15:30:25 2009 +0000
@@ -18,6 +18,8 @@
 import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory;
 import de.intevation.gnv.geobackend.base.query.container.QueryContainerFactory;
 import de.intevation.gnv.geobackend.base.query.container.exception.QueryContainerException;
+import de.intevation.gnv.chart.XMLChartTheme;
+import de.intevation.gnv.utils.ArtifactXMLUtilities;
 
 /**
  * @author Tim Englich <tim.englich@intevation.de>
@@ -35,6 +37,10 @@
 
     private final static String CACHECONFIGNODEPATH = "/artifact-database/ehcache/configuration";
 
+    private final static String CHARTCONFIGNODEPATH = "/artifact-database/charttemplate/configuration";
+
+    public final static String CHARTTEMPLATE = "template";
+
     /**
      * Constructor
      */
@@ -47,7 +53,7 @@
      * @see de.intevation.artifacts.ArtifactContextFactory#createArtifactContext(org.w3c.dom.Document)
      */
     public Object createArtifactContext(Document config) {
-        Object returnValue = null;
+        GNVArtifactContext returnValue = null;
         try {
             log.debug("GNVArtifactContextFactory.createArtifactContext");
             log.info("Initialisation of the Geo-BackendConnectionPool");
@@ -75,7 +81,20 @@
             CacheFactory cf = CacheFactory.getInstance();
             cf.initializeCache(cacheConfigurationFile);
 
+            log.info("Initialisation of chart template");
+            String chartConfigFile = Config.getStringXPath(
+                config, CHARTCONFIGNODEPATH
+            );
+            chartConfigFile        = Config.replaceConfigDir(chartConfigFile);
+            log.debug("Parse xml configuration of " + chartConfigFile);
+            InputStream is         = new FileInputStream(chartConfigFile);
+            Document      template = ArtifactXMLUtilities.readDocument(is);
+            XMLChartTheme theme    = new XMLChartTheme("XMLChartTheme");
+            theme.applyXMLConfiguration(template);
+
             returnValue = new GNVArtifactContext(config);
+
+            returnValue.put(CHARTTEMPLATE, theme);
         } catch (FileNotFoundException e) {
             log.error(e, e);
         } catch (IOException e) {

http://dive4elements.wald.intevation.org