Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/jfree/StyledDomainMarker.java @ 8748:36d7bda0b47a
(issue1788) Fix area split if there are no NaN's in the data
The split algorithmn splits in a way that it always creates
at least two datasets. One before the NaN, one after the NaN.
This is broken in case the dataset does not contain any NaN
value as it resulted in two identical datasets. This changed
the display and resulted in a broken area calculation.
I've also added some commented out debug code that was helpful
tracking down this problem.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 08 Jun 2015 16:53:54 +0200 |
parents | 819481cc9195 |
children |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.jfree; import java.awt.Color; import org.jfree.chart.plot.IntervalMarker; import org.dive4elements.river.themes.ThemeDocument; /** * Marker that represents a highlighted interval. * * @author <a href="mailto:christian.lins@intevation.de">Christian Lins</a> */ public class StyledDomainMarker extends IntervalMarker { private static final long serialVersionUID = -4369417661339512342L; private final Color backgroundColor, backgroundColor2; public StyledDomainMarker(double start, double end, ThemeDocument theme) { super(start, end); backgroundColor = theme.parseAreaBackgroundColor(); backgroundColor2 = new Color( 255 - backgroundColor.getRed(), 255 - backgroundColor.getGreen(), 255 - backgroundColor.getBlue()); useSecondColor(false); int alpha = 100 - theme.parseAreaTransparency(50); setAlpha(alpha / 100.0f); } /** * To properly differentiate several styled domain markers side by side, * we can use this switch to toggle between two colors. * @param secondColor */ public void useSecondColor(boolean secondColor) { if(!secondColor) { if(backgroundColor != null) setPaint(backgroundColor); } else { if(backgroundColor2 != null) setPaint(backgroundColor2); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :