Mercurial > dive4elements > river
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 : |