Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/jfree/EnhancedLineAndShapeRenderer.java @ 2647:4b7a28e81643
Cosmetics, doc.
flys-artifacts/trunk@4302 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 26 Apr 2012 08:11:48 +0000 |
parents | 0a84313efe60 |
children | 8aaa7f4ce06a |
comparison
equal
deleted
inserted
replaced
2646:c11da3540b70 | 2647:4b7a28e81643 |
---|---|
20 import org.jfree.ui.RectangleEdge; | 20 import org.jfree.ui.RectangleEdge; |
21 import org.jfree.util.BooleanList; | 21 import org.jfree.util.BooleanList; |
22 import org.jfree.util.ShapeUtilities; | 22 import org.jfree.util.ShapeUtilities; |
23 | 23 |
24 /** | 24 /** |
25 * Renderer with additional functionality. | 25 * Renderer with additional the additional functionality of renderering minima |
26 * and/or maxima of dataseries contained in datasets. | |
26 */ | 27 */ |
27 public class EnhancedLineAndShapeRenderer extends XYLineAndShapeRenderer { | 28 public class EnhancedLineAndShapeRenderer extends XYLineAndShapeRenderer { |
28 | 29 |
30 /** Own logger. */ | |
29 private static final Logger logger = | 31 private static final Logger logger = |
30 Logger.getLogger(EnhancedLineAndShapeRenderer.class); | 32 Logger.getLogger(EnhancedLineAndShapeRenderer.class); |
31 | 33 |
32 protected BooleanList isMinimumShapeVisible; | 34 protected BooleanList isMinimumShapeVisible; |
33 protected BooleanList isMaximumShapeVisible; | 35 protected BooleanList isMaximumShapeVisible; |
36 protected BooleanList showSeriesMinimumX;; | |
34 | 37 |
35 protected Map<Integer, Double> seriesMinimum; | 38 protected Map<Integer, Double> seriesMinimum; |
36 protected Map<Integer, Double> seriesMinimumX; | 39 protected Map<Integer, Double> seriesMinimumX; |
37 protected Map<Integer, Double> seriesMaximum; | 40 protected Map<Integer, Double> seriesMaximum; |
38 | 41 |
232 (y1 < 0.0)); | 235 (y1 < 0.0)); |
233 } | 236 } |
234 | 237 |
235 boolean doWaterlevelLabel = false; | 238 boolean doWaterlevelLabel = false; |
236 if (isMinimumX (dataset, series, item)) { | 239 if (isMinimumX (dataset, series, item)) { |
240 // TODO find name of dataset/series | |
237 String waterlevelLabel = "label"; | 241 String waterlevelLabel = "label"; |
238 // TODO Force water of some German rivers to flow direction mountains. | 242 // TODO Force water of some German rivers to flow direction mountains. |
239 g2.drawString("waterlevel label", (float)xx, (float)yy-3f); | 243 g2.drawString("waterlevel label", (float)xx, (float)yy-3f); |
240 } | 244 } |
241 | 245 |
278 | 282 |
279 return isMaximumShapeVisible.getBoolean(series); | 283 return isMaximumShapeVisible.getBoolean(series); |
280 } | 284 } |
281 | 285 |
282 | 286 |
287 /** | |
288 * True if the given item of given dataset has the smallest | |
289 * X value within this set. | |
290 */ | |
283 public boolean isMinimumX(XYDataset dataset, int series, int item) { | 291 public boolean isMinimumX(XYDataset dataset, int series, int item) { |
284 return dataset.getXValue(series, item) == getMinimumX(dataset, series); | 292 return dataset.getXValue(series, item) == getMinimumX(dataset, series); |
285 } | 293 } |
286 | 294 |
295 | |
296 /** | |
297 * Get Minimum X Value of a given series in a dataset. | |
298 * The value is stored for later use if queried the first time. | |
299 */ | |
287 public double getMinimumX(XYDataset dataset, int series) { | 300 public double getMinimumX(XYDataset dataset, int series) { |
288 Integer key = Integer.valueOf(series); | 301 Integer key = Integer.valueOf(series); |
289 Double old = seriesMinimumX.get(key); | 302 Double old = seriesMinimumX.get(key); |
290 | 303 |
291 if (old != null) { | 304 if (old != null) { |
307 seriesMinimumX.put(key, Double.valueOf(min)); | 320 seriesMinimumX.put(key, Double.valueOf(min)); |
308 | 321 |
309 return min; | 322 return min; |
310 } | 323 } |
311 | 324 |
325 | |
326 /** | |
327 * True if the given item of given dataset has the smallest | |
328 * Y value within this set. | |
329 */ | |
312 public boolean isMinimum(XYDataset dataset, int series, int item) { | 330 public boolean isMinimum(XYDataset dataset, int series, int item) { |
313 return dataset.getYValue(series, item) == getMinimum(dataset, series); | 331 return dataset.getYValue(series, item) == getMinimum(dataset, series); |
314 } | 332 } |
315 | 333 |
316 | 334 |
335 /** | |
336 * Get Minimum Y Value of a given series in a dataset. | |
337 * The value is stored for later use if queried the first time. | |
338 */ | |
317 public double getMinimum(XYDataset dataset, int series) { | 339 public double getMinimum(XYDataset dataset, int series) { |
318 Integer key = Integer.valueOf(series); | 340 Integer key = Integer.valueOf(series); |
319 Double old = seriesMinimum.get(key); | 341 Double old = seriesMinimum.get(key); |
320 | 342 |
321 if (old != null) { | 343 if (old != null) { |
338 | 360 |
339 return min; | 361 return min; |
340 } | 362 } |
341 | 363 |
342 | 364 |
365 /** | |
366 * True if the given item of given dataset has the biggest | |
367 * Y value within this set. | |
368 */ | |
343 public boolean isMaximum(XYDataset dataset, int series, int item) { | 369 public boolean isMaximum(XYDataset dataset, int series, int item) { |
344 return dataset.getYValue(series, item) == getMaximum(dataset, series); | 370 return dataset.getYValue(series, item) == getMaximum(dataset, series); |
345 } | 371 } |
346 | 372 |
347 | 373 |
348 // | 374 /** |
375 * Get maximum Y Value of a given series in a dataset. | |
376 * The value is stored for later use if queried the first time. | |
377 */ | |
349 public double getMaximum(XYDataset dataset, int series) { | 378 public double getMaximum(XYDataset dataset, int series) { |
350 Integer key = Integer.valueOf(series); | 379 Integer key = Integer.valueOf(series); |
351 Double old = seriesMaximum.get(key); | 380 Double old = seriesMaximum.get(key); |
352 | 381 |
353 if (old != null) { | 382 if (old != null) { |