Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixDeltaWtGenerator.java @ 3254:9a4707ec7800
Add styles for W(t) chart domain markers
flys-artifacts/trunk@4888 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Fri, 06 Jul 2012 14:45:23 +0000 |
parents | aeeb9192e395 |
children | 5a7b4f890d53 |
comparison
equal
deleted
inserted
replaced
3253:209d50ee8e9f | 3254:9a4707ec7800 |
---|---|
9 import de.intevation.flys.artifacts.model.FacetTypes; | 9 import de.intevation.flys.artifacts.model.FacetTypes; |
10 import de.intevation.flys.artifacts.model.fixings.QWD; | 10 import de.intevation.flys.artifacts.model.fixings.QWD; |
11 import de.intevation.flys.exports.TimeseriesChartGenerator; | 11 import de.intevation.flys.exports.TimeseriesChartGenerator; |
12 import de.intevation.flys.jfree.CollisionFreeXYTextAnnotation; | 12 import de.intevation.flys.jfree.CollisionFreeXYTextAnnotation; |
13 import de.intevation.flys.jfree.FLYSAnnotation; | 13 import de.intevation.flys.jfree.FLYSAnnotation; |
14 import de.intevation.flys.jfree.StyledDomainMarker; | |
14 import de.intevation.flys.jfree.StyledTimeSeries; | 15 import de.intevation.flys.jfree.StyledTimeSeries; |
16 import de.intevation.flys.jfree.StyledValueMarker; | |
15 import de.intevation.flys.utils.FLYSUtils; | 17 import de.intevation.flys.utils.FLYSUtils; |
16 import de.intevation.flys.utils.ThemeUtil; | 18 import de.intevation.flys.utils.ThemeUtil; |
17 | 19 |
18 import java.awt.BasicStroke; | |
19 import java.awt.Color; | |
20 import java.io.OutputStream; | 20 import java.io.OutputStream; |
21 import java.util.ArrayList; | 21 import java.util.ArrayList; |
22 import java.util.HashMap; | 22 import java.util.HashMap; |
23 import java.util.List; | 23 import java.util.List; |
24 import java.util.Map; | 24 import java.util.Map; |
27 import javax.xml.xpath.XPathConstants; | 27 import javax.xml.xpath.XPathConstants; |
28 | 28 |
29 import org.apache.log4j.Logger; | 29 import org.apache.log4j.Logger; |
30 import org.jfree.chart.JFreeChart; | 30 import org.jfree.chart.JFreeChart; |
31 import org.jfree.chart.annotations.XYTextAnnotation; | 31 import org.jfree.chart.annotations.XYTextAnnotation; |
32 import org.jfree.chart.plot.IntervalMarker; | |
33 import org.jfree.chart.plot.ValueMarker; | |
34 import org.jfree.chart.title.TextTitle; | 32 import org.jfree.chart.title.TextTitle; |
35 import org.jfree.data.time.Day; | 33 import org.jfree.data.time.Day; |
36 import org.jfree.data.time.Month; | 34 import org.jfree.data.time.Month; |
37 import org.jfree.data.time.RegularTimePeriod; | 35 import org.jfree.data.time.RegularTimePeriod; |
38 import org.jfree.data.time.TimeSeries; | 36 import org.jfree.data.time.TimeSeries; |
315 double x = tsc.getXValue(idxs[0], idxs[1]); | 313 double x = tsc.getXValue(idxs[0], idxs[1]); |
316 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( | 314 XYTextAnnotation anno = new CollisionFreeXYTextAnnotation( |
317 qwd.getQ() + " m\u00B3/s", | 315 qwd.getQ() + " m\u00B3/s", |
318 x, | 316 x, |
319 qwd.getDeltaW()); | 317 qwd.getDeltaW()); |
320 //anno.setRotationAngle(200f*Math.PI/180f); | |
321 //anno.setRotationAnchor(TextAnchor.CENTER_LEFT); | |
322 textAnnos.add(anno); | 318 textAnnos.add(anno); |
323 logger.debug("annotation: " + x + "/" + qwd.getDeltaW()); | 319 logger.debug("annotation: " + x + "/" + qwd.getDeltaW()); |
324 } | 320 } |
325 | 321 |
326 if(visible) { | 322 if(visible) { |
401 if (data == null || !visible) { | 397 if (data == null || !visible) { |
402 logger.debug("no standard deviation"); | 398 logger.debug("no standard deviation"); |
403 return; | 399 return; |
404 } | 400 } |
405 double[] value = (double[]) data; | 401 double[] value = (double[]) data; |
406 IntervalMarker lower = new IntervalMarker((value[0] * -1), 0); | 402 StyledDomainMarker lower = new StyledDomainMarker((value[0] * -1), 0, theme); |
407 lower.setAlpha(0.2f); | 403 StyledDomainMarker upper = new StyledDomainMarker(0, value[0], theme); |
408 lower.setPaint(Color.BLACK); | |
409 IntervalMarker upper = new IntervalMarker(0, value[0]); | |
410 upper.setAlpha(0.2f); | |
411 upper.setPaint(Color.BLACK); | |
412 | 404 |
413 valueMarker.add(lower); | 405 valueMarker.add(lower); |
414 valueMarker.add(upper); | 406 valueMarker.add(upper); |
415 } | 407 } |
416 | 408 |
430 } | 422 } |
431 for (int i = 0; i < ranges.length; i++) { | 423 for (int i = 0; i < ranges.length; i++) { |
432 logger.debug("creating domain marker"); | 424 logger.debug("creating domain marker"); |
433 RegularTimePeriod start = new Month(ranges[i].getFrom()); | 425 RegularTimePeriod start = new Month(ranges[i].getFrom()); |
434 RegularTimePeriod end = new Month(ranges[i].getTo()); | 426 RegularTimePeriod end = new Month(ranges[i].getTo()); |
435 IntervalMarker marker = | 427 StyledDomainMarker marker = |
436 new IntervalMarker(start.getMiddleMillisecond(), | 428 new StyledDomainMarker(start.getMiddleMillisecond(), |
437 end.getMiddleMillisecond()); | 429 end.getMiddleMillisecond(), theme); |
438 marker.setAlpha(0.3f); | 430 marker.useSecondColor(i % 2 == 0); |
439 if ((i % 2) == 0) { | |
440 marker.setPaint(Color.RED); | |
441 } | |
442 else { | |
443 marker.setPaint(Color.BLUE); | |
444 } | |
445 domainMarker.add(marker); | 431 domainMarker.add(marker); |
446 } | 432 } |
447 logger.debug("domainmarkers: " + domainMarker.size()); | 433 logger.debug("domainmarkers: " + domainMarker.size()); |
448 } | 434 } |
449 | 435 |
453 super.init(request, out, context); | 439 super.init(request, out, context); |
454 | 440 |
455 logger.debug("currentKm = " + new Double(getCurrentKmFromRequest())); | 441 logger.debug("currentKm = " + new Double(getCurrentKmFromRequest())); |
456 context.putContextValue("currentKm", new Double(getCurrentKmFromRequest())); | 442 context.putContextValue("currentKm", new Double(getCurrentKmFromRequest())); |
457 | 443 |
458 ValueMarker marker = new ValueMarker(0); | 444 StyledValueMarker marker = new StyledValueMarker(0, request); |
459 marker.setPaint(Color.black); | |
460 marker.setStroke(new BasicStroke(2)); | |
461 valueMarker.add(marker); | 445 valueMarker.add(marker); |
462 } | 446 } |
463 | 447 |
464 public double getCurrentKmFromRequest() { | 448 public double getCurrentKmFromRequest() { |
465 Element km = (Element)XMLUtils.xpath( | 449 Element km = (Element)XMLUtils.xpath( |