Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/themes/ThemeAccess.java @ 3428:842b7b635701
Use a new state - specific for SQ relation - for the period input in the SQ relation.
flys-artifacts/trunk@5086 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 20 Jul 2012 10:22:38 +0000 |
parents | f062b5a90e26 |
children | 0b9b2a0c4e64 |
line wrap: on
line source
package de.intevation.flys.themes; import de.intevation.flys.jfree.StableXYDifferenceRenderer; import de.intevation.flys.utils.ThemeUtil; import java.awt.Color; import java.awt.Font; import org.jfree.chart.annotations.XYTextAnnotation; import org.w3c.dom.Document; /** Undocumented. */ public class ThemeAccess { protected Document theme; protected Integer lineWidth; protected Color lineColor; protected Color textColor; protected Font font; protected String textOrientation; protected Color textBackground; protected Boolean showTextBackground; protected Color pointColor; public ThemeAccess(Document theme) { this.theme = theme; } public int parseLineWidth() { if (lineWidth == null) { lineWidth = ThemeUtil.parseLineWidth(theme); } return lineWidth; } public Color parseLineColorField() { if (lineColor == null) { lineColor = ThemeUtil.parseLineColorField(theme); if (lineColor == null) { lineColor = Color.BLACK; } } return lineColor; } public Color parseTextColor() { if (textColor == null) { textColor = ThemeUtil.parseTextColor(theme); if (textColor == null) { textColor = Color.BLACK; } } return textColor; } public Font parseTextFont() { if (font == null) { font = ThemeUtil.parseTextFont(theme); if (font == null) { font = new Font("Arial", Font.BOLD, 10); } } return font; } public String parseTextOrientation() { if (textOrientation == null) { textOrientation = ThemeUtil.parseTextOrientation(theme); } return textOrientation; } public Color parseTextBackground() { if (textBackground == null) { textBackground = ThemeUtil.parseTextBackground(theme); if (textBackground == null) { textBackground = Color.WHITE; } } return textBackground; } public boolean parseShowTextBackground() { if (showTextBackground == null) { showTextBackground = ThemeUtil.parseShowTextBackground(theme); } return showTextBackground; } public Color parsePointColor() { if (pointColor == null) { pointColor = ThemeUtil.parsePointColor(theme); if (pointColor == null) { return parseLineColorField(); } } return pointColor; } public LineStyle parseLineStyle() { return new LineStyle(parseLineColorField(), Integer.valueOf(parseLineWidth())); } public static class PointStyle { // TODO tbd } public static class LineStyle { protected Color lineColor; protected int lineWidth; public LineStyle(Color color, int width) { this.lineColor = color; this.lineWidth = width; } public int getWidth() { return lineWidth; } public Color getColor() { return lineColor; } } public TextStyle parseTextStyle() { return new TextStyle( parseTextColor(), parseTextFont(), parseTextBackground(), parseShowTextBackground(), !parseTextOrientation().equals("horizontal")); } public static class TextStyle { 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) { ta.setPaint(textColor); ta.setFont(font); if (this.showBg) { ta.setBackgroundPaint(bgColor); } if (this.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); } } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :