comparison artifacts/src/main/java/org/dive4elements/river/exports/SyncNumberAxis.java @ 6421:aa2a0824954d

issue1370: Initial commit for new SyncNumberAxis.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 26 Jun 2013 12:25:22 +0200
parents
children 055443cfc1ad
comparison
equal deleted inserted replaced
6420:ab173f37fb40 6421:aa2a0824954d
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
2 * Software engineering by Intevation GmbH
3 *
4 * This file is Free Software under the GNU AGPL (>=v3)
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
6 * documentation coming with Dive4Elements River for details.
7 */
8
9 package org.dive4elements.river.exports;
10
11 import org.jfree.chart.axis.NumberAxis;
12 import org.jfree.chart.event.AxisChangeEvent;
13 import org.jfree.chart.event.AxisChangeListener;
14 import org.jfree.data.Range;
15
16 import org.apache.log4j.Logger;
17
18 /**
19 * Axis which is to be registered with other axis and tries
20 * to clone its range. The cloned range is transformed.
21 */
22 public class SyncNumberAxis extends IdentifiableNumberAxis
23 implements AxisChangeListener
24 {
25 /** The logger used in this generator. */
26 private static Logger logger =
27 Logger.getLogger(SyncNumberAxis.class);
28
29 /** The other axis to clone range from. */
30 protected NumberAxis proxyAxis;
31
32 /** Value to translate range by. */
33 protected double shift;
34
35
36 protected SyncNumberAxis(String key, String label, NumberAxis n) {
37 super(key, label);
38 this.proxyAxis = n;
39 }
40
41
42 /** Range of other axis changed, adjust own range. */
43 @Override
44 public void axisChanged(AxisChangeEvent event) {
45 logger.debug("SyncNumberAxis: axischange event");
46 this.setRange(
47 transRange(((NumberAxis)event.getAxis()).getRange()));
48 }
49
50 /** Set value by which to translate the range. */
51 protected void setShift(double shift) {
52 this.shift = shift;
53 }
54
55
56 /** Set other axis to relate to, register listener. */
57 public void setProxyAxis(NumberAxis ax) {
58 proxyAxis = ax;
59 proxyAxis.addChangeListener(this);
60 }
61
62 /** Translate range by shift, scale by 100. */
63 protected Range transRange(Range r) {
64 return new Range(100d*(r.getLowerBound()+shift),
65 100d*(r.getUpperBound()+shift));
66 }
67
68 /** Set Range. */
69 @Override
70 public void setRange(Range r) {
71 super.setRange(r);
72 logger.debug("SyncAxis: setRange");
73 }
74
75
76 /*
77 @Override
78 public Range getRange() {
79 Range r = new Range(100d*(proxyAxis.getRange().getLowerBound()+shift),
80 100d*(proxyAxis.getRange().getUpperBound()+shift));
81 return r;
82 }
83
84 @Override
85 public void setLowerBound(double max) {
86 }
87
88 @Override
89 public void setLowerMargin(double margin) {
90 }
91
92 @Override
93 public void setUpperBound(double max) {
94 }
95
96 @Override
97 public void setUpperMargin(double margin) {
98 }
99
100 @Override
101 public void setRange(double a, double b) {
102 }
103
104 @Override
105 public void setRange(Range range, boolean turnOffAutoRange, boolean notify){
106 }
107
108 @Override
109 public void setRangeAboutValue(double value, double length) {}
110
111 @Override
112 public void setRangeWithMargins(double lower, double upper) {}
113
114 @Override
115 public void setRangeWithMargins(Range range) {}
116
117 @Override
118 public void pan(double percent) {}
119
120 @Override
121 public void resizeRange(double p){}
122
123 @Override
124 public void resizeRange(double p, double a){}
125
126 @Override
127 public void resizeRange2(double p, double a){}
128
129 */
130 }
131 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org