1JFreeChart 1.0.17
2-----------------
324 November 2013
4
5Enhanced XYSplineRenderer with new area fill (contributed by Klaus Rheinwald),
6added a notify flag to all datasets that extend AbstractDataset, extended
7TimeSeriesCollection to validate TimeSeries keys for uniqueness, added a new
8DirectionalGradientPaintTransformer (by Peter Kolb), updated OHLCSeries, added
9HMSNumberFormat, updated JCommon to version 1.0.21 (includes rotated text
10improvements) and fixed some minor bugs.
11
12Bug Fixes:
13
14 977 : Multithreading issue with DateAxis;
151084 : BorderArrangement.add() possible ClassCastException;
161099 : XYSeriesCollection.removeSeries(int) does not deregister listener;
171109 : WaterfallBarRenderer uses wrong color for diff 0.
18
19And now a word from our sponsors, Object Refinery Limited...
20
21> ORSON CHARTS 3D
22> ---------------
23> We are pleased to announce the release of Orson Charts, a 3D chart library
24> for the Java(tm) platform.  Orson Charts has a similar architecture to
25> JFreeChart and provides high-quality 3D chart rendering using just the Java2D
26> API.  The built-in Swing-based viewer provides zooming and full 360 degree
27> rotation of charts in any direction.  Export options include PNG, PDF and SVG.
28> You can download a free evaluation copy of Orson Charts from:
29>
30>    http://www.object-refinery.com/orsoncharts
31>
32> We've also added a tab to the JFreeChart demo application so you can see
33> Orson Charts in action.  Orson Charts is not free, but provides a superb
34> complement to the extensive 2D charting capabilities of JFreeChart.
35
36
37JFreeChart 1.0.16
38-----------------
3913 September 2013
40
41*** THIS RELEASE REQUIRES JDK/JRE 1.6.0 OR LATER. ***
42
43Provided subscript/superscript support for axis labels (via AttributedString),
44new axis label positioning options, simplified ChartFactory methods,
45added new methods to DatasetUtilities to interpolate y-values in XYDatasets,
46added URLs to labels on CategoryAxis, seamless integration with
47JFreeSVG (http://www.jfree.org/jfreesvg/) and OrsonPDF
48(http://www.object-refinery.com/pdf/), improved the consistency of the
49SWTGraphics2D implementation, and fixed various bugs.  All the JUnit tests
50have been upgraded to JUnit 4.
51
52Bug Fixes:
531107 : Fixed TimeZone issue in PeriodAxis.
54
55Also fixed a line drawing issue with the StackedXYAreaRenderer, and a memory
56leak in the SWT ChartComposite class.
57
58IMPORTANT: Funding is vital to the continued success of the JFreeChart project.
59Please ask/persuade/beg your company to support us buy purchasing the
60JFreeChart Developer Guide and demo source code (site license options are
61available for big companies)...and also please take a look at JFreeSVG and
62OrsonPDF, useful products that we are charging money for!
63
64
65JFreeChart 1.0.15
66-----------------
674-July-2013
68
69Added support for non-visible series in XYBarRenderer, minor gridlines in
70PolarPlot, legend item ordering, chart editor enhancements, updates to
71StandardDialScale, localisation files for Japanese and refactored parameter
72checks.
73
74This release also fixes a minor security flaw in the DisplayChart class,
75detected and reported by OSI Security:
76
77http://www.osisecurity.com.au/advisories/jfreechart-path-disclosure
78
79Patches:
80
813500621 : LegendTitle order attribute (by Simon Kaczor);
823463807 : ChartComposite does not dispose popup (by Sebastiao Correia);
833204823 : PaintAlpha for 3D effects (by Dave Law);
84
85Bug Fixes:
86
873561093 : Rendering anomaly for XYPlots;
883555275 : ValueAxis.reserveSpace() problem for axes with fixed dimension;
893521736 : DeviationRenderer optimisation (by Milan Ramaiya);
903514487 : SWTGraphics2D get/setStroke() problem;
913508799 : DefaultPolarItemRenderer does not populate seriesKey in LegendItem;
923482106 : Missing text in SWTGraphics2D (by Kevin Xu);
933484408 : Maven fixes (Martin Hoeller);
943484403 : DateAxis endless loop (by Martin Hoeller);
953446965 : TimeSeries calculates range incorrectly in addOrUpdate();
963445507 : TimeSeriesCollection.findRangeBounds() regression;
973425881 : XYDifferenceRenderer fix (by Patrick Schlott/Christoph Schroeder);
982963199 : SWT print job (by Jonas Rüttimann);
992879650 : Path disclosure vulnerability in DisplayChart servlet;
100
101Also fixed a rendering issue for polar charts using an inverted axis.
102
103
104JFreeChart 1.0.14
105-----------------
10620 November 2011
107
108This release contains support for multiple and logarithmic axes with PolarPlot,
109optional drop-shadows in plot rendering, fitting polynomial functions to a data
110series, some performance improvements in the TimeSeriesCollection class, mouse
111wheel rotation of pie charts, improved Maven support and numerous bug fixes.
112
113Patches:
114
1153435734 : Fix lines overlapping item labels (by Martin Hoeller);
1163421088 : Bugfix for misalignment in BoxAndWhiskerRenderer;
1172952086 : Enhancement for finding bounds in XYZDatasets;
1182954302 : CategoryPointerAnnotation line calculation;
1192902842 : HistogramDataset.addSeries() fires change change event (by
120          Thomas A Caswell);
1212868608 : Whisker width attribute for BoxAndWhiskerRenderer (by Peter Becker);
1222868585 : Added useOutlinePaint flag for BoxAndWhiskerRenderer (by
123          Peter Becker);
1242850344 : PolarPlot enhancements (by Martin Hoeller);
1252795746 : Support for polynomial regression;
1262791407 : Fixes for findRangeBounds() in various renderers.
127
128Bug Fixes:
129
1303440237 : Shadows always visible;
1313432721 : PolarPlot doesn't work with logarithmic axis;
1323433405 : LineChart3D - Problem with Item Labels;
1333429707 : LogAxis endless loop;
1343428870 : Missing argument check in TextAnnotation;
1353418287 : RelativeDateFormatTest.java is locale dependent;
1363353913 : Localisation fixes for ChartPanel, CompassPlot and PiePlot3D;
1373237879 : RingPlot should respect getSectionOutlineVisible();
1383190615 : Added missing clear() method in CategoryTableXYDataset;
1393165708 : PolarChartPanel localisation fix;
1403072674 : Bad handling of NaN in DefaultStatisticalCategoryDataset;
1413035289 : StackedXYBarRenderer should respect series/item visible flags;
1423026341 : Check for null in getDomain/RangeBounds() for XYShapeRenderer;
1432947660 : AbstractCategoryRenderer fix null check in getLegendItems();
1442946521 : StandardDialScale check majorTickIncrement argument;
1452876406 : TimeTableXYDataset should support Comparable for series keys;
1462868557 : BoxAndWhiskerRenderer should fire change event in setMedianVisible();
1472849731 : For IntervalCategoryDataset and IntervalXYDataset, fix
148          iterateRangeBounds() in DatasetUtilities;
1492840132 : AbstractXYItemRenderer drawAnnotations doesn't set renderer index;
1502810220 : Offset problem in StatisticalBarRenderer;
1512802014 : Dial value border too small;
1522781844 : XYPointerAnnotation arrow drawing;
1531937486 : AreaRenderer doesn't respect AreaRendererEndType.LEVEL;
154
155Also fixed:
156- use of simple label offset in PiePlot;
157- cached minY and maxY in TimeSeries.createCopy();
158- scaling issues for charts copied to the clipboard;
159- use of timezone in TimeTableXYDataset constructor;
160- duplicate series names in XYSeriesCollection;
161- HistogramDataset fires a change event in addSeries();
162- check visibility of main chart title before drawing it;
163- fixed serialization of PowerFunction2D, NormalDistributionFunction2D,
164  and LineFunction2D;
165- item label positioning for the AreaRenderer class when the plot has an
166  horizontal orientation.
167
168
169JFreeChart 1.0.13
170-----------------
17120 April 2009
172
173******************************************************************************
174* SPECIAL NOTICE:  There will be a birds-of-a-feather session for JFreeChart *
175* at this year's JavaOne conference in San Francisco.  The session is        *
176* scheduled for 6.45pm to 7.35pm on Wednesday 3 June.                        *
177******************************************************************************
178
179This release contains:
180
181- updates to the ChartPanel class to support copying charts to the clipboard,
182  panning and mouse-wheel zooming, and an overlay mechanism that supports
183  crosshairs;
184- enhancements to the auto-range calculation for axes, providing the ability
185  to use subranges only and also to skip hidden series;
186- updates for many of the CategoryItemRenderer implementations to ensure that
187  they respect the 'seriesVisible' flags;
188- an improvement to the TimeSeries class so that it is no longer necessary to
189  specify the time period type in the constructor;
190- a new SamplingXYLineRenderer for improving the performance of time series
191  charts with large datasets;
192- the XYSeries/XYSeriesCollection classes now cache the minimum and maximum
193  data values to improve the performance of charts with large datasets;
194- entities are now created for the chart, data area and axes, allowing mouse
195  clicks to be detected for these regions;
196- added a bar alignment factor to the XYBarRenderer class;
197- a new 'errorIndicatorStroke' field for the StatisticalLineAndShapeRenderer
198  and XYErrorRenderer classes;
199- added a new HeatMapDataset interface, DefaultHeatMapDataset implementation,
200  and a HeatMapUtilities class to make it easier to create heat map charts;
201- there is a new flag to allow an XYDataImageAnnotation to be included in the
202  automatic range calculation for the axes;
203- additional attributes in the XYTextAnnotation class;
204- added a sampleFunction2DToSeries() method to the DatasetUtilities class;
205- some changes to the ChartPanel class that help to work around a regression in
206  JRE 1.6.0_10 relating to drawing in XOR mode.  Regarding this final point:
207     * the default value for the useBuffer flag has changed to true, which means
208       that all charts will, by default, be rendered into an off-screen image
209       before being displayed in the ChartPanel;
210     * the zoom rectangle is drawn using XOR mode *only* when the useBuffer
211       flag has been set to false.
212  For most usage, this should improve performance (but at the cost of using more
213  memory for each ChartPanel used in your application);
214
215Bug Fixes:
216
2172690293 : Problem with Javascript escape characters;
2182617557 : StandardDialScale ignored tickLabelPaint;
2192612649 : Stroke selection in plot property editor;
2202583891 : SWTGraphics2D.fillPolygon() not implemented;
2212564636 : Month constructor ignores Locale;
2222502355 : ChartPanel sending multiple events;
2232490803 : PeriodAxis.setRange() method doesn't take into account that the axis
224          displays whole periods;
225
226In addition, a bug in the SlidingCategoryDataset class has been fixed, the
227correct outline paint is now used by GradientXYBarPainter, a new method
228has been added to the ImageMapUtilities class to escape special characters
229in Javascript strings to avoid problems with the OverLIB and DynamicDrive
230tooltips, and there are some important fixes in the LogAxis class.
231
232This release passes 2110 JUnit tests (0 failures) on JRE 1.6.0_12.
233
234
235JFreeChart 1.0.12
236-----------------
23731 December 2008
238
239This release adds support for minor tick marks, mapping datasets to more than
240one axis, an important fix for the XYSeries class (relating to the
241addOrUpdate() method) plus numerous other bug fixes.
242
243This release passes 1996 JUnit test (0 failures) on JRE 1.6.0_10.
244
245API Adjustments:
246- CategoryPlot : added mapDatasetToDomainAxes() and mapDatasetToRangeAxes()
247    methods;
248- Month : added a new constructor Month(Date, TimeZone, Locale) and deprecated
249    Month(Date, TimeZone);
250- Quarter : added a new constructor Quarter(Date, TimeZone, Locale) and
251    deprecated Quarter(Date, TimeZone);
252- XYPlot : added mapDatasetToDomainAxes() and mapDatasetToRangeAxes() methods;
253- Year : added a new constructor Year(Date, TimeZone, Locale) and deprecated
254    Year(Date, TimeZone);
255
256Bug Fixes:
2572471906 : XYAreaRenderer with dashed outline - performance problem;
2582452078 : StackedAreaChart has gaps;
2592275695 : NullPointerException for SubCategoryAxis on plot with null dataset;
2602221495 : XYLineAnnotation with dashed stroke;
2612216511 : SWTBarChartDemo1 throws RuntimeException;
2622201869 : DateAxis tick label position error;
2632121818 : Label link lines for very thin RingPlot;
2642113627 : XYStepRenderer item labels;
2651955483 : XYSeries.addOrUpdate() problem.
266
267Also fixed StackedXYBarRenderer which was ignoring the shadowsVisible attribute.
268
269
270JFreeChart 1.0.11
271-----------------
27219 September 2008
273
274This release features a new chart theming mechanism to allow charts to be
275restyled conveniently, a new BarPainter mechanism to enhance the appearance of
276bar charts, a new XYShapeRenderer class, a scaling facility for the
277XYDrawableAnnotation for drawing images within specific data coordinates, some
278new classes (XYTaskDataset, XYDataImageAnnotation and XYTitleAnnotation), a
279modification to the Year class to support an extended range, and various bug
280fixes and API improvements.  There is an important bug fix for the
281StackedBarRenderer3D class (see bug 2031407).
282
283This release passes 1,961 JUnit tests (0 failures) on JRE 1.6.0_07.
284
285API Adjustments:
286- AbstractRenderer - added clearSeriesPaints() and clearSeriesStrokes()
287    methods;
288- BarRenderer - added shadowPaint attribute;
289- CategoryAxis - added getCategoryMiddle() method;
290- CategoryPlot - added getRendererCount() method;
291- ChartFactory - added get/setChartTheme() methods;
292- ChartPanel - increased default maximum drawing width and height;
293- ChartTheme - new interface;
294- ChartUtilities - added applyCurrentTheme() method;
295- CompositeTitle - added backgroundPaint attribute;
296- GradientBarPainter - new class;
297- LegendTitle - added getWrapper() method;
298- OHLCSeriesCollection - added xPosition attribute;
299- PaintScaleLegend - new subdivisions field;
300- PiePlot - added autoPopulate flags, and methods to clear section attributes;
301- Plot - added setDrawingSupplier() method;
302- RegularTimePeriod - the DEFAULT_TIME_ZONE field has been deprecated in this
303    release;
304- RelativeDateFormat - added methods to control formatting of hours and
305    minutes - see patch 2033092;
306- StandardChartTheme - new class;
307- XYItemRendererState - new methods;
308- XYPlot - added getRendererCount() method;
309- XYShapeRenderer - new class;
310- XYTaskDataset - new class.
311
312Patches:
3131997549 : Status calls to XYItemRendererState [Ulrich Voigt];
3142006826 : CompositeTitle drawing fix;
3152033092 : Additional formatters for RelativeDateFormat [Cole Markham];
316
317Bug Fixes:
3181994355 : ChartComposite listener type;
3192031407 : Incorrect rendering in StackedBarRenderer3D;
3202033721 : WaferMapRenderer;
3212051168 : No key in LegendItemEntity for pie charts;
322
323Also fixed drawing of alternate grid bands in SymbolAxis, the totalWeight
324calculation in the CombinedXXXPlot classes, a NullPointerException in the
325XYPlot class when drawing quadrants, outline visibility in the
326CategoryPlot class, and auto-range calculations with XYBarRenderer.
327
328
329JFreeChart 1.0.10
330-----------------
3319 June 2008
332
333This release contains various bug fixes and minor enhancements to JFreeChart.
334PiePlot labelling has been enhanced (new curve options, and more robust bounds
335checking).  The BoxAndWhiskerRenderer now has a maximumBarWidth attribute, the
336XYStepRenderer has a new stepPoint attribute.  The RelativeDateFormat class
337has new options.  There are new dataset classes (SlidingCategoryDataset and
338SlidingGanttDataset) that permit a subset of categories to be plotted, and
339allow charts based on these datasets to simulate scrolling.  There is a new
340ShortTextTitle class.
341
342This release passes 1,929 JUnit tests (0 failures) on JRE 1.6.0_03.
343
344
345API Adjustments:
346
347- BoxAndWhiskerRenderer - added maximumBarWidth attribute (see patch 1866446);
348- ChartPanel - the zoomPoint attribute has been changed from Point to Point2D;
349- DatasetUtilities - iterateCategoryRangeBounds() is deprecated, the method
350    has been renamed iterateRangeBounds(CategoryDataset) for consistency;
351- DefaultKeyedValue - the constructor now prevents a null key;
352- LogFormat - now has a 'powerLabel' attribute;
353- ShortTextTitle - a new title class;
354- SlidingCategoryDataset - new class;
355- SlidingGanttDataset - new class;
356- TimeSeriesCollection - getSeries(String) changed to getSeries(Comparable);
357- XIntervalSeriesCollection - added series removal methods;
358- YIntervalSeriesCollection - added series removal methods;
359- XYIntervalSeriesCollection - added series removal methods;
360
361PublicCloneable is now implemented by a number of classes that didn't
362previously implement the interface - this should improve the reliability of
363chart cloning.
364
365Patches:
366
3671943021 : Fix for MultiplePiePlot [Brian Cabana];
3681925366 : Speed improvement for DatasetUtilities [Rafal Skalny];
3691918209 : LogAxis createTickLabel() changed from private to
370          protected [Andrew Mickish];
3711914411 : Simplification of plot event notification [Richard West];
3721913751 : XYPlot and CategoryPlot addMarker() methods with
373          optional notification [Richard West];
3741902418 : Bug fix for LogAxis vertical labels [Andrew Mickish];
3751901599 : Fixes for XYTitleAnnotation [Andrew Mickish];
3761891849 : New curve option for pie chart label links [Martin Hilpert];
3771874890 : Added step point to XYStepRenderer [Ulrich Voigt];
3781873328 : Enhancements to RelativeDateFormat [Michael Siemer];
3791871902 : PolarPlot now has angleTickUnit attribute [Martin Hoeller];
3801868745 : Fix label anchor points on LogAxis [Andrew Mickish];
3811866446 : Added maximumBarWidth to BoxAndWhiskerRenderer [Rob Van der Sanden];
382
383Bug Fixes:
384
3851932146 - PeriodAxis.setRange() doesn't notify listeners;
3861927239 - Fix calculation of cumulative range;
3871926517 - Bugs in data range calculation for combined plots;
3881920854 - PiePlot3D labels drawn multiple times;
3891897580 - Fix for DefaultIntervalCategoryDataset;
3901892419 - Wrong default for minor tick count in LogAxis;
3911880114 - VectorRenderer doesn't work for horizontal plot orientation;
3921873160 - DialPlot clipping issues;
3931868521 - Problem saving charts to JPEG format;
3941864222 - Error on TimeSeries createCopy() method;
395
396The DatasetUtilities.sampleFunction2D() has been changed to sample the correct
397number of points - you should check any code that calls this method.  The
398XYBlockRenderer class now generates entities.  Bugs in the removeDomainMarker()
399and removeRangeMarker() methods in the CategoryPlot and XYPlot classes have
400been fixed.  A bug in the TimePeriodValues range calculation has been fixed.
401Fixes were applied to the clone() methods in the TaskSeries and
402TaskSeriesCollection classes.
403
404New Experimental Features:
405
406Two new classes CombinedCategoryPlot and CombinedXYPlot have been added to the
407'experimental' source tree - these were contributed by Richard West (see
408patch 1924543).
409
410
411JFreeChart 1.0.9
412----------------
4134 January 2008
414
415This release contains an important security patch as well as various bug fixes
416and minor enhancements.  Regarding the security patch, please see the
417following advisory:
418
419http://www.rapid7.com/advisories/R7-0031.jsp
420
421Note that the fix incorporated in the special JFreeChart 1.0.8a release was
422flawed in that it broke the URLs in the HTML image maps generated by
423JFreeChart.  Further amendments have been made in this release to fix this
424problem.
425
426API Adjustments:
427
428A number of classes have new methods.  Nothing has been removed or deprecated:
429
430- HashUtilities - added hashCode() methods for BooleanList, PaintList and
431                  StrokeList;
432- ImageMapUtilities - added htmlEscape(String);
433- IntervalMarker - added new constructor;
434- Range - added intersects(Range) and scale(Range, double);
435- TextTitle - added protected methods arrangeNN(), arrangeFN() and arrangeRN();
436- XYDataItem - added getXValue() and getYValue() methods;
437- XYPlot - added setFixedDomainAxisSpace(AxisSpace, boolean) and
438           setFixedRangeAxisSpace(AxisSpace, boolean);
439- XYSeriesCollection - added getSeries(Comparable) method.
440
441
442Bug Fixes:
443
4441852525 - CandlestickChart.getCategoryPlot() - ClassCastException;
4451851416 - testGetFirstMillisecondWithTimeZone fails in 1.0.8a;
4461849333 - 1.0.8a breaks URLs in HTML image maps;
4471848961 - GroupedStackedBarRenderer works only for primary dataset;
4481846063 - Endless loop in paint of XYPlot;
4491840139 - Cross-site scripting vulnerabilities in image map code;
4501837979 - Background image not shown with SWT;
4511460195 - ChartEntity.getImageMapAreaTag() needs nohref;
4521400917 - OverLIBToolTipTagFragmentGenerator not escaping single quote;
4531363043 - Escape Image Map Data;
4541178601 - AbstractRenderer.hashcode() method returns the same value;
455
456In addition, a bug in the constructor for the Week class has been fixed.
457
458
459JFreeChart 1.0.8
460----------------
46123 November 2007
462
463This release is primarily a bug fix release, correcting a problem with pie
464chart labelling, a regression in the DefaultCategoryDataset class (and
465underlying KeyedValues2D class), and a cloning bug in the TimeSeries class.
466In addition, the StatisticalBarRenderer class has a new 'errorIndicatorStroke'
467field and has been updated to support gradients, the StandardDialScale has had
468some missing accessor methods implemented, and an override field in the
469StandardXYItemRenderer class has been deprecated.  Plus some warnings reported
470by FindBugs 1.3.0 have been addressed.
471
472
473JFreeChart 1.0.7
474----------------
47514 November 2007
476
477This release features new classes DialPlot and LogAxis (previously in
478experimental), initial support for minor tick units, a new anchored zooming
479option for the ChartPanel class, optional simple labelling on pie charts,
480improvements to the "statistical" datasets and underlying data structures, and
481numerous bug fixes.
482
483API Adjustments:
484
485- CategoryAxis - added getCategorySeriesMiddle() method;
486- CategoryPlot - added methods to remove markers;
487- ChartPanel - added defaultDirectorForSaveAs attribute;
488- DialPlot - new class, an alternative to MeterPlot;
489- LogAxis - new class, an alternative to LogarithmicAxis;
490- NumberTick - new constructor that allows specification of the tick type;
491- NumberTickUnit - new constructor to specify the minor tick count;
492- SymbolAxis - new methods get/setGridBandAlternatePaint();
493- TickType - new class;
494- TickUnit - added minorTickCount attribute;
495- ValueTick - added tickType attribute;
496- StandardPieSectionLabelGenerator - new constructors accepting a Locale;
497- StandardPieToolTipGenerator - likewise;
498- CategoryPlot - added getRangeAxisIndex(), zoomDomainAxes() and zoomRangeAxes()
499                 methods;
500- FastScatterPlot - added new zooming methods;
501- PiePlot - new attributes to support simple labelling;
502- PlotUtilities - new class;
503- PolarPlot - added new zooming methods;
504- ThermometerPlot - likewise;
505- XYPlot - added methods to remove markers (patch 1823697--same as for
506           CategoryPlot), and added new zooming methods;
507- Zoomable - added new zooming methods to this interface;
508- LineAndShapeRenderer - added useSeriesOffset and itemMargin attributes;
509- MinMaxCategoryRenderer - implemented equals();
510- XYSplineAndShapeRenderer - new class;
511- LogFormat - new class;
512- ChartFactory - new pie and ring chart creation methods that accept a Locale;
513- ChartPanel - added zoomAroundAnchor attribute;
514- Series - added isEmpty() method;
515- BoxAndWhiskerItem - new convenience constructor;
516- DefaultBoxAndWhiskerCategoryDataset - new remove methods;
517- DefaultStatisticalCategoryDataset - likewise;
518- MeanAndStandardDeviation - added new value accessor methods;
519- TimeTableXYDataset - added clear() method;
520- Week - added new constructor;
521- KeyedObjects - added insertValue() and clear() methods;
522- KeyedObjects2D - added clear() method.
523
524Patches:
525
5261823724 - updated XYDifferenceRenderer to support item labels;
5271827829 - fixed possible NullPointerException in XYBarRenderer;
528
529Bug Fixes:
530
5311767315 - GrayPaintScale.getPaint() uses wrong value;
5321775452 - Inverted XYBarRenderer does not render margins correctly;
5331802195 - Marker.listenerList serializable;
5341779941 - StatisticalBarRenderer NPE;
5351766646 - XYBlockRenderer can't handle empty datasets;
5361763413 - PeriodAxis labels fail to display with setInverted
5371737953 - Zoom doesn't work on LogAxis(Demo1)
5381749124 - JFreeChart not added as TitleChangeListener
539
540
541JFreeChart 1.0.6
542----------------
54315 June 2007
544
545This release features a new VectorRenderer (previously in experimental), a
546generalised XYDifferenceRenderer, better support for hotspots on legend items,
547improved performance for time series charts displaying subsets of data, support
548for GradientPaint in plot backgrounds, plus the usual slew of bug fixes and
549minor feature additions.
550
551API Adjustments:
552
553- CategoryItemEntity - replaced row and column index attributes with row and
554    column key attributes;
555- CategoryItemRenderer - numerous series override settings have been deprecated;
556- DefaultPieDataset - added insertValues() method;
557- HexNumberFormat - new class;
558- LegendItem - added dataset and seriesKey attributes;
559- Plot - added new fillBackground() method to support GradientPaint, and
560    added is/setOutlineVisible() methods;
561- QuarterDateFormat - added GREEK_QUARTERS field plus a new constructor;
562- SimpleHistogramDataset - added clearObservations() and removeAllBins()
563    methods;
564- TimeSeriesCollection - added indexOf() method;
565- URLUtilities - new class;
566- XYItemRenderer - numerous series override settings have been deprecated;
567- XYSeriesCollection - added indexOf() method.
568
569Bug Fixes:
570
5711735508 - ClusteredXYBarRenderer fails with inverted x-axis;
5721726404 - ChartComposite tooltips;
5731713474 - StackedBarRenderer3D doesn't fill shadows;
5741713401 - StackedBarRenderer3D doesn't check drawBarOutline flag;
5751701822 - DefaultBoxAndWhiskerCategoryDataset doesn't follow contracts;
5761698965 - NPE in CombinedDomainXYPlot;
5771690994 - HideSeriesDemo1 does not work;
5781690654 - Bug in removeValue() of DefaultKeyedValues2D;
5791562701 - LegendItemEntity needs dataset index;
5801486299 - Use URLEncoder.encode() for URL generators;
581
582Plus the following bugs that didn't have entries in the database:
583
584- BarRenderer - check for series visibility in getLegendItem();
585- ChartPanel - use correct insets for painting chart buffer to screen, update
586    UI for popup menu if LookAndFeel changes;
587- DateAxis - fixed boundary cases for previousStandardDate() method;
588- LineBorder - only draw border if area has positive dimensions;
589- JFreeChart - should register as a listener with the default legend;
590- StandardXYItemRenderer - fixed a problem where chart entities are created for
591    non-visible items;
592- TimePeriodValuesCollection.getDomainBounds() now computes the bounds
593    correctly;
594- XYLineAndShapeRenderer - fixed a problem where chart entities are created for
595    non-visible items;
596- XYLine3DRenderer - equals() implemented, and serialization fixed;
597- XYTitleAnnotation - fixed equals() method;
598- various resource usage bugs in the experimental ChartComposite class;
599
600
601JFreeChart 1.0.5
602----------------
60323 March 2007
604
605This release features a new DeviationRenderer class, support for item labels
606in StackedXYBarRenderer, tooltips and URLs in the CategoryStepRenderer, and
607many bug fixes.
608
609API Adjustments:
610
611- AbstractCategoryItemRenderer - added createState() method;
612- StackedXYBarRenderer - added get/setRenderAsPercentages() methods;
613- XYIntervalSeries - added getXLowValue(), getXHighValue(), getYLowValue() and
614    getYHighValue();
615- YIntervalSeries - added getYLowValue() and getYHighValue() methods;
616
617Bug Fixes:
618
6191681777 - DefaultCategoryDataset does not clone data;
6201672552 - Zoom rectangle is lost when the chart is repainted;
6211671645 - Crosshair incorrectly positioned in horizontal orientation;
6221669302 - Tick labels in vertical symbol axis;
6231669218 - CategoryPlot.setDomainAxisLocation() ignores parameter;
6241667750 - Clip region not restored in Spider and MeterPlot;
6251663380 - OutputStream not closed;
6261659627 - IntervalMarker with Double.POSITIVE_INFINITY bound;
6271647269 - IntervalMarker with Double.MAX_VALUE as upper bound;
6281594477 - XYBarRenderer does not render bars on LogarithmicAxis;
6291459958 - Log axis zoom function problem;
630 880597 - Zooming ChartPanel with log axes;
631 764561 - Dynamic chart zoom buggy.
632
633Also fixed numerous bugs in equals(), cloning and serialization
634implementations.
635
636
637JFreeChart 1.0.4
638----------------
6399 February 2007
640
641This release features a new XYBlockRenderer class, URLs for pie chart labels
642in HTML image maps, a new dataset implementation for open-high-low-close
643charts, support for gradient paint in ClusteredXYBarRenderer,
644StackedXYBarRenderer and legend graphics, a new anchor attribute for
645XYImageAnnotation, improvements to the experimental SWT support, plus a
646number of additions to the API for usability, and many bug fixes.
647
648API Adjustments:
649
650- DateAxis - added get/setTimeZone() methods;
651- DefaultXYDataset - now implements PublicCloneable;
652- StackedXYAreaRenderer2 - added get/setRoundXValues() methods;
653- StandardXYItemLabelGenerator - added new constructor;
654- StandardXYToolTipGenerator - added new constructor;
655- XYBarDataset - added getUnderlyingDataset() and get/setBarWidth() methods;
656- XYDifferenceRenderer - added roundXCoordinates attribute;
657- XYImageAnnotation - added an image anchor attribute, a new constructor, and
658    several accessor methods;
659- XYSeries - added toArray() method;
660
661Bug Fixes:
662
6631654215 - XYPlot renderer with no corresponding dataset;
6641652640 - RangeMarkers do not update properly;
6651649686 - Crosshairs for StackedXYAreaRenderer;
6661647749 - IllegalArgumentException in SWTAxisEditor;
6671644877 - Replacing series data in DefaultXYDataset;
6681644010 - DateAxis.nextStandardDate() ignores timezone;
6691638678 - DateAxis code uses the default calendar;
6701629382 - Tests fail for jfreechart-1.0.3;
6711624067 - StandardXYToolTipGenerator missing constructor;
6721616583 - Serialize ChartDeleter;
6731612770 - Popup menu in wrong position for SWT ChartComposite;
6741611872 - Minute.previous() returns null for minute == 0;
6751608371 - Tick labels overlap with custom NumberFormat;
6761606205 - Draw shared axis last on combined plots;
6771605207 - IntervalMarker exceeds bounds of data area;
6781605202 - SpiderWebPlot method access;
6791599652 - Inverted StackedBar3D problem;
6801598394 - XYBarDataset hiding its proxied object;
6811564967 - Crosshairs on XYDifferenceRenderer;
6821245305 - NullPointerException in writeImageMap();
6831086307 - Crosshairs on plots with multiple axes.
684
685Also fixed numerous bugs in equals() and clone() methods throughout the API.
686
687
688JFreeChart 1.0.3:
689-----------------
69017 November 2006
691
692This release features several new IntervalXYDataset implementations, some
693significant refactoring of the time period classes (to improve performance
694and correctness), modifications to the PiePlot class to support reordering of
695dataset items, a new event mechanism to allow updating of markers, plus many
696other enhancements, bug fixes and documentation updates.
697
698A new DialPlot implementation has been added to the 'experimental' sources.
699We are looking for people to test this code and provide feedback, so that we
700can stabilize the API and add this code to the main JFreeChart API.
701
702API adjustments:
703
704The following adjustments have been made to the API:
705
706- CategoryLabelEntity - new class;
707- CategoryPointerAnnotation - new class;
708- ChartPanel: added new public method doEditChartProperties();
709- ComparableObjectItem, ComparableObjectSeries - new classes;
710- CrosshairState: added several new accessor methods;
711- DefaultPieDataset: added sortByKeys() and sortByValues() methods;
712- Markers: a change event mechanism has been added to the Marker class and
713  its subclasses;
714- StackedAreaRenderer: added get/setRenderAsPercentages() methods;
715- XIntervalDataItem, XIntervalSeries and XIntervalSeriesCollection - new
716    classes;
717- XYErrorRenderer: new class;
718- XYInterval, XYIntervalDataItem, XYIntervalSeries and
719    XYIntervalSeriesCollection - new classes;
720- YInterval, YIntervalDataItem, YIntervalSeries, YIntervalSeriesCollection and
721    YWithXInterval - new classes.
722
723Bug Fixes:
724
7251578293 - Unused methods in JDBCXYDataset;
7261572478 - BoxAndWhiskerRenderer potential NullPointerException;
7271569094 - XYStepRenderer with horizontal orientation;
7281565168 - Crosshair position incorrect;
7291564977 - DateAxis missing initial tick label;
7301562759 - StatisticalLineAndShapeRenderer constructor ignores arguments;
7311557141 - Bad locale in ServletUtilities;
7321550045 - TimeSeries.removeAgedItems() method problems;
7331549218 - Chart not displaying when all data values are the same and large;
7341450447 - Marker.setAlpha() ignored;
735
736Also fixed URL generation for legend items, tick mark positioning on the
737DateAxis, the equals() method in the AreaRenderer class, hardcoded outline
738attributes in the XYBubbleRenderer, and potential NullPointerExceptions in the
739ChartPanel class.
740
741
742JFreeChart 1.0.2:
743-----------------
744Released on 25 August 2006.
745
746API adjustments:
747
748The following adjustments have been made to the API (there should be no
749breakage of applications coded to the 1.0.0 or 1.0.1 API):
750
751- CategoryToPieDataset: added accessor methods for underlying dataset, extract
752    type and index (feature request 1477915);
753- DefaultXYDataset:  New dataset implementation that uses double[] arrays;
754- DefaultXYZDataset:  New dataset implementation that uses double[] arrays;
755- LegendItemBlockContainer: New container used in legends (enables
756    legend item entities again);
757- MultiplePiePlot:  Added new fields aggregatedItemsKey and
758    aggregatedItemsPaint, plus accessor methods - see bug 1190647;
759- SpiderWebPlot:  Added new fields toolTipGenerator and urlGenerator, plus
760    accessor methods (see patch 1463455);
761- StackedBarRenderer3D:  Added new flag (renderAsPercentages), plus accessor
762    methods, that controls whether the data items are displayed as values or
763    percentages.  Two new constructors are also added (see patch 1459313);
764- XYPolygonAnnotation: Added new accessor methods.
765
766Patches:
767
7681459313 - Add renderAsPercentages option to StackedBarRenderer3D;
7691462727 - Modify SpiderWebPlot to support zero values;
7701463455 - Modify SpiderWebPlot to support mouse clicks, tool tips and URLs;
771
772Bug Fixes:
773
7741514904 - Background image alpha in Plot class;
7751499140 - ClusteredXYBarRenderer with margin not drawing correctly;
7761494936 - LineAndShapeRenderer generates entity for non-visible item;
7771493199 - NPE drawing SpiderWebPlot with null info;
7781480978 - AbstractPieItemLabelGenerator.clone() doesn't clone percentFormat;
7791472942 - DateAxis.equals() broken;
7801468794 - StatisticalLineAndShapeRenderer doesn't draw error bars correctly
781          when the plot has a horizontal orientation;
782        - AbstractCategoryItemRenderer doesn't check seriesVisibleInLegend
783          flag before creating new item;
7841440415 - Bad distribution of pie chart section labels;
7851440346 - Bad manifest entry for JCommon in JFreeChart jar file;
7861435461 - NumberAxis.equals() ignores rangeType field;
7871435160 - XYPointerAnnotation.equals() ignores x and y fields;
7881398672 - LegendItemEntities not working;
7891380480 - StandardXYItemRenderer problems with Double.NaN;
7901190647 - Legend and section color mismatch for MultiplePiePlot.
791
792Miscellaneous Changes:
793
794- Updated CandlestickRenderer, CyclicXYItemRenderer, HighLowRenderer,
795  XYStepAreaRenderer and TimeSeriesURLGenerator to call dataset methods that
796  return double primitive only;
797- Updated XYPolygonAnnotation, adding new accessor methods and fixing problems
798  in the equals()/hashCode() methods;
799- ChartFactory.createStackedXYAreaChart() now uses StackedXYAreaRenderer2, for
800  better handling of negative values;
801- Added crosshair support for XYBarRenderer.
802
803Experimental Code:
804
805In this release, some new (incomplete) classes have been included in the
806org.jfree.experimental.* namespace.  These classes are not part of the
807standard API, but are included for developers to experiment with and provide
808feedback on.  Hopefully in the future, refined versions of these classes will
809be incorporated into the main library.  PLEASE NOTE THAT THE API FOR THESE
810CLASSES IS SUBJECT TO CHANGE.
811
812
813JFreeChart 1.0.1:
814----------------
815Released 27 January 2006.  This is primarily a bug fix release.  In addition,
816there are some API adjustments (there should be no breakage of applications
817coded to the 1.0.0 API).
818
819API adjustments:
820- BarRenderer: added a new flag (includeBaseInRange), plus accessor
821    methods, that controls whether or not the base value for the bar is
822    included in the range calculated by the findRangeBounds() method;
823- BubbleXYItemLabelGenerator: new class;
824- Range: added a new method expandToInclude(Range, double), this is used by
825    the BarRenderer class;
826- TaskSeriesCollection: added two new methods, getSeries(int) and
827    getSeries(Comparable).
828- TimeSeriesCollection:  the domainIsPointsInTime flag has been deprecated.
829    The flag serves no function now that renderers are used to calculate the
830    domain bounds, so you can safely delete any calls to the
831    setDomainIsPointsInTime() method;
832- XYPlot: added a new getAnnotations() method;
833- XYSeries: the update(int, Number) method has been deprecated and a new method
834    updateByIndex(int, Number) has been added;
835
836Bug fixes:
837
8381243050 - XYBarRenderer doesn't show entire range of values for a
839          TimeSeriesCollection;
8401373371 - XYBubbleRenderer doesn't support item labels;
8411374222 - BarRenderer contains JDK 1.4 specific code;
8421374328 - LegendItem serialization problem;
8431377239 - Bad argument checking in Quarter constructor;
8441379331 - Incorrect drawing of TextTitle at LEFT or RIGHT position;
8451386328 - RingPlot entity incorrect;
8461400442 - Inconsistent treatment of null and zero values in PiePlot;
8471401856 - Bad rendering for non-zero base values in BarRenderer;
8481403043 - NullPointerException in CategoryAxis;
8491408904 - NumberAxis3D assumes CategoryPlot;
8501415480 - XYTextAnnotation equals() method doesn't check (x, y);
851
852
853JFreeChart 1.0.0:
854----------------
855Released on 2 December 2005.
856