[Dive4elements-commits] [PATCH 1 of 9] issue1370: Initial commit for new SyncNumberAxis
Wald Commits
scm-commit at wald.intevation.org
Wed Jun 26 12:32:08 CEST 2013
# HG changeset patch
# User Felix Wolfsteller <felix.wolfsteller at intevation.de>
# Date 1372242322 -7200
# Node ID aa2a0824954dab3b1bcdd529c413abb695314a8e
# Parent ab173f37fb40f75adc2089915e4ee56caa2c670b
issue1370: Initial commit for new SyncNumberAxis.
diff -r ab173f37fb40 -r aa2a0824954d artifacts/src/main/java/org/dive4elements/river/exports/SyncNumberAxis.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/SyncNumberAxis.java Wed Jun 26 12:25:22 2013 +0200
@@ -0,0 +1,131 @@
+/* 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.exports;
+
+import org.jfree.chart.axis.NumberAxis;
+import org.jfree.chart.event.AxisChangeEvent;
+import org.jfree.chart.event.AxisChangeListener;
+import org.jfree.data.Range;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Axis which is to be registered with other axis and tries
+ * to clone its range. The cloned range is transformed.
+ */
+public class SyncNumberAxis extends IdentifiableNumberAxis
+ implements AxisChangeListener
+{
+ /** The logger used in this generator. */
+ private static Logger logger =
+ Logger.getLogger(SyncNumberAxis.class);
+
+ /** The other axis to clone range from. */
+ protected NumberAxis proxyAxis;
+
+ /** Value to translate range by. */
+ protected double shift;
+
+
+ protected SyncNumberAxis(String key, String label, NumberAxis n) {
+ super(key, label);
+ this.proxyAxis = n;
+ }
+
+
+ /** Range of other axis changed, adjust own range. */
+ @Override
+ public void axisChanged(AxisChangeEvent event) {
+ logger.debug("SyncNumberAxis: axischange event");
+ this.setRange(
+ transRange(((NumberAxis)event.getAxis()).getRange()));
+ }
+
+ /** Set value by which to translate the range. */
+ protected void setShift(double shift) {
+ this.shift = shift;
+ }
+
+
+ /** Set other axis to relate to, register listener. */
+ public void setProxyAxis(NumberAxis ax) {
+ proxyAxis = ax;
+ proxyAxis.addChangeListener(this);
+ }
+
+ /** Translate range by shift, scale by 100. */
+ protected Range transRange(Range r) {
+ return new Range(100d*(r.getLowerBound()+shift),
+ 100d*(r.getUpperBound()+shift));
+ }
+
+ /** Set Range. */
+ @Override
+ public void setRange(Range r) {
+ super.setRange(r);
+ logger.debug("SyncAxis: setRange");
+ }
+
+
+ /*
+ @Override
+ public Range getRange() {
+ Range r = new Range(100d*(proxyAxis.getRange().getLowerBound()+shift),
+ 100d*(proxyAxis.getRange().getUpperBound()+shift));
+ return r;
+ }
+
+ @Override
+ public void setLowerBound(double max) {
+ }
+
+ @Override
+ public void setLowerMargin(double margin) {
+ }
+
+ @Override
+ public void setUpperBound(double max) {
+ }
+
+ @Override
+ public void setUpperMargin(double margin) {
+ }
+
+ @Override
+ public void setRange(double a, double b) {
+ }
+
+ @Override
+ public void setRange(Range range, boolean turnOffAutoRange, boolean notify){
+ }
+
+ @Override
+ public void setRangeAboutValue(double value, double length) {}
+
+ @Override
+ public void setRangeWithMargins(double lower, double upper) {}
+
+ @Override
+ public void setRangeWithMargins(Range range) {}
+
+ @Override
+ public void pan(double percent) {}
+
+ @Override
+ public void resizeRange(double p){}
+
+ @Override
+ public void resizeRange(double p, double a){}
+
+ @Override
+ public void resizeRange2(double p, double a){}
+
+ */
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
More information about the Dive4elements-commits
mailing list