diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java @ 521:1bf058f1a2d1

Generate seabed polygon to "Profilschnitte". gnv-artifacts/trunk@615 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 24 Jan 2010 20:24:03 +0000
parents ab29e4ff2fda
children b248531fa20b
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java	Sun Jan 24 12:10:50 2010 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/context/GNVArtifactContextFactory.java	Sun Jan 24 20:24:03 2010 +0000
@@ -3,6 +3,9 @@
  */
 package de.intevation.gnv.artifacts.context;
 
+import java.awt.Color;
+import java.awt.Paint;
+
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -90,6 +93,9 @@
     public final static String VERTICAL_CROSS_SECTION_GROUND_INTERPOLATION =
         "/artifact-database/gnv/vertical-cross-section/ground/@interpolation";
 
+    public final static String VERTICAL_CROSS_SECTION_GROUND_FILL_COLOR =
+        "/artifact-database/gnv/vertical-cross-section/ground/@fill-color";
+
     /**
      * Constructor
      */
@@ -164,6 +170,39 @@
         configureVerticalCrossSectionSamples(config, context);
         configureVerticalCrossSectionFilters(config, context);
         configureVerticalCrossSectionGroundInterpolation(config, context);
+        configureVerticalCrossSectionGroundFillColor(config, context);
+    }
+
+    protected void configureVerticalCrossSectionGroundFillColor(
+        Document           config,
+        GNVArtifactContext context
+    ) {
+        log.info("configuration of vertical cross section ground fill color");
+
+        String fillColor = Config.getStringXPath(
+            config,
+            VERTICAL_CROSS_SECTION_GROUND_FILL_COLOR);
+
+        Paint fill =
+            GNVArtifactContext.DEFAULT_VERTICAL_CROSS_SECTION_GROUND_FILL;
+
+        if (fillColor != null
+        && (fillColor = fillColor.trim()).length() != 0) {
+            try {
+                Color color = Color.decode(fillColor);
+                log.info("ground fill color: #" +
+                    Integer.toHexString(color.getRGB()));
+                fill = color;
+            }
+            catch (NumberFormatException nfe) {
+                log.error("'" + fillColor + "' is not a valid color");
+            }
+        }
+
+        context.put(
+            GNVArtifactContext
+                .VERTICAL_CROSS_SECTION_GROUND_FILL_KEY,
+            fill);
     }
 
     protected void configureVerticalCrossSectionGroundInterpolation(

http://dive4elements.wald.intevation.org