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) {

http://dive4elements.wald.intevation.org