Mercurial > dive4elements > gnv-client
annotate gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java @ 463:07672838fa5f
Make ground interpolation for vertical cross section configurable.
gnv-artifacts/trunk@522 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sat, 09 Jan 2010 16:58:53 +0000 |
parents | 85f48e287fb3 |
children | 7ba4c7222265 |
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 |
463
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
81 public final static String VERTICAL_CROSS_SECTION_GROUND_INTERPOLATION = |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
82 "/artifact-database/gnv/vertical-cross-section/ground/@interpolation"; |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
83 |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
84 /** |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
85 * Constructor |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
86 */ |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
87 public GNVArtifactContextFactory() { |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
88 super(); |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
89 log.debug("GNVArtifactContextFactory.Constructor"); |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
90 } |
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 /** |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
93 * @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
|
94 */ |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
95 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
|
96 GNVArtifactContext returnValue = null; |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
97 try { |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
98 log.debug("GNVArtifactContextFactory.createArtifactContext"); |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
99 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
|
100 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
|
101 XPATH_GEOBACKEND_CONFIGURATION); |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
102 backendConfigurationFile = Config.replaceConfigDir( |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
103 backendConfigurationFile); |
203
226091ed3cbd
Added relative locations for further required Configurationfiles . issue59
Tim Englich <tim.englich@intevation.de>
parents:
172
diff
changeset
|
104 |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
105 Properties properties = getProperties(backendConfigurationFile); |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
106 ConnectionPoolFactory cpf = ConnectionPoolFactory.getInstance(); |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
107 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
|
108 |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
109 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
|
110 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
|
111 XPATH_GEOBACKEND_QUERYCONFIGURATION); |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
112 queryConfigurationFile = Config.replaceConfigDir( |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
113 queryConfigurationFile); |
203
226091ed3cbd
Added relative locations for further required Configurationfiles . issue59
Tim Englich <tim.englich@intevation.de>
parents:
172
diff
changeset
|
114 |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
115 Properties queryProperties = getProperties(queryConfigurationFile); |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
116 QueryContainerFactory qcf = QueryContainerFactory.getInstance(); |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
117 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
|
118 |
99
bb45c5097cb6
ehcache Integration for storing the chartresultvalues
Tim Englich <tim.englich@intevation.de>
parents:
52
diff
changeset
|
119 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
|
120 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
|
121 CACHECONFIGNODEPATH); |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
122 cacheConfigurationFile = Config.replaceConfigDir( |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
123 cacheConfigurationFile); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
124 |
99
bb45c5097cb6
ehcache Integration for storing the chartresultvalues
Tim Englich <tim.englich@intevation.de>
parents:
52
diff
changeset
|
125 CacheFactory cf = CacheFactory.getInstance(); |
bb45c5097cb6
ehcache Integration for storing the chartresultvalues
Tim Englich <tim.englich@intevation.de>
parents:
52
diff
changeset
|
126 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
|
127 |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
128 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
|
129 |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
130 configurePalettes(config, returnValue); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
131 |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
132 configureChartTemplate(config, returnValue); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
133 |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
134 configureHorizontalCrossSectionProfile(config, returnValue); |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
135 |
444
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
136 configureVerticalCrossSection(config, returnValue); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
137 |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
138 } 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
|
139 log.error(e, e); |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
140 } 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
|
141 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
|
142 } catch (QueryContainerException e) { |
7fb9441dd8af
Format Code to max 80 Chars per Row and Cleanup
Tim Englich <tim.englich@intevation.de>
parents:
99
diff
changeset
|
143 log.error(e, e); |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
144 } |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
145 return returnValue; |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
146 } |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
147 |
444
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
148 protected void configureVerticalCrossSection( |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
149 Document config, |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
150 GNVArtifactContext context |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
151 ) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
152 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
|
153 configureVerticalCrossSectionSamples(config, context); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
154 configureVerticalCrossSectionFilters(config, context); |
463
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
155 configureVerticalCrossSectionGroundInterpolation(config, context); |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
156 } |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
157 |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
158 protected void configureVerticalCrossSectionGroundInterpolation( |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
159 Document config, |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
160 GNVArtifactContext context |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
161 ) { |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
162 log.info("configuration of vertical cross section ground interpolation"); |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
163 String interpolation = Config.getStringXPath( |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
164 config, |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
165 VERTICAL_CROSS_SECTION_GROUND_INTERPOLATION); |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
166 |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
167 if (interpolation == null |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
168 || (interpolation = interpolation.trim()).length() == 0) { |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
169 interpolation = GNVArtifactContext |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
170 .DEFAULT_VERTICAL_CROSS_SECTION_GROUND_INTERPOLATION; |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
171 } |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
172 |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
173 log.info("ground interpolation: " + interpolation); |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
174 |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
175 context.put( |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
176 GNVArtifactContext |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
177 .VERTICAL_CROSS_SECTION_GROUND_INTERPOLATION_KEY, |
07672838fa5f
Make ground interpolation for vertical cross section configurable.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
444
diff
changeset
|
178 interpolation); |
444
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 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
181 protected void configureVerticalCrossSectionFilters( |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
182 Document config, |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
183 GNVArtifactContext context |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
184 ) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
185 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
|
186 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
187 NodeList filters = Config.getNodeSetXPath( |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
188 VERTICAL_CROSS_SECTION_FILTERS); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
189 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
190 ArrayList<Filter.Factory> filterFactories = |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
191 new ArrayList<Filter.Factory>(); |
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 if (filters == null) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
194 log.warn("no filters found"); |
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 else { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
197 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
|
198 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
|
199 String factoryName = filterElement.getAttribute("factory"); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
200 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
|
201 try { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
202 Class clazz = Class.forName(factoryName); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
203 Filter.Factory filterFactory = |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
204 (Filter.Factory)clazz.newInstance(); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
205 filterFactories.add(filterFactory); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
206 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
207 catch (ClassNotFoundException cnfe) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
208 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
|
209 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
210 catch (InstantiationException ie) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
211 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
|
212 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
213 catch (IllegalAccessException iae) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
214 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
|
215 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
216 catch (ClassCastException cce) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
217 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
|
218 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
219 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
220 else { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
221 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
|
222 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
223 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
224 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
225 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
226 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
|
227 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
228 context.put( |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
229 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
|
230 Collections.unmodifiableList(filterFactories)); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
231 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
232 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
233 protected void configureVerticalCrossSectionSamples( |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
234 Document config, |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
235 GNVArtifactContext context |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
236 ) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
237 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
|
238 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
239 Element samples = (Element)Config.getNodeXPath( |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
240 VERTICAL_CROSS_SECTION_SAMPLES); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
241 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
242 Dimension sampleSize = new Dimension( |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
243 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
|
244 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
245 if (samples == null) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
246 log.warn("no samples found"); |
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 else { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
249 String widthString = samples.getAttribute("width"); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
250 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
|
251 try { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
252 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
|
253 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
254 catch (NumberFormatException nfe) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
255 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
|
256 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
257 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
258 String heightString = samples.getAttribute("height"); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
259 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
|
260 try { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
261 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
|
262 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
263 catch (NumberFormatException nfe) { |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
264 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
|
265 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
266 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
267 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
268 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
|
269 sampleSize.width + " x " + sampleSize.height); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
270 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
271 context.put( |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
272 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
|
273 sampleSize); |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
274 |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
275 } |
85f48e287fb3
Added configuration for vertical cross sections ("Profilschnitte")
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
443
diff
changeset
|
276 |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
277 protected void configureHorizontalCrossSectionProfile( |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
278 Document config, |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
279 GNVArtifactContext context |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
280 ) |
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 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
|
283 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
284 String numSamples = Config.getStringXPath( |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
285 config, |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
286 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
|
287 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
288 Integer samples = |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
289 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
|
290 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
291 if (numSamples == null) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
292 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
|
293 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
294 else { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
295 try { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
296 samples = Integer.valueOf(numSamples); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
297 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
298 catch (NumberFormatException nfe) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
299 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
|
300 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
301 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
302 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
303 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
|
304 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
305 context.put( |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
306 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
|
307 samples); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
308 } |
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 protected void configureChartTemplate( |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
311 Document config, |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
312 GNVArtifactContext context |
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 log.info("Initialisation of chart template"); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
315 String chartConfigFile = Config.getStringXPath( |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
316 config, CHARTCONFIGNODEPATH |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
317 ); |
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 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
|
320 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
321 if (chartConfigFile == null) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
322 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
|
323 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
324 else { |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
325 chartConfigFile = Config.replaceConfigDir(chartConfigFile); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
326 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
|
327 |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
328 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
|
329 if (tmpl != null) { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
330 theme.applyXMLConfiguration(tmpl); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
331 } |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
332 else { |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
333 log.error( |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
334 "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
|
335 chartConfigFile + "'"); |
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
336 } |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
337 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
338 |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
339 context.put(GNVArtifactContext.CHART_TEMPLATE_KEY, theme); |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
340 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
341 |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
342 protected void configurePalettes( |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
343 Document config, |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
344 GNVArtifactContext context |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
345 ) { |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
346 log.info("configure palettes"); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
347 |
438
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
348 HashMap<Integer, PaletteManager> palettes = new HashMap(); |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
349 |
442
52e031261eaa
Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
438
diff
changeset
|
350 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
|
351 |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
352 if (node == null) { |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
353 log.error("No palettes found"); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
354 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
355 else { |
442
52e031261eaa
Create a new 'gnv' section in config file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
438
diff
changeset
|
356 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
|
357 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
|
358 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
|
359 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
|
360 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
|
361 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
|
362 String parameterIds = pal.getAttribute("parameter-ids"); |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
363 |
438
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
364 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
|
365 log.error("Palette has no 'name' attribute."); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
366 } |
438
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
367 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
|
368 || (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
|
369 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
|
370 } |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
371 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
|
372 || (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
|
373 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
|
374 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
375 else { |
438
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
376 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
|
377 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
|
378 try { |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
379 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
|
380 } |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
381 catch (NumberFormatException nfe) { |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
382 log.error( |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
383 "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
|
384 } |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
385 } |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
386 filename = Config.replaceConfigDir(filename); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
387 Document document = XMLUtils.parseDocument( |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
388 new File(filename)); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
389 if (document == null) { |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
390 log.error("Cannot load palette file '" + |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
391 filename + "'"); |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
392 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
393 else { |
438
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
394 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
|
395 name, |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
396 description, |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
397 new Palette(document)); |
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
398 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
|
399 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
|
400 } |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
401 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
402 } |
438
7399bb8f83ea
Added manager to handle several levels of palette subdivsions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
426
diff
changeset
|
403 } // for all palettes |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
404 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
405 |
443
da21c256a0ba
"horizontale Schnittprofile" are now configured via conf.xml
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
442
diff
changeset
|
406 context.put(GNVArtifactContext.PALETTES_KEY, palettes); |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
407 } |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
408 |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
409 /** |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
410 * @param filePath |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
411 * @return |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
412 * @throws FileNotFoundException |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
413 * @throws IOException |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
414 */ |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
415 private Properties getProperties(String filePath) |
426
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
416 throws FileNotFoundException, IOException |
3a0c0ad113d9
Load palettes from configuration.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
369
diff
changeset
|
417 { |
172
b5e55f460f0b
Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
418 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
|
419 try { |
b5e55f460f0b
Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
420 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
|
421 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
|
422 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
|
423 return properties; |
b5e55f460f0b
Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
424 } |
b5e55f460f0b
Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
425 finally { |
b5e55f460f0b
Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
426 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
|
427 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
|
428 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
|
429 } |
b5e55f460f0b
Closed small file descriptor leak in loading SQL properties file.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
171
diff
changeset
|
430 } |
52
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
431 } |
4d6a82b96059
First Implementation of the GNV-Artifacts
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
432 } |