view artifacts/src/main/java/org/dive4elements/river/themes/TextStyle.java @ 6931:2c8e5bad8699

Fix NPE in case the artifact does not even have the master attribute Started happening with the new other.wqkms.w attribute condition and official lines in waterlevel calculations
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 27 Aug 2013 18:35:51 +0200
parents 1f1acbe5f243
children 0a5239a1e46e
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.themes;

import org.dive4elements.river.jfree.StableXYDifferenceRenderer;

import java.awt.Color;
import java.awt.Font;

import org.apache.log4j.Logger;
import org.jfree.chart.annotations.XYTextAnnotation;

public class TextStyle {
    @SuppressWarnings("unused")
    private static Logger log = Logger.getLogger(TextStyle.class);

    protected Color   textColor;
    protected Font    font;
    protected Color   bgColor;
    protected boolean showBg;
    protected boolean isVertical;

    public TextStyle(Color fgColor, Font font, Color bgColor,
        boolean showBg, boolean isVertical
    ) {
        this.textColor  = fgColor;
        this.font       = font;
        this.bgColor    = bgColor;
        this.showBg     = showBg;
        this.isVertical = isVertical;
    }

    public void apply(XYTextAnnotation ta) {
        if (textColor != null) {
            ta.setPaint(textColor);
        }
        if (font != null) {
            ta.setFont(font);
        }
        if (showBg) {
            ta.setBackgroundPaint(bgColor);
        }
        if (isVertical) {
            ta.setRotationAngle(270f*Math.PI/180f);
        }
        else {
            ta.setRotationAngle(0);
        }
    }

    public void apply(StableXYDifferenceRenderer renderer) {
        renderer.setLabelColor(textColor);
        renderer.setLabelFont(font);
        if (this.showBg) {
            renderer.setLabelBGColor(bgColor);
        }
    }
}

http://dive4elements.wald.intevation.org