Mercurial > dive4elements > gnv-client
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) {