NEWS 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905
  1. JFreeChart 1.0.19
  2. -----------------
  3. 31 July 2014
  4. This maintenance release corrects some issues in the new JavaFX support that
  5. was added in the 1.0.18 release, as well as some general issues.
  6. Bug Fixes:
  7. - fixed clipping issues for combined plots in JavaFX;
  8. - fix a memory leak in the new JavaFX ChartCanvas class;
  9. - CombinedDomainXYPlot and CombinedRangeXYPlot now take into account the
  10. pannable flags in the subplots;
  11. - FastScatterPlot panning direction is corrected;
  12. - added rendering hints to sharpen gridlines and borders in most output formats;
  13. - JFreeSVG updated to version 2.0.
  14. In this release, we have also provided a preview of JSFreeChart, a free 2D
  15. chart library written in JavaScript that is conceptually similar to JFreeChart
  16. but runs directly in browsers.
  17. JFreeChart 1.0.18
  18. -----------------
  19. 3 July 2014
  20. Added JavaFX support with a new ChartViewer control that supports tooltips,
  21. mouse clicks, panning, zooming and a context menu. Modified LogAxis to
  22. support super-scripted labels, improved the tick label generation for
  23. NumberAxis, added a new ProbabilityAxis (patch from John St. Ledger),
  24. enhanced XYStepAreaRenderer to support a 'stepPoint' attribute (patch from
  25. Lukasz Rzeszotarski), provided configurable direction labels in
  26. CompassFormat (patch from Simon Legner), added methods to add data item
  27. objects to VectorSeries, XIntervalSeries, YIntervalSeries and
  28. XYIntervalSeries (for consistency with other data series objects),
  29. improved the TimeSeries range calculations, provided center text support
  30. for the RingPlot class, and updated JCommon to version 1.0.22 (this fixes
  31. a bug in pie label rendering).
  32. Bug Fixes:
  33. - BarRenderer3D now observes the 'visibleSeries' settings;
  34. - TimeSeriesCollection now takes xRange into account when calculating the
  35. range bounds;
  36. - added missing localisation for 'Save As' option on ChartPanel;
  37. - inverted SymbolAxis not displaying bands correctly;
  38. - fixed fillDomainGridBand() method in AbstractXYItemRenderer;
  39. - replaced ObjectList with java.util.Map to avoid bug in equals() methods.
  40. JFreeChart 1.0.17
  41. -----------------
  42. 24 November 2013
  43. Enhanced XYSplineRenderer with new area fill (contributed by Klaus Rheinwald),
  44. added a notify flag to all datasets that extend AbstractDataset, extended
  45. TimeSeriesCollection to validate TimeSeries keys for uniqueness, added a new
  46. DirectionalGradientPaintTransformer (by Peter Kolb), updated OHLCSeries, added
  47. HMSNumberFormat, updated JCommon to version 1.0.21 (includes rotated text
  48. improvements) and fixed some minor bugs.
  49. Bug Fixes:
  50. 977 : Multithreading issue with DateAxis;
  51. 1084 : BorderArrangement.add() possible ClassCastException;
  52. 1099 : XYSeriesCollection.removeSeries(int) does not deregister listener;
  53. 1109 : WaterfallBarRenderer uses wrong color for diff 0.
  54. And now a word from our sponsors, Object Refinery Limited...
  55. > ORSON CHARTS 3D
  56. > ---------------
  57. > We are pleased to announce the release of Orson Charts, a 3D chart library
  58. > for the Java(tm) platform. Orson Charts has a similar architecture to
  59. > JFreeChart and provides high-quality 3D chart rendering using just the Java2D
  60. > API. The built-in Swing-based viewer provides zooming and full 360 degree
  61. > rotation of charts in any direction. Export options include PNG, PDF and SVG.
  62. > You can download a free evaluation copy of Orson Charts from:
  63. >
  64. > http://www.object-refinery.com/orsoncharts
  65. >
  66. > We've also added a tab to the JFreeChart demo application so you can see
  67. > Orson Charts in action. Orson Charts is not free, but provides a superb
  68. > complement to the extensive 2D charting capabilities of JFreeChart.
  69. JFreeChart 1.0.16
  70. -----------------
  71. 13 September 2013
  72. *** THIS RELEASE REQUIRES JDK/JRE 1.6.0 OR LATER. ***
  73. Provided subscript/superscript support for axis labels (via AttributedString),
  74. new axis label positioning options, simplified ChartFactory methods,
  75. added new methods to DatasetUtilities to interpolate y-values in XYDatasets,
  76. added URLs to labels on CategoryAxis, seamless integration with
  77. JFreeSVG (http://www.jfree.org/jfreesvg/) and OrsonPDF
  78. (http://www.object-refinery.com/pdf/), improved the consistency of the
  79. SWTGraphics2D implementation, and fixed various bugs. All the JUnit tests
  80. have been upgraded to JUnit 4.
  81. Bug Fixes:
  82. 1107 : Fixed TimeZone issue in PeriodAxis.
  83. Also fixed a line drawing issue with the StackedXYAreaRenderer, and a memory
  84. leak in the SWT ChartComposite class.
  85. IMPORTANT: Funding is vital to the continued success of the JFreeChart project.
  86. Please ask/persuade/beg your company to support us buy purchasing the
  87. JFreeChart Developer Guide and demo source code (site license options are
  88. available for big companies)...and also please take a look at JFreeSVG and
  89. OrsonPDF, useful products that we are charging money for!
  90. JFreeChart 1.0.15
  91. -----------------
  92. 4-July-2013
  93. Added support for non-visible series in XYBarRenderer, minor gridlines in
  94. PolarPlot, legend item ordering, chart editor enhancements, updates to
  95. StandardDialScale, localisation files for Japanese and refactored parameter
  96. checks.
  97. This release also fixes a minor security flaw in the DisplayChart class,
  98. detected and reported by OSI Security:
  99. http://www.osisecurity.com.au/advisories/jfreechart-path-disclosure
  100. Patches:
  101. 3500621 : LegendTitle order attribute (by Simon Kaczor);
  102. 3463807 : ChartComposite does not dispose popup (by Sebastiao Correia);
  103. 3204823 : PaintAlpha for 3D effects (by Dave Law);
  104. Bug Fixes:
  105. 3561093 : Rendering anomaly for XYPlots;
  106. 3555275 : ValueAxis.reserveSpace() problem for axes with fixed dimension;
  107. 3521736 : DeviationRenderer optimisation (by Milan Ramaiya);
  108. 3514487 : SWTGraphics2D get/setStroke() problem;
  109. 3508799 : DefaultPolarItemRenderer does not populate seriesKey in LegendItem;
  110. 3482106 : Missing text in SWTGraphics2D (by Kevin Xu);
  111. 3484408 : Maven fixes (Martin Hoeller);
  112. 3484403 : DateAxis endless loop (by Martin Hoeller);
  113. 3446965 : TimeSeries calculates range incorrectly in addOrUpdate();
  114. 3445507 : TimeSeriesCollection.findRangeBounds() regression;
  115. 3425881 : XYDifferenceRenderer fix (by Patrick Schlott/Christoph Schroeder);
  116. 2963199 : SWT print job (by Jonas Rüttimann);
  117. 2879650 : Path disclosure vulnerability in DisplayChart servlet;
  118. Also fixed a rendering issue for polar charts using an inverted axis.
  119. JFreeChart 1.0.14
  120. -----------------
  121. 20 November 2011
  122. This release contains support for multiple and logarithmic axes with PolarPlot,
  123. optional drop-shadows in plot rendering, fitting polynomial functions to a data
  124. series, some performance improvements in the TimeSeriesCollection class, mouse
  125. wheel rotation of pie charts, improved Maven support and numerous bug fixes.
  126. Patches:
  127. 3435734 : Fix lines overlapping item labels (by Martin Hoeller);
  128. 3421088 : Bugfix for misalignment in BoxAndWhiskerRenderer;
  129. 2952086 : Enhancement for finding bounds in XYZDatasets;
  130. 2954302 : CategoryPointerAnnotation line calculation;
  131. 2902842 : HistogramDataset.addSeries() fires change change event (by
  132. Thomas A Caswell);
  133. 2868608 : Whisker width attribute for BoxAndWhiskerRenderer (by Peter Becker);
  134. 2868585 : Added useOutlinePaint flag for BoxAndWhiskerRenderer (by
  135. Peter Becker);
  136. 2850344 : PolarPlot enhancements (by Martin Hoeller);
  137. 2795746 : Support for polynomial regression;
  138. 2791407 : Fixes for findRangeBounds() in various renderers.
  139. Bug Fixes:
  140. 3440237 : Shadows always visible;
  141. 3432721 : PolarPlot doesn't work with logarithmic axis;
  142. 3433405 : LineChart3D - Problem with Item Labels;
  143. 3429707 : LogAxis endless loop;
  144. 3428870 : Missing argument check in TextAnnotation;
  145. 3418287 : RelativeDateFormatTest.java is locale dependent;
  146. 3353913 : Localisation fixes for ChartPanel, CompassPlot and PiePlot3D;
  147. 3237879 : RingPlot should respect getSectionOutlineVisible();
  148. 3190615 : Added missing clear() method in CategoryTableXYDataset;
  149. 3165708 : PolarChartPanel localisation fix;
  150. 3072674 : Bad handling of NaN in DefaultStatisticalCategoryDataset;
  151. 3035289 : StackedXYBarRenderer should respect series/item visible flags;
  152. 3026341 : Check for null in getDomain/RangeBounds() for XYShapeRenderer;
  153. 2947660 : AbstractCategoryRenderer fix null check in getLegendItems();
  154. 2946521 : StandardDialScale check majorTickIncrement argument;
  155. 2876406 : TimeTableXYDataset should support Comparable for series keys;
  156. 2868557 : BoxAndWhiskerRenderer should fire change event in setMedianVisible();
  157. 2849731 : For IntervalCategoryDataset and IntervalXYDataset, fix
  158. iterateRangeBounds() in DatasetUtilities;
  159. 2840132 : AbstractXYItemRenderer drawAnnotations doesn't set renderer index;
  160. 2810220 : Offset problem in StatisticalBarRenderer;
  161. 2802014 : Dial value border too small;
  162. 2781844 : XYPointerAnnotation arrow drawing;
  163. 1937486 : AreaRenderer doesn't respect AreaRendererEndType.LEVEL;
  164. Also fixed:
  165. - use of simple label offset in PiePlot;
  166. - cached minY and maxY in TimeSeries.createCopy();
  167. - scaling issues for charts copied to the clipboard;
  168. - use of timezone in TimeTableXYDataset constructor;
  169. - duplicate series names in XYSeriesCollection;
  170. - HistogramDataset fires a change event in addSeries();
  171. - check visibility of main chart title before drawing it;
  172. - fixed serialization of PowerFunction2D, NormalDistributionFunction2D,
  173. and LineFunction2D;
  174. - item label positioning for the AreaRenderer class when the plot has an
  175. horizontal orientation.
  176. JFreeChart 1.0.13
  177. -----------------
  178. 20 April 2009
  179. ******************************************************************************
  180. * SPECIAL NOTICE: There will be a birds-of-a-feather session for JFreeChart *
  181. * at this year's JavaOne conference in San Francisco. The session is *
  182. * scheduled for 6.45pm to 7.35pm on Wednesday 3 June. *
  183. ******************************************************************************
  184. This release contains:
  185. - updates to the ChartPanel class to support copying charts to the clipboard,
  186. panning and mouse-wheel zooming, and an overlay mechanism that supports
  187. crosshairs;
  188. - enhancements to the auto-range calculation for axes, providing the ability
  189. to use subranges only and also to skip hidden series;
  190. - updates for many of the CategoryItemRenderer implementations to ensure that
  191. they respect the 'seriesVisible' flags;
  192. - an improvement to the TimeSeries class so that it is no longer necessary to
  193. specify the time period type in the constructor;
  194. - a new SamplingXYLineRenderer for improving the performance of time series
  195. charts with large datasets;
  196. - the XYSeries/XYSeriesCollection classes now cache the minimum and maximum
  197. data values to improve the performance of charts with large datasets;
  198. - entities are now created for the chart, data area and axes, allowing mouse
  199. clicks to be detected for these regions;
  200. - added a bar alignment factor to the XYBarRenderer class;
  201. - a new 'errorIndicatorStroke' field for the StatisticalLineAndShapeRenderer
  202. and XYErrorRenderer classes;
  203. - added a new HeatMapDataset interface, DefaultHeatMapDataset implementation,
  204. and a HeatMapUtilities class to make it easier to create heat map charts;
  205. - there is a new flag to allow an XYDataImageAnnotation to be included in the
  206. automatic range calculation for the axes;
  207. - additional attributes in the XYTextAnnotation class;
  208. - added a sampleFunction2DToSeries() method to the DatasetUtilities class;
  209. - some changes to the ChartPanel class that help to work around a regression in
  210. JRE 1.6.0_10 relating to drawing in XOR mode. Regarding this final point:
  211. * the default value for the useBuffer flag has changed to true, which means
  212. that all charts will, by default, be rendered into an off-screen image
  213. before being displayed in the ChartPanel;
  214. * the zoom rectangle is drawn using XOR mode *only* when the useBuffer
  215. flag has been set to false.
  216. For most usage, this should improve performance (but at the cost of using more
  217. memory for each ChartPanel used in your application);
  218. Bug Fixes:
  219. 2690293 : Problem with Javascript escape characters;
  220. 2617557 : StandardDialScale ignored tickLabelPaint;
  221. 2612649 : Stroke selection in plot property editor;
  222. 2583891 : SWTGraphics2D.fillPolygon() not implemented;
  223. 2564636 : Month constructor ignores Locale;
  224. 2502355 : ChartPanel sending multiple events;
  225. 2490803 : PeriodAxis.setRange() method doesn't take into account that the axis
  226. displays whole periods;
  227. In addition, a bug in the SlidingCategoryDataset class has been fixed, the
  228. correct outline paint is now used by GradientXYBarPainter, a new method
  229. has been added to the ImageMapUtilities class to escape special characters
  230. in Javascript strings to avoid problems with the OverLIB and DynamicDrive
  231. tooltips, and there are some important fixes in the LogAxis class.
  232. This release passes 2110 JUnit tests (0 failures) on JRE 1.6.0_12.
  233. JFreeChart 1.0.12
  234. -----------------
  235. 31 December 2008
  236. This release adds support for minor tick marks, mapping datasets to more than
  237. one axis, an important fix for the XYSeries class (relating to the
  238. addOrUpdate() method) plus numerous other bug fixes.
  239. This release passes 1996 JUnit test (0 failures) on JRE 1.6.0_10.
  240. API Adjustments:
  241. - CategoryPlot : added mapDatasetToDomainAxes() and mapDatasetToRangeAxes()
  242. methods;
  243. - Month : added a new constructor Month(Date, TimeZone, Locale) and deprecated
  244. Month(Date, TimeZone);
  245. - Quarter : added a new constructor Quarter(Date, TimeZone, Locale) and
  246. deprecated Quarter(Date, TimeZone);
  247. - XYPlot : added mapDatasetToDomainAxes() and mapDatasetToRangeAxes() methods;
  248. - Year : added a new constructor Year(Date, TimeZone, Locale) and deprecated
  249. Year(Date, TimeZone);
  250. Bug Fixes:
  251. 2471906 : XYAreaRenderer with dashed outline - performance problem;
  252. 2452078 : StackedAreaChart has gaps;
  253. 2275695 : NullPointerException for SubCategoryAxis on plot with null dataset;
  254. 2221495 : XYLineAnnotation with dashed stroke;
  255. 2216511 : SWTBarChartDemo1 throws RuntimeException;
  256. 2201869 : DateAxis tick label position error;
  257. 2121818 : Label link lines for very thin RingPlot;
  258. 2113627 : XYStepRenderer item labels;
  259. 1955483 : XYSeries.addOrUpdate() problem.
  260. Also fixed StackedXYBarRenderer which was ignoring the shadowsVisible attribute.
  261. JFreeChart 1.0.11
  262. -----------------
  263. 19 September 2008
  264. This release features a new chart theming mechanism to allow charts to be
  265. restyled conveniently, a new BarPainter mechanism to enhance the appearance of
  266. bar charts, a new XYShapeRenderer class, a scaling facility for the
  267. XYDrawableAnnotation for drawing images within specific data coordinates, some
  268. new classes (XYTaskDataset, XYDataImageAnnotation and XYTitleAnnotation), a
  269. modification to the Year class to support an extended range, and various bug
  270. fixes and API improvements. There is an important bug fix for the
  271. StackedBarRenderer3D class (see bug 2031407).
  272. This release passes 1,961 JUnit tests (0 failures) on JRE 1.6.0_07.
  273. API Adjustments:
  274. - AbstractRenderer - added clearSeriesPaints() and clearSeriesStrokes()
  275. methods;
  276. - BarRenderer - added shadowPaint attribute;
  277. - CategoryAxis - added getCategoryMiddle() method;
  278. - CategoryPlot - added getRendererCount() method;
  279. - ChartFactory - added get/setChartTheme() methods;
  280. - ChartPanel - increased default maximum drawing width and height;
  281. - ChartTheme - new interface;
  282. - ChartUtilities - added applyCurrentTheme() method;
  283. - CompositeTitle - added backgroundPaint attribute;
  284. - GradientBarPainter - new class;
  285. - LegendTitle - added getWrapper() method;
  286. - OHLCSeriesCollection - added xPosition attribute;
  287. - PaintScaleLegend - new subdivisions field;
  288. - PiePlot - added autoPopulate flags, and methods to clear section attributes;
  289. - Plot - added setDrawingSupplier() method;
  290. - RegularTimePeriod - the DEFAULT_TIME_ZONE field has been deprecated in this
  291. release;
  292. - RelativeDateFormat - added methods to control formatting of hours and
  293. minutes - see patch 2033092;
  294. - StandardChartTheme - new class;
  295. - XYItemRendererState - new methods;
  296. - XYPlot - added getRendererCount() method;
  297. - XYShapeRenderer - new class;
  298. - XYTaskDataset - new class.
  299. Patches:
  300. 1997549 : Status calls to XYItemRendererState [Ulrich Voigt];
  301. 2006826 : CompositeTitle drawing fix;
  302. 2033092 : Additional formatters for RelativeDateFormat [Cole Markham];
  303. Bug Fixes:
  304. 1994355 : ChartComposite listener type;
  305. 2031407 : Incorrect rendering in StackedBarRenderer3D;
  306. 2033721 : WaferMapRenderer;
  307. 2051168 : No key in LegendItemEntity for pie charts;
  308. Also fixed drawing of alternate grid bands in SymbolAxis, the totalWeight
  309. calculation in the CombinedXXXPlot classes, a NullPointerException in the
  310. XYPlot class when drawing quadrants, outline visibility in the
  311. CategoryPlot class, and auto-range calculations with XYBarRenderer.
  312. JFreeChart 1.0.10
  313. -----------------
  314. 9 June 2008
  315. This release contains various bug fixes and minor enhancements to JFreeChart.
  316. PiePlot labelling has been enhanced (new curve options, and more robust bounds
  317. checking). The BoxAndWhiskerRenderer now has a maximumBarWidth attribute, the
  318. XYStepRenderer has a new stepPoint attribute. The RelativeDateFormat class
  319. has new options. There are new dataset classes (SlidingCategoryDataset and
  320. SlidingGanttDataset) that permit a subset of categories to be plotted, and
  321. allow charts based on these datasets to simulate scrolling. There is a new
  322. ShortTextTitle class.
  323. This release passes 1,929 JUnit tests (0 failures) on JRE 1.6.0_03.
  324. API Adjustments:
  325. - BoxAndWhiskerRenderer - added maximumBarWidth attribute (see patch 1866446);
  326. - ChartPanel - the zoomPoint attribute has been changed from Point to Point2D;
  327. - DatasetUtilities - iterateCategoryRangeBounds() is deprecated, the method
  328. has been renamed iterateRangeBounds(CategoryDataset) for consistency;
  329. - DefaultKeyedValue - the constructor now prevents a null key;
  330. - LogFormat - now has a 'powerLabel' attribute;
  331. - ShortTextTitle - a new title class;
  332. - SlidingCategoryDataset - new class;
  333. - SlidingGanttDataset - new class;
  334. - TimeSeriesCollection - getSeries(String) changed to getSeries(Comparable);
  335. - XIntervalSeriesCollection - added series removal methods;
  336. - YIntervalSeriesCollection - added series removal methods;
  337. - XYIntervalSeriesCollection - added series removal methods;
  338. PublicCloneable is now implemented by a number of classes that didn't
  339. previously implement the interface - this should improve the reliability of
  340. chart cloning.
  341. Patches:
  342. 1943021 : Fix for MultiplePiePlot [Brian Cabana];
  343. 1925366 : Speed improvement for DatasetUtilities [Rafal Skalny];
  344. 1918209 : LogAxis createTickLabel() changed from private to
  345. protected [Andrew Mickish];
  346. 1914411 : Simplification of plot event notification [Richard West];
  347. 1913751 : XYPlot and CategoryPlot addMarker() methods with
  348. optional notification [Richard West];
  349. 1902418 : Bug fix for LogAxis vertical labels [Andrew Mickish];
  350. 1901599 : Fixes for XYTitleAnnotation [Andrew Mickish];
  351. 1891849 : New curve option for pie chart label links [Martin Hilpert];
  352. 1874890 : Added step point to XYStepRenderer [Ulrich Voigt];
  353. 1873328 : Enhancements to RelativeDateFormat [Michael Siemer];
  354. 1871902 : PolarPlot now has angleTickUnit attribute [Martin Hoeller];
  355. 1868745 : Fix label anchor points on LogAxis [Andrew Mickish];
  356. 1866446 : Added maximumBarWidth to BoxAndWhiskerRenderer [Rob Van der Sanden];
  357. Bug Fixes:
  358. 1932146 - PeriodAxis.setRange() doesn't notify listeners;
  359. 1927239 - Fix calculation of cumulative range;
  360. 1926517 - Bugs in data range calculation for combined plots;
  361. 1920854 - PiePlot3D labels drawn multiple times;
  362. 1897580 - Fix for DefaultIntervalCategoryDataset;
  363. 1892419 - Wrong default for minor tick count in LogAxis;
  364. 1880114 - VectorRenderer doesn't work for horizontal plot orientation;
  365. 1873160 - DialPlot clipping issues;
  366. 1868521 - Problem saving charts to JPEG format;
  367. 1864222 - Error on TimeSeries createCopy() method;
  368. The DatasetUtilities.sampleFunction2D() has been changed to sample the correct
  369. number of points - you should check any code that calls this method. The
  370. XYBlockRenderer class now generates entities. Bugs in the removeDomainMarker()
  371. and removeRangeMarker() methods in the CategoryPlot and XYPlot classes have
  372. been fixed. A bug in the TimePeriodValues range calculation has been fixed.
  373. Fixes were applied to the clone() methods in the TaskSeries and
  374. TaskSeriesCollection classes.
  375. New Experimental Features:
  376. Two new classes CombinedCategoryPlot and CombinedXYPlot have been added to the
  377. 'experimental' source tree - these were contributed by Richard West (see
  378. patch 1924543).
  379. JFreeChart 1.0.9
  380. ----------------
  381. 4 January 2008
  382. This release contains an important security patch as well as various bug fixes
  383. and minor enhancements. Regarding the security patch, please see the
  384. following advisory:
  385. http://www.rapid7.com/advisories/R7-0031.jsp
  386. Note that the fix incorporated in the special JFreeChart 1.0.8a release was
  387. flawed in that it broke the URLs in the HTML image maps generated by
  388. JFreeChart. Further amendments have been made in this release to fix this
  389. problem.
  390. API Adjustments:
  391. A number of classes have new methods. Nothing has been removed or deprecated:
  392. - HashUtilities - added hashCode() methods for BooleanList, PaintList and
  393. StrokeList;
  394. - ImageMapUtilities - added htmlEscape(String);
  395. - IntervalMarker - added new constructor;
  396. - Range - added intersects(Range) and scale(Range, double);
  397. - TextTitle - added protected methods arrangeNN(), arrangeFN() and arrangeRN();
  398. - XYDataItem - added getXValue() and getYValue() methods;
  399. - XYPlot - added setFixedDomainAxisSpace(AxisSpace, boolean) and
  400. setFixedRangeAxisSpace(AxisSpace, boolean);
  401. - XYSeriesCollection - added getSeries(Comparable) method.
  402. Bug Fixes:
  403. 1852525 - CandlestickChart.getCategoryPlot() - ClassCastException;
  404. 1851416 - testGetFirstMillisecondWithTimeZone fails in 1.0.8a;
  405. 1849333 - 1.0.8a breaks URLs in HTML image maps;
  406. 1848961 - GroupedStackedBarRenderer works only for primary dataset;
  407. 1846063 - Endless loop in paint of XYPlot;
  408. 1840139 - Cross-site scripting vulnerabilities in image map code;
  409. 1837979 - Background image not shown with SWT;
  410. 1460195 - ChartEntity.getImageMapAreaTag() needs nohref;
  411. 1400917 - OverLIBToolTipTagFragmentGenerator not escaping single quote;
  412. 1363043 - Escape Image Map Data;
  413. 1178601 - AbstractRenderer.hashcode() method returns the same value;
  414. In addition, a bug in the constructor for the Week class has been fixed.
  415. JFreeChart 1.0.8
  416. ----------------
  417. 23 November 2007
  418. This release is primarily a bug fix release, correcting a problem with pie
  419. chart labelling, a regression in the DefaultCategoryDataset class (and
  420. underlying KeyedValues2D class), and a cloning bug in the TimeSeries class.
  421. In addition, the StatisticalBarRenderer class has a new 'errorIndicatorStroke'
  422. field and has been updated to support gradients, the StandardDialScale has had
  423. some missing accessor methods implemented, and an override field in the
  424. StandardXYItemRenderer class has been deprecated. Plus some warnings reported
  425. by FindBugs 1.3.0 have been addressed.
  426. JFreeChart 1.0.7
  427. ----------------
  428. 14 November 2007
  429. This release features new classes DialPlot and LogAxis (previously in
  430. experimental), initial support for minor tick units, a new anchored zooming
  431. option for the ChartPanel class, optional simple labelling on pie charts,
  432. improvements to the "statistical" datasets and underlying data structures, and
  433. numerous bug fixes.
  434. API Adjustments:
  435. - CategoryAxis - added getCategorySeriesMiddle() method;
  436. - CategoryPlot - added methods to remove markers;
  437. - ChartPanel - added defaultDirectorForSaveAs attribute;
  438. - DialPlot - new class, an alternative to MeterPlot;
  439. - LogAxis - new class, an alternative to LogarithmicAxis;
  440. - NumberTick - new constructor that allows specification of the tick type;
  441. - NumberTickUnit - new constructor to specify the minor tick count;
  442. - SymbolAxis - new methods get/setGridBandAlternatePaint();
  443. - TickType - new class;
  444. - TickUnit - added minorTickCount attribute;
  445. - ValueTick - added tickType attribute;
  446. - StandardPieSectionLabelGenerator - new constructors accepting a Locale;
  447. - StandardPieToolTipGenerator - likewise;
  448. - CategoryPlot - added getRangeAxisIndex(), zoomDomainAxes() and zoomRangeAxes()
  449. methods;
  450. - FastScatterPlot - added new zooming methods;
  451. - PiePlot - new attributes to support simple labelling;
  452. - PlotUtilities - new class;
  453. - PolarPlot - added new zooming methods;
  454. - ThermometerPlot - likewise;
  455. - XYPlot - added methods to remove markers (patch 1823697--same as for
  456. CategoryPlot), and added new zooming methods;
  457. - Zoomable - added new zooming methods to this interface;
  458. - LineAndShapeRenderer - added useSeriesOffset and itemMargin attributes;
  459. - MinMaxCategoryRenderer - implemented equals();
  460. - XYSplineAndShapeRenderer - new class;
  461. - LogFormat - new class;
  462. - ChartFactory - new pie and ring chart creation methods that accept a Locale;
  463. - ChartPanel - added zoomAroundAnchor attribute;
  464. - Series - added isEmpty() method;
  465. - BoxAndWhiskerItem - new convenience constructor;
  466. - DefaultBoxAndWhiskerCategoryDataset - new remove methods;
  467. - DefaultStatisticalCategoryDataset - likewise;
  468. - MeanAndStandardDeviation - added new value accessor methods;
  469. - TimeTableXYDataset - added clear() method;
  470. - Week - added new constructor;
  471. - KeyedObjects - added insertValue() and clear() methods;
  472. - KeyedObjects2D - added clear() method.
  473. Patches:
  474. 1823724 - updated XYDifferenceRenderer to support item labels;
  475. 1827829 - fixed possible NullPointerException in XYBarRenderer;
  476. Bug Fixes:
  477. 1767315 - GrayPaintScale.getPaint() uses wrong value;
  478. 1775452 - Inverted XYBarRenderer does not render margins correctly;
  479. 1802195 - Marker.listenerList serializable;
  480. 1779941 - StatisticalBarRenderer NPE;
  481. 1766646 - XYBlockRenderer can't handle empty datasets;
  482. 1763413 - PeriodAxis labels fail to display with setInverted
  483. 1737953 - Zoom doesn't work on LogAxis(Demo1)
  484. 1749124 - JFreeChart not added as TitleChangeListener
  485. JFreeChart 1.0.6
  486. ----------------
  487. 15 June 2007
  488. This release features a new VectorRenderer (previously in experimental), a
  489. generalised XYDifferenceRenderer, better support for hotspots on legend items,
  490. improved performance for time series charts displaying subsets of data, support
  491. for GradientPaint in plot backgrounds, plus the usual slew of bug fixes and
  492. minor feature additions.
  493. API Adjustments:
  494. - CategoryItemEntity - replaced row and column index attributes with row and
  495. column key attributes;
  496. - CategoryItemRenderer - numerous series override settings have been deprecated;
  497. - DefaultPieDataset - added insertValues() method;
  498. - HexNumberFormat - new class;
  499. - LegendItem - added dataset and seriesKey attributes;
  500. - Plot - added new fillBackground() method to support GradientPaint, and
  501. added is/setOutlineVisible() methods;
  502. - QuarterDateFormat - added GREEK_QUARTERS field plus a new constructor;
  503. - SimpleHistogramDataset - added clearObservations() and removeAllBins()
  504. methods;
  505. - TimeSeriesCollection - added indexOf() method;
  506. - URLUtilities - new class;
  507. - XYItemRenderer - numerous series override settings have been deprecated;
  508. - XYSeriesCollection - added indexOf() method.
  509. Bug Fixes:
  510. 1735508 - ClusteredXYBarRenderer fails with inverted x-axis;
  511. 1726404 - ChartComposite tooltips;
  512. 1713474 - StackedBarRenderer3D doesn't fill shadows;
  513. 1713401 - StackedBarRenderer3D doesn't check drawBarOutline flag;
  514. 1701822 - DefaultBoxAndWhiskerCategoryDataset doesn't follow contracts;
  515. 1698965 - NPE in CombinedDomainXYPlot;
  516. 1690994 - HideSeriesDemo1 does not work;
  517. 1690654 - Bug in removeValue() of DefaultKeyedValues2D;
  518. 1562701 - LegendItemEntity needs dataset index;
  519. 1486299 - Use URLEncoder.encode() for URL generators;
  520. Plus the following bugs that didn't have entries in the database:
  521. - BarRenderer - check for series visibility in getLegendItem();
  522. - ChartPanel - use correct insets for painting chart buffer to screen, update
  523. UI for popup menu if LookAndFeel changes;
  524. - DateAxis - fixed boundary cases for previousStandardDate() method;
  525. - LineBorder - only draw border if area has positive dimensions;
  526. - JFreeChart - should register as a listener with the default legend;
  527. - StandardXYItemRenderer - fixed a problem where chart entities are created for
  528. non-visible items;
  529. - TimePeriodValuesCollection.getDomainBounds() now computes the bounds
  530. correctly;
  531. - XYLineAndShapeRenderer - fixed a problem where chart entities are created for
  532. non-visible items;
  533. - XYLine3DRenderer - equals() implemented, and serialization fixed;
  534. - XYTitleAnnotation - fixed equals() method;
  535. - various resource usage bugs in the experimental ChartComposite class;
  536. JFreeChart 1.0.5
  537. ----------------
  538. 23 March 2007
  539. This release features a new DeviationRenderer class, support for item labels
  540. in StackedXYBarRenderer, tooltips and URLs in the CategoryStepRenderer, and
  541. many bug fixes.
  542. API Adjustments:
  543. - AbstractCategoryItemRenderer - added createState() method;
  544. - StackedXYBarRenderer - added get/setRenderAsPercentages() methods;
  545. - XYIntervalSeries - added getXLowValue(), getXHighValue(), getYLowValue() and
  546. getYHighValue();
  547. - YIntervalSeries - added getYLowValue() and getYHighValue() methods;
  548. Bug Fixes:
  549. 1681777 - DefaultCategoryDataset does not clone data;
  550. 1672552 - Zoom rectangle is lost when the chart is repainted;
  551. 1671645 - Crosshair incorrectly positioned in horizontal orientation;
  552. 1669302 - Tick labels in vertical symbol axis;
  553. 1669218 - CategoryPlot.setDomainAxisLocation() ignores parameter;
  554. 1667750 - Clip region not restored in Spider and MeterPlot;
  555. 1663380 - OutputStream not closed;
  556. 1659627 - IntervalMarker with Double.POSITIVE_INFINITY bound;
  557. 1647269 - IntervalMarker with Double.MAX_VALUE as upper bound;
  558. 1594477 - XYBarRenderer does not render bars on LogarithmicAxis;
  559. 1459958 - Log axis zoom function problem;
  560. 880597 - Zooming ChartPanel with log axes;
  561. 764561 - Dynamic chart zoom buggy.
  562. Also fixed numerous bugs in equals(), cloning and serialization
  563. implementations.
  564. JFreeChart 1.0.4
  565. ----------------
  566. 9 February 2007
  567. This release features a new XYBlockRenderer class, URLs for pie chart labels
  568. in HTML image maps, a new dataset implementation for open-high-low-close
  569. charts, support for gradient paint in ClusteredXYBarRenderer,
  570. StackedXYBarRenderer and legend graphics, a new anchor attribute for
  571. XYImageAnnotation, improvements to the experimental SWT support, plus a
  572. number of additions to the API for usability, and many bug fixes.
  573. API Adjustments:
  574. - DateAxis - added get/setTimeZone() methods;
  575. - DefaultXYDataset - now implements PublicCloneable;
  576. - StackedXYAreaRenderer2 - added get/setRoundXValues() methods;
  577. - StandardXYItemLabelGenerator - added new constructor;
  578. - StandardXYToolTipGenerator - added new constructor;
  579. - XYBarDataset - added getUnderlyingDataset() and get/setBarWidth() methods;
  580. - XYDifferenceRenderer - added roundXCoordinates attribute;
  581. - XYImageAnnotation - added an image anchor attribute, a new constructor, and
  582. several accessor methods;
  583. - XYSeries - added toArray() method;
  584. Bug Fixes:
  585. 1654215 - XYPlot renderer with no corresponding dataset;
  586. 1652640 - RangeMarkers do not update properly;
  587. 1649686 - Crosshairs for StackedXYAreaRenderer;
  588. 1647749 - IllegalArgumentException in SWTAxisEditor;
  589. 1644877 - Replacing series data in DefaultXYDataset;
  590. 1644010 - DateAxis.nextStandardDate() ignores timezone;
  591. 1638678 - DateAxis code uses the default calendar;
  592. 1629382 - Tests fail for jfreechart-1.0.3;
  593. 1624067 - StandardXYToolTipGenerator missing constructor;
  594. 1616583 - Serialize ChartDeleter;
  595. 1612770 - Popup menu in wrong position for SWT ChartComposite;
  596. 1611872 - Minute.previous() returns null for minute == 0;
  597. 1608371 - Tick labels overlap with custom NumberFormat;
  598. 1606205 - Draw shared axis last on combined plots;
  599. 1605207 - IntervalMarker exceeds bounds of data area;
  600. 1605202 - SpiderWebPlot method access;
  601. 1599652 - Inverted StackedBar3D problem;
  602. 1598394 - XYBarDataset hiding its proxied object;
  603. 1564967 - Crosshairs on XYDifferenceRenderer;
  604. 1245305 - NullPointerException in writeImageMap();
  605. 1086307 - Crosshairs on plots with multiple axes.
  606. Also fixed numerous bugs in equals() and clone() methods throughout the API.
  607. JFreeChart 1.0.3:
  608. -----------------
  609. 17 November 2006
  610. This release features several new IntervalXYDataset implementations, some
  611. significant refactoring of the time period classes (to improve performance
  612. and correctness), modifications to the PiePlot class to support reordering of
  613. dataset items, a new event mechanism to allow updating of markers, plus many
  614. other enhancements, bug fixes and documentation updates.
  615. A new DialPlot implementation has been added to the 'experimental' sources.
  616. We are looking for people to test this code and provide feedback, so that we
  617. can stabilize the API and add this code to the main JFreeChart API.
  618. API adjustments:
  619. The following adjustments have been made to the API:
  620. - CategoryLabelEntity - new class;
  621. - CategoryPointerAnnotation - new class;
  622. - ChartPanel: added new public method doEditChartProperties();
  623. - ComparableObjectItem, ComparableObjectSeries - new classes;
  624. - CrosshairState: added several new accessor methods;
  625. - DefaultPieDataset: added sortByKeys() and sortByValues() methods;
  626. - Markers: a change event mechanism has been added to the Marker class and
  627. its subclasses;
  628. - StackedAreaRenderer: added get/setRenderAsPercentages() methods;
  629. - XIntervalDataItem, XIntervalSeries and XIntervalSeriesCollection - new
  630. classes;
  631. - XYErrorRenderer: new class;
  632. - XYInterval, XYIntervalDataItem, XYIntervalSeries and
  633. XYIntervalSeriesCollection - new classes;
  634. - YInterval, YIntervalDataItem, YIntervalSeries, YIntervalSeriesCollection and
  635. YWithXInterval - new classes.
  636. Bug Fixes:
  637. 1578293 - Unused methods in JDBCXYDataset;
  638. 1572478 - BoxAndWhiskerRenderer potential NullPointerException;
  639. 1569094 - XYStepRenderer with horizontal orientation;
  640. 1565168 - Crosshair position incorrect;
  641. 1564977 - DateAxis missing initial tick label;
  642. 1562759 - StatisticalLineAndShapeRenderer constructor ignores arguments;
  643. 1557141 - Bad locale in ServletUtilities;
  644. 1550045 - TimeSeries.removeAgedItems() method problems;
  645. 1549218 - Chart not displaying when all data values are the same and large;
  646. 1450447 - Marker.setAlpha() ignored;
  647. Also fixed URL generation for legend items, tick mark positioning on the
  648. DateAxis, the equals() method in the AreaRenderer class, hardcoded outline
  649. attributes in the XYBubbleRenderer, and potential NullPointerExceptions in the
  650. ChartPanel class.
  651. JFreeChart 1.0.2:
  652. -----------------
  653. Released on 25 August 2006.
  654. API adjustments:
  655. The following adjustments have been made to the API (there should be no
  656. breakage of applications coded to the 1.0.0 or 1.0.1 API):
  657. - CategoryToPieDataset: added accessor methods for underlying dataset, extract
  658. type and index (feature request 1477915);
  659. - DefaultXYDataset: New dataset implementation that uses double[] arrays;
  660. - DefaultXYZDataset: New dataset implementation that uses double[] arrays;
  661. - LegendItemBlockContainer: New container used in legends (enables
  662. legend item entities again);
  663. - MultiplePiePlot: Added new fields aggregatedItemsKey and
  664. aggregatedItemsPaint, plus accessor methods - see bug 1190647;
  665. - SpiderWebPlot: Added new fields toolTipGenerator and urlGenerator, plus
  666. accessor methods (see patch 1463455);
  667. - StackedBarRenderer3D: Added new flag (renderAsPercentages), plus accessor
  668. methods, that controls whether the data items are displayed as values or
  669. percentages. Two new constructors are also added (see patch 1459313);
  670. - XYPolygonAnnotation: Added new accessor methods.
  671. Patches:
  672. 1459313 - Add renderAsPercentages option to StackedBarRenderer3D;
  673. 1462727 - Modify SpiderWebPlot to support zero values;
  674. 1463455 - Modify SpiderWebPlot to support mouse clicks, tool tips and URLs;
  675. Bug Fixes:
  676. 1514904 - Background image alpha in Plot class;
  677. 1499140 - ClusteredXYBarRenderer with margin not drawing correctly;
  678. 1494936 - LineAndShapeRenderer generates entity for non-visible item;
  679. 1493199 - NPE drawing SpiderWebPlot with null info;
  680. 1480978 - AbstractPieItemLabelGenerator.clone() doesn't clone percentFormat;
  681. 1472942 - DateAxis.equals() broken;
  682. 1468794 - StatisticalLineAndShapeRenderer doesn't draw error bars correctly
  683. when the plot has a horizontal orientation;
  684. - AbstractCategoryItemRenderer doesn't check seriesVisibleInLegend
  685. flag before creating new item;
  686. 1440415 - Bad distribution of pie chart section labels;
  687. 1440346 - Bad manifest entry for JCommon in JFreeChart jar file;
  688. 1435461 - NumberAxis.equals() ignores rangeType field;
  689. 1435160 - XYPointerAnnotation.equals() ignores x and y fields;
  690. 1398672 - LegendItemEntities not working;
  691. 1380480 - StandardXYItemRenderer problems with Double.NaN;
  692. 1190647 - Legend and section color mismatch for MultiplePiePlot.
  693. Miscellaneous Changes:
  694. - Updated CandlestickRenderer, CyclicXYItemRenderer, HighLowRenderer,
  695. XYStepAreaRenderer and TimeSeriesURLGenerator to call dataset methods that
  696. return double primitive only;
  697. - Updated XYPolygonAnnotation, adding new accessor methods and fixing problems
  698. in the equals()/hashCode() methods;
  699. - ChartFactory.createStackedXYAreaChart() now uses StackedXYAreaRenderer2, for
  700. better handling of negative values;
  701. - Added crosshair support for XYBarRenderer.
  702. Experimental Code:
  703. In this release, some new (incomplete) classes have been included in the
  704. org.jfree.experimental.* namespace. These classes are not part of the
  705. standard API, but are included for developers to experiment with and provide
  706. feedback on. Hopefully in the future, refined versions of these classes will
  707. be incorporated into the main library. PLEASE NOTE THAT THE API FOR THESE
  708. CLASSES IS SUBJECT TO CHANGE.
  709. JFreeChart 1.0.1:
  710. ----------------
  711. Released 27 January 2006. This is primarily a bug fix release. In addition,
  712. there are some API adjustments (there should be no breakage of applications
  713. coded to the 1.0.0 API).
  714. API adjustments:
  715. - BarRenderer: added a new flag (includeBaseInRange), plus accessor
  716. methods, that controls whether or not the base value for the bar is
  717. included in the range calculated by the findRangeBounds() method;
  718. - BubbleXYItemLabelGenerator: new class;
  719. - Range: added a new method expandToInclude(Range, double), this is used by
  720. the BarRenderer class;
  721. - TaskSeriesCollection: added two new methods, getSeries(int) and
  722. getSeries(Comparable).
  723. - TimeSeriesCollection: the domainIsPointsInTime flag has been deprecated.
  724. The flag serves no function now that renderers are used to calculate the
  725. domain bounds, so you can safely delete any calls to the
  726. setDomainIsPointsInTime() method;
  727. - XYPlot: added a new getAnnotations() method;
  728. - XYSeries: the update(int, Number) method has been deprecated and a new method
  729. updateByIndex(int, Number) has been added;
  730. Bug fixes:
  731. 1243050 - XYBarRenderer doesn't show entire range of values for a
  732. TimeSeriesCollection;
  733. 1373371 - XYBubbleRenderer doesn't support item labels;
  734. 1374222 - BarRenderer contains JDK 1.4 specific code;
  735. 1374328 - LegendItem serialization problem;
  736. 1377239 - Bad argument checking in Quarter constructor;
  737. 1379331 - Incorrect drawing of TextTitle at LEFT or RIGHT position;
  738. 1386328 - RingPlot entity incorrect;
  739. 1400442 - Inconsistent treatment of null and zero values in PiePlot;
  740. 1401856 - Bad rendering for non-zero base values in BarRenderer;
  741. 1403043 - NullPointerException in CategoryAxis;
  742. 1408904 - NumberAxis3D assumes CategoryPlot;
  743. 1415480 - XYTextAnnotation equals() method doesn't check (x, y);
  744. JFreeChart 1.0.0:
  745. ----------------
  746. Released on 2 December 2005.