Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/jfree/StableXYDifferenceRenderer.java @ 3785:a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk
........
r5501 | felix | 2012-09-18 11:49:45 +0200 (Di, 18 Sep 2012) | 1 line
fix issue865 - missing showarea theme prop.
........
r5502 | clins | 2012-09-18 12:18:30 +0200 (Di, 18 Sep 2012) | 1 line
Add robustness checks to prevent NPEs
........
r5504 | felix | 2012-09-18 14:03:15 +0200 (Di, 18 Sep 2012) | 1 line
i18n for area label (fix issue487).
........
r5505 | clins | 2012-09-18 16:19:59 +0200 (Di, 18 Sep 2012) | 1 line
Update themes to show point descriptions
........
r5506 | rrenkert | 2012-09-18 17:00:30 +0200 (Di, 18 Sep 2012) | 3 lines
Removed incorrect characteristic diameter.
........
r5507 | rrenkert | 2012-09-18 17:03:20 +0200 (Di, 18 Sep 2012) | 3 lines
Fixed some stupid bugs in bed quality data factory and calculation.
........
r5508 | teichmann | 2012-09-18 17:45:49 +0200 (Di, 18 Sep 2012) | 1 line
The usual whitespace and import cleanups.
........
r5511 | teichmann | 2012-09-18 18:24:51 +0200 (Di, 18 Sep 2012) | 1 line
Use generics aware Collections.emptyList().
........
r5512 | teichmann | 2012-09-18 20:36:52 +0200 (Di, 18 Sep 2012) | 1 line
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
........
r5513 | clins | 2012-09-18 23:38:19 +0200 (Di, 18 Sep 2012) | 1 line
A and B facets of fix analyis are now deactivated by default
........
r5516 | bricks | 2012-09-19 10:45:51 +0200 (Mi, 19 Sep 2012) | 2 lines
Add the gauge station to the GaugeOverviewInfoService xml response
........
r5517 | rrenkert | 2012-09-19 10:50:23 +0200 (Mi, 19 Sep 2012) | 3 lines
Added CSV export to bed quality calculation.
........
r5518 | bricks | 2012-09-19 11:04:04 +0200 (Mi, 19 Sep 2012) | 2 lines
Fix date in changelog entry
........
r5519 | teichmann | 2012-09-19 11:17:14 +0200 (Mi, 19 Sep 2012) | 1 line
Removed trailing whitespace.
........
flys-artifacts/tags/2.9.1@5531 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 19 Sep 2012 14:58:31 +0000 |
parents | 2a8919e0ed28 |
children | 22cd60315e08 |
comparison
equal
deleted
inserted
replaced
3784:9f9d5ada96ca | 3785:a5f65e8983be |
---|---|
121 | 121 |
122 import gnu.trove.TDoubleArrayList; | 122 import gnu.trove.TDoubleArrayList; |
123 | 123 |
124 import de.intevation.flys.artifacts.math.Linear; | 124 import de.intevation.flys.artifacts.math.Linear; |
125 | 125 |
126 import java.text.NumberFormat; | |
127 | |
126 import org.apache.log4j.Logger; | 128 import org.apache.log4j.Logger; |
127 | 129 |
128 /** | 130 /** |
129 * A renderer for an {@link XYPlot} that highlights the differences between two | 131 * A renderer for an {@link XYPlot} that highlights the differences between two |
130 * series. The example shown here is generated by the | 132 * series. The example shown here is generated by the |
176 /** The background color of the label showing the calculated area. */ | 178 /** The background color of the label showing the calculated area. */ |
177 protected Color labelBGColor; | 179 protected Color labelBGColor; |
178 | 180 |
179 /** Font to draw label of calculated area with. */ | 181 /** Font to draw label of calculated area with. */ |
180 protected Font labelFont; | 182 protected Font labelFont; |
183 | |
184 /** Template to create i18ned label for area. */ | |
185 protected String areaLabelTamplate; | |
186 | |
187 /** NumberFormat to use for area. */ | |
188 protected NumberFormat areaLabelNumberFormat; | |
181 | 189 |
182 protected int areaCalculationMode; | 190 protected int areaCalculationMode; |
183 | 191 |
184 protected double positiveArea; | 192 protected double positiveArea; |
185 protected double negativeArea; | 193 protected double negativeArea; |
257 } | 265 } |
258 | 266 |
259 public void setAreaCalculationMode(int areaCalculationMode) { | 267 public void setAreaCalculationMode(int areaCalculationMode) { |
260 this.areaCalculationMode = areaCalculationMode; | 268 this.areaCalculationMode = areaCalculationMode; |
261 } | 269 } |
270 | |
271 | |
272 /** Set template to use to create area label (e.g. 'Area=%dm2'). */ | |
273 public void setAreaLabelTemplate(String areaTemplate) { | |
274 this.areaLabelTamplate = areaTemplate; | |
275 } | |
276 | |
277 | |
278 public void setAreaLabelNumberFormat(NumberFormat nf) { | |
279 this.areaLabelNumberFormat = nf; | |
280 } | |
281 | |
262 | 282 |
263 public boolean isLabelArea() { | 283 public boolean isLabelArea() { |
264 return this.labelArea; | 284 return this.labelArea; |
265 } | 285 } |
266 | 286 |
824 | 844 |
825 public static List<XYDataset> splitByNaNs(XYDataset dataset) { | 845 public static List<XYDataset> splitByNaNs(XYDataset dataset) { |
826 | 846 |
827 switch (dataset.getSeriesCount()) { | 847 switch (dataset.getSeriesCount()) { |
828 case 0: | 848 case 0: |
829 return Collections.emptyList(); | 849 return Collections.<XYDataset>emptyList(); |
830 case 1: | 850 case 1: |
831 return splitByNaNsOneSeries(dataset); | 851 return splitByNaNsOneSeries(dataset); |
832 default: // two or more | 852 default: // two or more |
833 return splitByNaNsTwoSeries(dataset); | 853 return splitByNaNsTwoSeries(dataset); |
834 } | 854 } |
878 plot, domainAxis, rangeAxis, | 898 plot, domainAxis, rangeAxis, |
879 dataset, series, item, crosshairState); | 899 dataset, series, item, crosshairState); |
880 } | 900 } |
881 | 901 |
882 // Find geometric middle, calculate area and paint a string with it here. | 902 // Find geometric middle, calculate area and paint a string with it here. |
883 // TODO also i18n | 903 if (pass == 1 && this.labelArea && areaLabelNumberFormat != null && areaLabelTamplate != null) { |
884 if (pass == 1 && this.labelArea) { | |
885 double center_x = centroid.getX(); | 904 double center_x = centroid.getX(); |
886 double center_y = centroid.getY(); | 905 double center_y = centroid.getY(); |
887 center_x = domainAxis.valueToJava2D(center_x, dataArea, | 906 center_x = domainAxis.valueToJava2D(center_x, dataArea, |
888 plot.getDomainAxisEdge()); | 907 plot.getDomainAxisEdge()); |
889 center_y = rangeAxis.valueToJava2D(center_y, dataArea, | 908 center_y = rangeAxis.valueToJava2D(center_y, dataArea, |
902 } | 921 } |
903 if (area != 0f) { | 922 if (area != 0f) { |
904 Color oldColor = g2.getColor(); | 923 Color oldColor = g2.getColor(); |
905 Font oldFont = g2.getFont(); | 924 Font oldFont = g2.getFont(); |
906 g2.setFont(labelFont); | 925 g2.setFont(labelFont); |
907 String labelText = "Area= " + area + "m2"; | 926 String labelText = String.format(this.areaLabelTamplate, |
927 areaLabelNumberFormat.format(area)); | |
908 if (labelBGColor != null) { | 928 if (labelBGColor != null) { |
909 EnhancedLineAndShapeRenderer.drawTextBox(g2, labelText, | 929 EnhancedLineAndShapeRenderer.drawTextBox(g2, labelText, |
910 (float)center_x, (float)center_y, labelBGColor); | 930 (float)center_x, (float)center_y, labelBGColor); |
911 } | 931 } |
912 g2.setColor(labelColor); | 932 g2.setColor(labelColor); |