comparison artifacts/src/main/java/org/dive4elements/river/exports/DiagramGenerator.java @ 8892:87a242425467

Introduced ChartExtender that allows to tweak the charts for very specific use cases.
author gernotbelger
date Thu, 15 Feb 2018 13:46:35 +0100
parents f87f435df856
children 3ac9cb0029b2
comparison
equal deleted inserted replaced
8891:f431aec10d2c 8892:87a242425467
12 import java.awt.Font; 12 import java.awt.Font;
13 13
14 import java.text.NumberFormat; 14 import java.text.NumberFormat;
15 15
16 import java.util.ArrayList; 16 import java.util.ArrayList;
17 import java.util.Collection;
17 import java.util.HashMap; 18 import java.util.HashMap;
18 import java.util.HashSet; 19 import java.util.HashSet;
19 import java.util.LinkedHashSet; 20 import java.util.LinkedHashSet;
20 import java.util.List; 21 import java.util.List;
21 import java.util.Map; 22 import java.util.Map;
236 // Add a logo (maybe). 237 // Add a logo (maybe).
237 addLogo(plot); 238 addLogo(plot);
238 239
239 aggregateLegendEntries(plot); 240 aggregateLegendEntries(plot);
240 241
242 /* allow extenders to do some work */
243 final Collection<ChartExtender> extenders = this.diagramAttributes.getExtenders();
244 for (final ChartExtender extender : extenders) {
245 extender.afterGenerateChart(this, plot);
246 }
247
241 return chart; 248 return chart;
242 } 249 }
243 250
244 public String getOutName() { 251 public String getOutName() {
245 return outName; 252 return outName;
388 protected NumberAxis createXAxis(String label) { 395 protected NumberAxis createXAxis(String label) {
389 boolean logarithmic = (Boolean)diagramAttributes.getDomainAxis(). 396 boolean logarithmic = (Boolean)diagramAttributes.getDomainAxis().
390 isLog().evaluate((D4EArtifact)getMaster(), context); 397 isLog().evaluate((D4EArtifact)getMaster(), context);
391 398
392 if (logarithmic) { 399 if (logarithmic) {
393 return new LogarithmicAxis(label); 400 final LogarithmicAxis axis = new LogarithmicAxis(label);
401 // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied.
402 axis.setLowerMargin(0);
403 axis.setUpperMargin(0);
404 return axis;
394 } 405 }
395 final NumberAxis axis = new NumberAxis(label); 406 final NumberAxis axis = new NumberAxis(label);
407 // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied.
408 axis.setLowerMargin(0);
409 axis.setUpperMargin(0);
396 // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied. 410 // REMARK: we overwrite the default values to 0.0, because in earlier version margins were never applied.
397 axis.setLowerMargin(0); 411 axis.setLowerMargin(0);
398 axis.setUpperMargin(0); 412 axis.setUpperMargin(0);
399 return axis; 413 return axis;
400 } 414 }
737 } 751 }
738 752
739 log.debug("Prepare zoom settings for y axis at index: " + i); 753 log.debug("Prepare zoom settings for y axis at index: " + i);
740 zoom(plot, yaxis, getYBounds(Integer.valueOf(i)), yrange); 754 zoom(plot, yaxis, getYBounds(Integer.valueOf(i)), yrange);
741 } 755 }
742 } 756
743 757 /* allow chart extenders to tweak zoom behaviour */
758 final Collection<ChartExtender> extenders = this.diagramAttributes.getExtenders();
759 for (final ChartExtender extender : extenders) {
760 extender.afterAutoZoom(this);
761 }
762 }
744 763
745 protected Range getDomainAxisRange() { 764 protected Range getDomainAxisRange() {
746 String[] ranges = getDomainAxisRangeFromRequest(); 765 String[] ranges = getDomainAxisRangeFromRequest();
747 766
748 if (ranges == null || ranges.length < 2) { 767 if (ranges == null || ranges.length < 2) {

http://dive4elements.wald.intevation.org