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(

http://dive4elements.wald.intevation.org