annotate gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java @ 444:85f48e287fb3

Added configuration for vertical cross sections ("Profilschnitte") gnv-artifacts/trunk@492 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 30 Dec 2009 10:35:19 +0000
parents da21c256a0ba
children 07672838fa5f
rev   line source
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 /**
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2 *
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 */
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 package de.intevation.gnv.artifacts.context;
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 import java.io.FileInputStream;
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
7 import java.io.FileNotFoundException;
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8 import java.io.IOException;
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 import java.io.InputStream;
369
77cd3a2bc381 Fixed file-leak bug and sourced xml parsing out to XMLUtils of artifactdatabase.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 358
diff changeset
10 import java.io.File;
77cd3a2bc381 Fixed file-leak bug and sourced xml parsing out to XMLUtils of artifactdatabase.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 358
diff changeset
11
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12 import java.util.Properties;
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
13 import java.util.HashMap;
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
14 import java.util.ArrayList;
444
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
15 import java.util.Collections;
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
16
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
17 import java.awt.Dimension;
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
19 import org.apache.log4j.Logger;
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
20
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
21 import org.w3c.dom.Document;
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
22 import org.w3c.dom.Element;
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
23 import org.w3c.dom.NodeList;
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
24
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
25 import de.intevation.gnv.geobackend.base.connectionpool.ConnectionPoolFactory;
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
26
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
27 import de.intevation.gnv.geobackend.base.query.container.QueryContainerFactory;
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
28 import de.intevation.gnv.geobackend.base.query.container.exception.QueryContainerException;
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
29
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
30 import de.intevation.gnv.chart.XMLChartTheme;
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
31
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
32 import de.intevation.gnv.artifacts.cache.CacheFactory;
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
33
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
34 import de.intevation.gnv.raster.Palette;
444
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
35 import de.intevation.gnv.raster.Filter;
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
36 import de.intevation.gnv.raster.PaletteManager;
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
37
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
38 import de.intevation.artifacts.ArtifactContextFactory;
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
39
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
40 import de.intevation.artifactdatabase.Config;
369
77cd3a2bc381 Fixed file-leak bug and sourced xml parsing out to XMLUtils of artifactdatabase.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 358
diff changeset
41 import de.intevation.artifactdatabase.XMLUtils;
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
42
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
43 /**
442
52e031261eaa Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 438
diff changeset
44 * @author Tim Englich (tim.englich@intevation.de)
52e031261eaa Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 438
diff changeset
45 * @author Ingo Weinzierl (iweinzierl@intevation.de)
52e031261eaa Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 438
diff changeset
46 * @author Sascha L. Teichmann (sascha.teichmann@intevation.de)
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
47 */
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
48 public class GNVArtifactContextFactory implements ArtifactContextFactory {
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
49 /**
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
50 * the logger, used to log exceptions and additonaly information
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 */
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
52 private static Logger log = Logger.getLogger(GNVArtifactContext.class);
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
53
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
54 public static final String XPATH_GEOBACKEND_CONFIGURATION =
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
55 "artifact-database/geo-backend/backend-configuration";
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
56
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
57 public static final String XPATH_GEOBACKEND_QUERYCONFIGURATION =
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
58 "artifact-database/geo-backend/query-configuration";
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
59
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
60 private final static String CACHECONFIGNODEPATH =
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
61 "/artifact-database/ehcache/configuration";
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
62
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
63 private final static String CHARTCONFIGNODEPATH =
442
52e031261eaa Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 438
diff changeset
64 "/artifact-database/gnv/charttemplate/configuration";
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
65
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
66 public final static String PALETTES_PATH =
442
52e031261eaa Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 438
diff changeset
67 "/artifact-database/gnv/palettes";
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
68
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
69 public final static String PALETTE_ITEMS =
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
70 "palette";
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
71
443
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
72 public final static String HORIZONTAL_CROSS_SECTION_PROFILE_SAMPLES =
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
73 "/artifact-database/gnv/horizontal-cross-section-profile/samples/@number";
358
2f7a28f211c7 Fetch ChartTheme from CallContext instead of creating it each time before creating a chart.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
74
444
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
75 public final static String VERTICAL_CROSS_SECTION_SAMPLES =
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
76 "/artifact-database/gnv/vertical-cross-section/samples";
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
77
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
78 public final static String VERTICAL_CROSS_SECTION_FILTERS =
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
79 "/artifact-database/gnv/vertical-cross-section/filters/filter";
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
80
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
81 /**
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
82 * Constructor
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
83 */
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
84 public GNVArtifactContextFactory() {
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
85 super();
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
86 log.debug("GNVArtifactContextFactory.Constructor");
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
87 }
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
88
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
89 /**
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
90 * @see de.intevation.artifacts.ArtifactContextFactory#createArtifactContext(org.w3c.dom.Document)
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
91 */
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
92 public Object createArtifactContext(Document config) {
358
2f7a28f211c7 Fetch ChartTheme from CallContext instead of creating it each time before creating a chart.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
93 GNVArtifactContext returnValue = null;
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
94 try {
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
95 log.debug("GNVArtifactContextFactory.createArtifactContext");
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
96 log.info("Initialisation of the Geo-BackendConnectionPool");
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
97 String backendConfigurationFile = Config.getStringXPath(config,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
98 XPATH_GEOBACKEND_CONFIGURATION);
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
99 backendConfigurationFile = Config.replaceConfigDir(
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
100 backendConfigurationFile);
203
226091ed3cbd Added relative locations for further required Configurationfiles . issue59
Tim Englich <tim.englich@intevation.de>
parents: 172
diff changeset
101
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
102 Properties properties = getProperties(backendConfigurationFile);
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
103 ConnectionPoolFactory cpf = ConnectionPoolFactory.getInstance();
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
104 cpf.initializeConnectionPool(properties);
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
105
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
106 log.info("Initialisation of the QueryContainer");
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
107 String queryConfigurationFile = Config.getStringXPath(config,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
108 XPATH_GEOBACKEND_QUERYCONFIGURATION);
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
109 queryConfigurationFile = Config.replaceConfigDir(
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
110 queryConfigurationFile);
203
226091ed3cbd Added relative locations for further required Configurationfiles . issue59
Tim Englich <tim.englich@intevation.de>
parents: 172
diff changeset
111
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
112 Properties queryProperties = getProperties(queryConfigurationFile);
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
113 QueryContainerFactory qcf = QueryContainerFactory.getInstance();
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
114 qcf.initializeQueryContainer(queryProperties);
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
115
99
bb45c5097cb6 ehcache Integration for storing the chartresultvalues
Tim Englich <tim.englich@intevation.de>
parents: 52
diff changeset
116 log.info("Initialisation of the Cache");
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
117 String cacheConfigurationFile = Config.getStringXPath(config,
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
118 CACHECONFIGNODEPATH);
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
119 cacheConfigurationFile = Config.replaceConfigDir(
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
120 cacheConfigurationFile);
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
121
99
bb45c5097cb6 ehcache Integration for storing the chartresultvalues
Tim Englich <tim.englich@intevation.de>
parents: 52
diff changeset
122 CacheFactory cf = CacheFactory.getInstance();
bb45c5097cb6 ehcache Integration for storing the chartresultvalues
Tim Englich <tim.englich@intevation.de>
parents: 52
diff changeset
123 cf.initializeCache(cacheConfigurationFile);
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
124
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
125 returnValue = new GNVArtifactContext(config);
358
2f7a28f211c7 Fetch ChartTheme from CallContext instead of creating it each time before creating a chart.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 203
diff changeset
126
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
127 configurePalettes(config, returnValue);
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
128
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
129 configureChartTemplate(config, returnValue);
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
130
443
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
131 configureHorizontalCrossSectionProfile(config, returnValue);
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
132
444
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
133 configureVerticalCrossSection(config, returnValue);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
134
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
135 } catch (FileNotFoundException e) {
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
136 log.error(e, e);
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
137 } catch (IOException e) {
171
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
138 log.error(e, e);
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
139 } catch (QueryContainerException e) {
7fb9441dd8af Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents: 99
diff changeset
140 log.error(e, e);
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
141 }
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
142 return returnValue;
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
143 }
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
144
444
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
145 protected void configureVerticalCrossSection(
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
146 Document config,
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
147 GNVArtifactContext context
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
148 ) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
149 log.info("configuration of vertical cross section");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
150 configureVerticalCrossSectionSamples(config, context);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
151 configureVerticalCrossSectionFilters(config, context);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
152 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
153
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
154 protected void configureVerticalCrossSectionFilters(
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
155 Document config,
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
156 GNVArtifactContext context
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
157 ) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
158 log.info("configuration of vertical cross section filters");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
159
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
160 NodeList filters = Config.getNodeSetXPath(
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
161 VERTICAL_CROSS_SECTION_FILTERS);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
162
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
163 ArrayList<Filter.Factory> filterFactories =
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
164 new ArrayList<Filter.Factory>();
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
165
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
166 if (filters == null) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
167 log.warn("no filters found");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
168 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
169 else {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
170 for (int i = 0, N = filters.getLength(); i < N; ++i) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
171 Element filterElement = (Element)filters.item(i);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
172 String factoryName = filterElement.getAttribute("factory");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
173 if ((factoryName = factoryName.trim()).length() > 0) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
174 try {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
175 Class clazz = Class.forName(factoryName);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
176 Filter.Factory filterFactory =
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
177 (Filter.Factory)clazz.newInstance();
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
178 filterFactories.add(filterFactory);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
179 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
180 catch (ClassNotFoundException cnfe) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
181 log.error("filter class not found", cnfe);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
182 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
183 catch (InstantiationException ie) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
184 log.error("cannot instantiate filter factory", ie);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
185 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
186 catch (IllegalAccessException iae) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
187 log.error("cannot access filter factory", iae);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
188 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
189 catch (ClassCastException cce) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
190 log.error("not a filter factory class", cce);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
191 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
192 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
193 else {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
194 log.error("No factory name given");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
195 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
196 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
197 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
198
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
199 log.info("number of filters: " + filterFactories.size());
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
200
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
201 context.put(
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
202 GNVArtifactContext.VERTICAL_CROSS_SECTION_FILTER_FACTORIES_KEY,
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
203 Collections.unmodifiableList(filterFactories));
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
204 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
205
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
206 protected void configureVerticalCrossSectionSamples(
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
207 Document config,
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
208 GNVArtifactContext context
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
209 ) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
210 log.info("configuration of vertical cross section samples");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
211
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
212 Element samples = (Element)Config.getNodeXPath(
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
213 VERTICAL_CROSS_SECTION_SAMPLES);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
214
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
215 Dimension sampleSize = new Dimension(
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
216 GNVArtifactContext.DEFAULT_VERTICAL_CROSS_SECTION_SAMPLES);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
217
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
218 if (samples == null) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
219 log.warn("no samples found");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
220 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
221 else {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
222 String widthString = samples.getAttribute("width");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
223 if ((widthString = widthString.trim()).length() > 0) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
224 try {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
225 sampleSize.width = Math.max(1, Integer.parseInt(widthString));
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
226 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
227 catch (NumberFormatException nfe) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
228 log.error("invalid value for width: '" + widthString + "'");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
229 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
230 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
231 String heightString = samples.getAttribute("height");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
232 if ((heightString = heightString.trim()).length() > 0) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
233 try {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
234 sampleSize.height = Math.max(1, Integer.parseInt(heightString));
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
235 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
236 catch (NumberFormatException nfe) {
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
237 log.error("invalid value for height: '" + heightString + "'");
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
238 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
239 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
240 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
241 log.info("samples (width x height): " +
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
242 sampleSize.width + " x " + sampleSize.height);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
243
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
244 context.put(
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
245 GNVArtifactContext.VERTICAL_CROSS_SECTION_SAMPLES_KEY,
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
246 sampleSize);
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
247
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
248 }
85f48e287fb3 Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 443
diff changeset
249
443
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
250 protected void configureHorizontalCrossSectionProfile(
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
251 Document config,
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
252 GNVArtifactContext context
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
253 )
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
254 {
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
255 log.info("configuration of horizontal cross section profile");
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
256
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
257 String numSamples = Config.getStringXPath(
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
258 config,
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
259 HORIZONTAL_CROSS_SECTION_PROFILE_SAMPLES);
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
260
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
261 Integer samples =
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
262 GNVArtifactContext.DEFAULT_HORIZONTAL_CROSS_SECTION_PROFILE_SAMPLES;
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
263
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
264 if (numSamples == null) {
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
265 log.warn("No number of samples found.");
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
266 }
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
267 else {
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
268 try {
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
269 samples = Integer.valueOf(numSamples);
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
270 }
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
271 catch (NumberFormatException nfe) {
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
272 log.warn("Invalid integer for number of samples");
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
273 }
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
274 }
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
275
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
276 log.info("# horizontal cross section profile samples: " + samples);
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
277
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
278 context.put(
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
279 GNVArtifactContext.HORIZONTAL_CROSS_SECTION_PROFILE_SAMPLES_KEY,
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
280 samples);
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
281 }
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
282
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
283 protected void configureChartTemplate(
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
284 Document config,
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
285 GNVArtifactContext context
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
286 ) {
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
287 log.info("Initialisation of chart template");
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
288 String chartConfigFile = Config.getStringXPath(
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
289 config, CHARTCONFIGNODEPATH
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
290 );
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
291
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
292 XMLChartTheme theme = new XMLChartTheme("XMLChartTheme");
443
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
293
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
294 if (chartConfigFile == null) {
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
295 log.warn("no configuration file for chart template found");
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
296 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
297 else {
443
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
298 chartConfigFile = Config.replaceConfigDir(chartConfigFile);
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
299 log.debug("Parse xml configuration of " + chartConfigFile);
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
300
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
301 Document tmpl = XMLUtils.parseDocument(new File(chartConfigFile));
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
302 if (tmpl != null) {
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
303 theme.applyXMLConfiguration(tmpl);
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
304 }
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
305 else {
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
306 log.error(
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
307 "Cannot load chart template from '" +
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
308 chartConfigFile + "'");
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
309 }
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
310 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
311
443
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
312 context.put(GNVArtifactContext.CHART_TEMPLATE_KEY, theme);
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
313 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
314
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
315 protected void configurePalettes(
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
316 Document config,
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
317 GNVArtifactContext context
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
318 ) {
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
319 log.info("configure palettes");
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
320
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
321 HashMap<Integer, PaletteManager> palettes = new HashMap();
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
322
442
52e031261eaa Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 438
diff changeset
323 Element node = (Element)Config.getNodeXPath(config, PALETTES_PATH);
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
324
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
325 if (node == null) {
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
326 log.error("No palettes found");
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
327 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
328 else {
442
52e031261eaa Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 438
diff changeset
329 NodeList pals = node.getElementsByTagName(PALETTE_ITEMS);
52e031261eaa Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 438
diff changeset
330 for (int i = 0, N = pals==null?0:pals.getLength(); i < N; ++i) {
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
331 Element pal = (Element)pals.item(i);
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
332 String name = pal.getAttribute("name");
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
333 String description = pal.getAttribute("description");
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
334 String filename = pal.getAttribute("file");
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
335 String parameterIds = pal.getAttribute("parameter-ids");
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
336
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
337 if (name == null || (name = name.trim()).length() == 0) {
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
338 log.error("Palette has no 'name' attribute.");
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
339 }
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
340 else if (filename == null
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
341 || (filename = filename.trim()).length() == 0) {
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
342 log.error("Palette '" + name + "' has no 'file' attribute.");
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
343 }
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
344 else if (parameterIds == null
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
345 || (parameterIds = parameterIds.trim()).length() == 0) {
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
346 log.error("no parameter ids given for '" + name + "'");
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
347 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
348 else {
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
349 ArrayList<Integer> ids = new ArrayList<Integer>();
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
350 for (String idString: parameterIds.split("[\t ,]+")) {
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
351 try {
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
352 ids.add(Integer.valueOf(idString));
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
353 }
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
354 catch (NumberFormatException nfe) {
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
355 log.error(
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
356 "parameter id '" + idString + "' is integer");
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
357 }
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
358 }
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
359 filename = Config.replaceConfigDir(filename);
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
360 Document document = XMLUtils.parseDocument(
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
361 new File(filename));
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
362 if (document == null) {
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
363 log.error("Cannot load palette file '" +
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
364 filename + "'");
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
365 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
366 else {
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
367 PaletteManager manager = new PaletteManager(
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
368 name,
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
369 description,
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
370 new Palette(document));
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
371 for (Integer id: ids) {
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
372 palettes.put(id, manager);
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
373 }
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
374 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
375 }
438
7399bb8f83ea Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 426
diff changeset
376 } // for all palettes
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
377 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
378
443
da21c256a0ba "horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 442
diff changeset
379 context.put(GNVArtifactContext.PALETTES_KEY, palettes);
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
380 }
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
381
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
382 /**
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
383 * @param filePath
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
384 * @return
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
385 * @throws FileNotFoundException
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
386 * @throws IOException
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
387 */
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
388 private Properties getProperties(String filePath)
426
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
389 throws FileNotFoundException, IOException
3a0c0ad113d9 Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 369
diff changeset
390 {
172
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
391 InputStream inputStream = null;
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
392 try {
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
393 inputStream = new FileInputStream(filePath);
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
394 Properties properties = new Properties();
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
395 properties.load(inputStream);
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
396 return properties;
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
397 }
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
398 finally {
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
399 if (inputStream != null) {
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
400 try { inputStream.close(); }
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
401 catch (IOException ioe) {}
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
402 }
b5e55f460f0b Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 171
diff changeset
403 }
52
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
404 }
4d6a82b96059 First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
405 }

http://dive4elements.wald.intevation.org