Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/jfree/StickyAxisAnnotation.java @ 2412:451b25878105
Partial fix flys/issue500 (text bg of some annotations).
flys-artifacts/trunk@4042 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Mon, 13 Feb 2012 15:31:17 +0000 |
parents | 105097966111 |
children | 7dc4681a2bed |
line wrap: on
line source
package de.intevation.flys.jfree; import org.apache.log4j.Logger; /** * Custom Annotations class that is drawn only if no collisions with other * already drawn CustomAnnotations in current plot are found. A mark on * the axis is shown in all cases, though. * Draws a given text and a line to it from either axis. */ public class StickyAxisAnnotation { /** Logger for this class. */ private static Logger logger = Logger.getLogger(StickyAxisAnnotation.class); /** Simplified view on axes. */ public static enum SimpleAxis { X_AXIS, /** Usually "horizontal". */ Y_AXIS /** Usually "vertical". */ } /** The "symbolic" integer representing which axis to stick to. */ protected int axisSymbol; /** Which axis to stick to. */ protected SimpleAxis stickyAxis = SimpleAxis.X_AXIS; /** The 1-dimensional position of this annotation. */ protected float pos; String text; /** * Constructor with implicit sticky x-axis. * @param text the text to display. * @param pos the position at which to draw the text and mark. */ public StickyAxisAnnotation(String text, float pos) { this(text, pos, SimpleAxis.X_AXIS); } /** * Constructor with given explicit axis. * @param text the text to display. * @param pos the position at which to draw the text and mark. * @param stickyAxis the axis at which to stick (and to which 'pos' is * relative). * @param lineTo upto where to draw a line (NaN for none). */ public StickyAxisAnnotation(String text, float pos, SimpleAxis stickAxis ) { this(text, pos, stickAxis, 0); } public StickyAxisAnnotation(String text, float pos, SimpleAxis stickAxis, int axisSymbol ) { setStickyAxis(stickAxis); this.text = text; this.pos = pos; this.axisSymbol = axisSymbol; } /** * Sets the "sticky axis" (whether to draw annotations at the * X- or the Y-Axis. * * @param stickyAxis axis to stick to. */ public void setStickyAxis(SimpleAxis stickyAxis) { this.stickyAxis = stickyAxis; } public float getPos() { return this.pos; } public SimpleAxis getStickyAxis() { return this.stickyAxis; } public boolean atX() { return this.getStickyAxis() == SimpleAxis.X_AXIS; } public String getText() { return this.text; } public int getAxisSymbol() { return this.axisSymbol; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :