diff flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledAreaSeriesCollection.java @ 3889:940cd2ef149f

Area transparency fix flys-artifacts/trunk@5542 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Christian Lins <christian.lins@intevation.de>
date Thu, 20 Sep 2012 20:35:44 +0000
parents cd5eb8f5f6f1
children e8a4d2fd25cc
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledAreaSeriesCollection.java	Thu Sep 20 09:35:31 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/jfree/StyledAreaSeriesCollection.java	Thu Sep 20 20:35:44 2012 +0000
@@ -4,7 +4,6 @@
 import java.awt.Color;
 import java.awt.Stroke;
 
-import org.apache.log4j.Logger;
 import org.jfree.data.xy.XYSeriesCollection;
 import org.w3c.dom.Document;
 
@@ -20,6 +19,8 @@
  * dataset.
  */
 public class StyledAreaSeriesCollection extends XYSeriesCollection {
+    private static final long serialVersionUID = 5274940965666948237L;
+
     /** Mode, how to draw/which areas to fill. */
     public enum FILL_MODE {UNDER, ABOVE, BETWEEN};
 
@@ -29,10 +30,6 @@
     /** The theme-document with attributes about actual visual representation. */
     protected Document theme;
 
-    /** Own logger. */
-    private static final Logger logger =
-        Logger.getLogger(StyledAreaSeriesCollection.class);
-
 
     /**
      * @param theme the theme-document.
@@ -85,17 +82,19 @@
     }
 
 
-    /**
-     * Blindly (for now) apply the positivepaint of renderer.
-     */
     protected void applyFillColor(StableXYDifferenceRenderer renderer) {
-        // Get color.
-        Color paint = ThemeUtil.parseFillColorField(theme);
-        // Get half-transparency flag.
-        if (ThemeUtil.parseTransparency(theme)) {
-            paint = new Color(paint.getRed(), paint.getGreen(), paint.getBlue(),
-                128);
+        Color paint = ThemeUtil.parseColor(
+                ThemeUtil.getBackgroundColorString(theme));
+
+        int transparency = ThemeUtil.parseTransparency(theme);
+        if (transparency > 0) {
+            paint = new Color(
+                        paint.getRed(),
+                        paint.getGreen(),
+                        paint.getBlue(),
+                        (int)((100 - transparency) * 2.55f));
         }
+
         if (paint != null && this.getMode() == FILL_MODE.ABOVE) {
             renderer.setPositivePaint(paint);
             renderer.setNegativePaint(new Color(0,0,0,0));
@@ -105,15 +104,14 @@
             renderer.setPositivePaint(new Color(0,0,0,0));
         }
         else {
-            if (paint == null) paint = new Color(177, 117, 102);
+            if (paint == null)
+                paint = new Color(177, 117, 102);
             renderer.setPositivePaint(paint);
             renderer.setNegativePaint(paint);
         }
     }
 
-    /**
-     * Blindly (for now) apply the postiviepaint of renderer.
-     */
+
     protected void applyShowShape(StableXYDifferenceRenderer renderer) {
         boolean show = ThemeUtil.parseShowBorder(theme);
         renderer.setDrawOutline(show);

http://dive4elements.wald.intevation.org