2013-11-23  David Gilbert  <david.gilbert@object-refinery.com>

    Bug #977:
    * org/jfree/chart/axis/DateAxis.java 
    (DEFAULT_DATE_TICK_UNIT): Deprecated,
    (DateAxis): Replace DEFAULT_DATE_TICK_UNIT with new instance.

2013-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/util/PaintAlpha.java
    (darker): Remove reflection code no longer required,
    (darkerLinearGradientPaint): Likewise,
    (darkerRadialGradientPaint): Likewise,
    (darkerTexturePaint): Likewise.

2013-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/util/DirectionalGradientPaintTransformer.java: New file.

2013-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/data/time/ohlc/OHLCSeries.java
    (add(OHLCItem)): New method.

2013-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/data/general/AbstractDataset.java
    (notify): New flag,
    (AbstractDataset): Initialise notify to true,
    (getNotify): New method,
    (setNotify): Likewise,
    (fireDatasetChanged): Only fire change if notify flag is true.

2013-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/data/xy/XYSeriesCollection.java
    (removeSeries(int)): Ensure VetoableListener is deregistered.

2013-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/data/time/TimeSeriesCollection.java
    (getSeriesIndex): New method,
    (addSeries): Register VetoableListener,
    (removeSeries): Deregister VetoableListener,
    (removeAllSeries): Likewise,
    (vetoableChange): Check that series key does not clash with existing
         names.

2013-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    Bug #1084:
    * org/jfree/chart/block/BorderArrangement.java
    (add): Treat key that is not a RectangleEdge as null.

2013-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    Bug #1109:
    * org/jfree/chart/renderer/category/WaterfallBarRenderer.java
    (drawItem): Use positive bar paint when difference is 0.

2013-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/utils/HMSNumberFormat.java: New class.

2013-11-20  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/xy/XYSplineRenderer.java
    (FillType): New enumeration of fill types,
    (XYSplineState): New class,
    (fillType): New attribute,
    (gradientPaintTransformer): Likewise,
    (XYSplineRenderer(int, FillType)): New constructor,
    (getFillType): New method,
    (setFillType): Likewise,
    (getGradientPaintTransformer): Likewise,
    (setGradientPaintTransformer): Likewise,
    (initialise): Use new XYSplineState class,
    (drawPrimaryLineAsPath): Add filling options,
    (equals): Check new attributes,
    (ControlPoint): Removed.

2013-09-17  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/category/GradientBarPainter.java
    (paintBar): Fix coordinate bug for gradient paint.

----------  JFREECHART 1.0.16 RELEASED ------------------------

2013-09-12  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/LocalizationBundle.properties
    (FILE_EXISTS_CONFIRM_OVERWRITE): New entry,
    (PDF_Files): Likewise,
    (SVG_Files): Likewise,
    * org/jfree/chart/ChartPanel.java
    (SAVE_AS_PNG_COMMAND): New field,
    (SAVE_AS_SVG_COMMAND): Likewise,
    (SAVE_AS_PDF_COMMAND): Likewise,
    (actionPerformed): Handle SVG and PDF options,
    (saveAsSVG): New private method,
    (generateSVG): New method,
    (createSVGGraphics2D): New private method,
    (saveAsPDF): Likewise,
    (isOrsonPDFAvailable): Likewise,
    (writeAsPDF): Likewise,
    (createPopupMenu): Add SVG and PDF options when available,
    * org/jfree/chart/plot/PiePlot.java
    (draw): Check for KEY_SUPPRESS_SHADOW_GENERATION rendering hint,
    * org/jfree/chart/plot/CategoryPlot.java
    (draw): Likewise,
    * org/jfree/chart/plot/XYPlot.java
    (draw): Likewise.

2013-09-12  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/JFreeChart.java
    (KEY_SUPPRESS_SHADOW_GENERATION): new field.

2013-09-12  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/axis/DateAxis.java
    (zoomRange): Prevent axis range from falling below 1 millisecond.

2013-08-30  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java
    (drawItem): Set stroke and paint for drawing lines (bugfix).

2013-08-16  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    (setShadowGenerator): New method override,
    * org/jfree/chart/plot/CombinedRangeCategoryPlot.java
    (setShadowGenerator): Likewise,
    * org/jfree/chart/plot/CombinedDomainXYPlot.java
    (setShadowGenerator): Likewise,
    * org/jfree/chart/plot/CombinedRangeXYPlot.java
    (setShadowGenerator): Likewise.

2013-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/plot/PiePlot.java
    (lookupSectionPaint): Replace reflection code with Java 1.6 equivalent.

2013-08-10  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/data/general/DatasetUtilities.java
    (findYValue): New method,
    (findItemIndicesForX): Likewise.

2013-08-04  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/ChartFactory.java
    (createPieChart): Simplified version (less parameters),
    (createPieChart3D): Likewise, 
    (createBarChart): Likewise, 
    (createStackedBarChart): Likewise,
    (createBarChart3D): Likewise,
    (createStackedBarChart3D): Likewise,
    (createAreaChart): Likewise,
    (createStackedAreaChart): Likewise,
    (createLineChart): Likewise,
    (createLineChart3D): Likewise,
    (createGanttChart): Likewise,
    (createScatterPlot): Likewise,
    (createXYBarChart): Likewise,
    (createXYAreaChart): Likewise,
    (createStackedXYAreaChart): Likewise,
    (createXYLineChart): Likewise,
    (createXYStepChart): Likewise,
    (createXYStepAreaChart): Likewise,
    (createTimeSeriesChart): Likewise,
    (createBubbleChart): Likewise.

2013-08-01  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/axis/Axis.java
    (labelLocation): New field,
    (Axis): Initialise new field,
    (getLabelLocation): New method,
    (setLabelLocation): Likewise,
    (labelLocationX): Likewise,
    (labelLocationY): Likewise,
    (labelAnchorH): Likewise,
    (labelAnchorV): Likewise,
    (drawLabel): Take into account position,
    (drawAttributedLabel): Likewise,
    * org/jfree/chart/axis/AxisLabelLocation.java: New class.

2013-08-01  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/axis/Axis.java
    (attributedLabel): New field,
    (setLabel): Simplified,
    (getAttributedLabel): New method,
    (setAttributedLabel(String)): Likewise,
    (setAttributedLabel(AttributedString)): Likewise,
    (createAttributedLabel(String)): New private method,
    (getLabelEnclosure): Use attributedLabel if not null,¨
    (drawAttributedLabel): New method,
    (equals): Check new attributedLabel field,
    (hashCode): Call super,
    (writeObject): Write attributedLabel,
    (readObject): Read attributedLabel,
    * org/jfree/chart/axis/NumberAxis.java
    (draw): Use attributedLabel if not null,
    * org/jfree/chart/axis/NumberAxis3D.java: Likewise,
    * org/jfree/chart/axis/CategoryAxis.java: Likewise,
    * org/jfree/chart/axis/CategoryAxis3D.java: Likewise,
    * org/jfree/chart/axis/SubCategoryAxis.java: Likewise,
    * org/jfree/chart/axis/DateAxis.java: Likewise,
    * org/jfree/chart/axis/LogAxis.java: Likewise,
    * org/jfree/chart/axis/PeriodAxis.java: Likewise,
    * org/jfree/chart/utils/AttrStringUtils.java: New class.

2013-08-01  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/experimental/swt/SWTGraphics2D.java
    (SWTGraphics2D): Set default stroke,
    (setPaint): Do nothing for null,
    (setColor): Likewise,
    (setBackground): Store color for later, don't update GC now,
    (getBackground): Return stored color,
    (setComposite): Throw IllegalArgumentException for null,
    (setStroke): Likewise,
    (clipRect): Fix to apply intersect operation,
    (rotate(double)): Reimplemented,
    (rotate(double, double, double)): Implemented,
    (shear): Reimplemented,
    (clearRect): Do nothing if background color is null,
    (drawGlyphVector): Implemented,
    (drawString(String, int, int)): Delegate,
    (drawString(String, float, float)): Check for null string,
    (hit): Implemented.

2013-07-25  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/axis/CategoryAxis.java
    (categoryLabelURLs): New field,
    (CategoryAxis): Initialise URL storage,
    (addCategoryLabelURL): New method,
    (getCategoryLabelURL): Likewise,
    (removeCategoryLabelURL): Likewise,
    (clearCategoryLabelURLs): Likewise,
    (drawCategoryLabels): Add URL info,
    (clone): Clone URLs,
    (equals): Test URLs.

2013-07-25  David Gilbert <david.gilbert@object-refinery.com>

    Bug 1107:
    * org/jfree/chart/axis/PeriodAxis.java
    (PeriodAxis): Use timezone when creating default PeriodAxisLabelInfo,
    (drawTickLabels): Apply timezone to date formatter.

2013-07-25  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/axis/PeriodAxisLabelInfo.java
    (PeriodAxisLabelInfo): clone dateFormat,
    (getDateFormat): return clone,
    * org/jfree/chart/axis/PeriodAxis.java
    (drawTickLabels): fetch dateFormat only once.

2013-07-05  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/plot/PolarPlot.java
    (setRadiusMinorGridlinesVisible): Fire change event.

----------  JFREECHART 1.0.15 RELEASED ------------------------

2013-07-04  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (drawAngularGridLines): Check for inverted axis,
    (drawRadialGridLines): Likewise.

2013-07-01  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/annotation/TextAnnotation.java
    (setText): Fire change event.

2012-09-18  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3508799:
    * org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (getLegendItem): Populate seriesKey.

2012-09-15  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/plot/CombinedDomainXYPlot.java
    (add(XYPlot, int)): Use ParamChecks class,
    (remove): Likewise,
    (findSubPlot): Likewise.

2012-09-04  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3555275:
    * org/jfree/chart/axis/ValueAxis.java
    (reserveSpace): Return correct value for axes with a fixed dimension
    specified.

2012-08-23  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3561093:
    * org/jfree/chart/renderer/RendererUtilities.java
    (findLiveItemsLowerBound): changed while loop expression,
    (findLiveItemsUpperBound): likewise.

2012-07-28  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/data/general/Series.java
    (setKey): Update exception argument and Javadocs,
    * org/jfree/data/general/XYSeriesCollection.java
    (vetoableChange) : Call getSeriesIndex() rather than getSeries(),
    * tests/org/jfree/data/xy/junit/XYSeriesCollectionTests.java
    (testSeriesRename): New test method.

2012-07-17  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/data/time/Month.java
    (getFirstMillisecond): Use getTimeInMillis();
    (getLastMillisecond): Likewise;
    * org/jfree/data/time/Year.java
    Likewise;
    * org/jfree/data/time/Quarter.java
    Likewise;
    * org/jfree/data/time/Week.java
    Likewise;
    * org/jfree/data/time/Day.java
    Likewise,
    * org/jfree/data/time/Hour.java
    Likewise,
    * org/jfree/data/time/Minute.java
    Likewise,
    * org/jfree/data/time/Second.java
    Likewise;
    * org/jfree/data/time/Millisecond.java
    Likewise.

2012-07-17  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/AbstractRenderer.java
    Remove use of BooleanUtilities throughout;
    * org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    Likewise.

2012-07-12  David Gilbert <david.gilbert@object-refinery.com>

    (from Leo Leung)
    * org/jfree/chart/LocalisationBundle_ja.properties:
    Updated translations.

2012-07-05  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/encoders/ImageEncoderFactory.java
    (encoders): Change type to Map,
    (init) : Remove JDK 1.3 specific code.

2012-07-05  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/ChartPanel.java
    (setMouseWheelEnabled): Remove reflection only needed for JRE 1.3.1.

2012-07-02  David Gilbert <david.gilbert@object-refinery.com>

    Translations by Leo Leung:
    * org/jfree/chart/LocalisationBundle_ja.properties: New translation file;
    * org/jfree/chart/editor/LocalisationBundle_ja.properties: Likewise;
    * org/jfree/chart/plot/LocalisationBundle_ja.properties: Likewise.

2012-07-01  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/plot/PiePlot.java
    (drawSimpleLabels): Generate label once only (DG);

2012-07-01  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3521736 (optimisation)
    * org/jfree/chart/renderer/xy/DeviationRenderer.java
    (drawItem): Provide initial capacity for GeneralPath.

2012-06-11  David Gilbert <david.gilbert@object-refinery.com>

    Patch 3204823 by DaveLaw
    * org/jfree/chart/plot/PiePlot3D.java
    (drawSide): Use new PaintAlpha class,
    * org/jfree/chart/renderer/category/BarRenderer3D.java
    (drawItem): Likewise,
    * org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (drawStackHorizontal): Likewise,
    (drawStackVertical): Likewise,
    * org/jfree/chart/util/PaintAlpha.java: New class.

2012-05-10  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/xy/XYBarRenderer.java
    (findDomainBounds): call new method in super-class to take account of
    non-visible series,
    (findRangeBounds): likewise;
    * tests/org/jfree/chart/renderer/xy/junit/XYBarRendererTests.java
    (testFindDomainBounds2): new test;
    (testFindRangeBounds2): Likewise.

2012-03-11  Martin Hoeller <martin.hoeller@xss.co.at>

    Patch 3500621 by Simon Kaczor
    * org/jfree/chart/title/LegendTitle
    (sortOrder): New field,
    (getSortOrder): New method,
    (setSortOrder): Likewise,
    (fetchLgendItems): Updated to support new sort order,
    (equals): Likewise.
    * tests/org/jfree/chart/title/LegendTitle
    (testEquals): Adapted for new field.

2012-02-13  Martin Hoeller <martin.hoeller@xss.co.at>

    Bug 3425881/Patch 3450234 by Patrick Schlott/Christoph Schroeder,
    reviewed by Richard West
    * org/jfree/chart/rendered/xy/XYDifferenceRenderer
    (drawItemPass0): Fix problems with identical x-values.

2012-02-08  Martin Hoeller <martin.hoeller@xss.co.at>

    Bug 3484403:
    * org/jfree/chart/axis/DateAxis
    (refreshTicksHorizontal): Fix endless loop,
    (refreshTicksVertical): Likewise;

2012-02-08  Martin Hoeller <martin.hoeller@xss.co.at>

    Bug 3484408:
    * ant/build.xml: fixed maven-bundle task.

2012-01-08  David Gilbert <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/dial/StandardDialScale.java
    (angleToValue): Implemented and removed FIXME.

2012-01-08  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3445507:
    * source/org/jfree/data/time/TimeSeriesCollection.java
    (getRangeBounds(boolean)): New method,
    (getRangeBounds(List, Range, boolean)): Fix combining of ranges.

2012-01-08  David Gilbert <david.gilbert@object-refinery.com>

    * source/org/jfree/data/Range.java
    (combineIgnoringNaN): New method.

2012-01-08  David Gilbert <david.gilbert@object-refinery.com>

    Patch 3463807 by Sebastiao Correia
    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (dispose): Dispose the popup if not null.

2011-12-21  Martin Hoeller <martin.hoeller@xss.co.at>

    Patch 3447161 by Ulrich Voigt/Martin Hoeller:
    * org/jfree/chart/plot/CombinedDomainXYPlot.java:
    (panRangeAxes): new method;
    * org/jfree/chart/plot/CombinedRangeXYPlot.java
    (panDomainAxes): new method;

2011-12-16  Martin Hoeller <martin.hoeller@xss.co.at>

    Add support to hide minor gridlines for PolarPlot:
    * org/jfree/chart/plot/PolarPlot.java
    (radiusMinorGridlinesVisible): New field,
    (isRadiusMinorGridlinesVisible): New method,
    (setRadiusMinorGridlinesVisible): Likewise,
    (buildRadialTicks): Likewise,
    (drawGridlines): Updated to support new flag;

2011-11-12  Martin Hoeller <martin.hoeller@xss.co.at>

    Improvements to axis and plot editors:
    * org/jfree/chart/editor/DefaultValueAxisEditor.java: New file;
    * org/jfree/chart/editor/DefaultLogAxisEditor.java: New file;
    * org/jfree/chart/editor/DefaultPolarPlotEditor.java: New file;
    * org/jfree/chart/editor/DefaultChartEditor.java:
    (constructor): added support for DefaultPolarPlotEditor;
    * org/jfree/chart/editor/DefaultAxisEditor.java
    (constructor): added support for DefaultLogAxisEditor;
    * org/jfree/chart/editor/DefaultNumberAxisEditor.java: refactoring;
    * org/jfree/chart/editor/DefaultPlotEditor.java
    (createPlotPanel): new method,
    (createPlotTabs): new method;
    * org/jfree/chart/editor/LocalizationBundle_ru.properties: addition
    * org/jfree/chart/editor/LocalizationBundle_pt_PT.properties: addition
    * org/jfree/chart/editor/LocalizationBundle_de.properties: addition
    * org/jfree/chart/editor/LocalizationBundle_zh_CN.properties: addition
    * org/jfree/chart/editor/LocalizationBundle_pt_BR.properties: addition
    * org/jfree/chart/editor/LocalizationBundle_es.properties: addition
    * org/jfree/chart/editor/LocalizationBundle_fr.properties: addition
    * org/jfree/chart/editor/LocalizationBundle_nl.properties: addition
    * org/jfree/chart/editor/LocalizationBundle_pl.properties: addition
    * org/jfree/chart/editor/LocalizationBundle.properties: addition

2011-12-03  David Gilbert <david.gilbert@object-refinery.com>

    Bug 2879650:
    * org/jfree/chart/servlet/DisplayChart.java
    (service): Don't display file path in exception.

2011-12-03  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3446965:
    * org/jfree/data/time/TimeSeries.java
    (addOrUpdate): correct update of this.maxY.

----------  JFREECHART 1.0.14 RELEASED ------------------------

2011-11-20  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3440237:
    * org/jfree/chart/plot/CategoryPlot.java
    (CategoryPlot): initialise shadow generator as null;
    (PiePlot): likewise;

2011-11-13  David Gilbert <david.gilbert@object-refinery.com>

    Patch 3435734 by Martin Hoeller:
    * org/jfree/chart/renderer/category/LineRenderer3D.java
    (drawItem): Draw lines in pass 0 and item labels in pass 1;

2011-11-12  Martin Hoeller <martin.hoeller@xss.co.at>

    Bug 3432721:
    * org/jfree/chart/plot/PolarPlot.java
    (translateToJava2D): Fix calculation to work with any axis,
    (translateValueThetaRadiusToJava2D): eliminate duplicate code;
    * tests/org/jfree/chart/plot/PolarPlotTests.java
    (testTranslateToJava2D_NumberAxis): New method,
    (testTranslateToJava2D_NumberAxisAndMargin): New method,
    (testTranslateToJava2D_LogAxis): New method;

2011-11-09  Martin Hoeller <martin.hoeller@xss.co.at>

    Translations provided by Petr Kopac:
    * org/jfree/chart/LocalizationBundle_cs.properties: New file;
    * org/jfree/chart/plot/LocalizationBundle_cs.properties: New file;
    * org/jfree/chart/editor/LocalizationBundle_cs.properties: New file;

2011-11-09  Martin Hoeller <martin.hoeller@xss.co.at>

    Bug 3433405:
    * org/jfree/chart/renderer/category/LineRenderer3D.java
    (drawItem): Fixed eventually wrong item label position;

2011-11-01  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3432020:
    * org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (clone): Remove duplicated lines.

2011-10-30  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/category/IntervalBarRenderer.java
    (drawInterval): Fix calculation of bar edge;
    * org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    (drawHorizontalItem): Fix calculation of bar edge;
    (drawVerticalItem): Likewise;

2011-10-30  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/StandardChartTheme.java
    (StandardChartTheme(String, boolean)): New method.

2011-10-28  Martin Hoeller <martin.hoeller@xss.co.at>

    Bug 2810220:
    * org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    (drawHorizontalItem): Fixed offset problem with maximalBarWidth,
    (drawVerticalItem): Likewise;

2011-10-28  Martin Hoeller <martin.hoeller@xss.co.at>

    Bug 3428870:
    * org/jfree/chart/annotations/TextAnnotation.java
    (setRotationAnchor): Added missing argument check, Bug #3428870;

2011-10-28  Martin Hoeller <martin.hoeller@xss.co.at>

    Bug 3429707:
    * org/jfree/chart/axis/LogAxis.java
    (refreshTicksHorizontal): Fixed endless loop for 0 TickUnit,
    (refreshTicksVertical): Likewise;

2011-10-19  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3072674:
    * org/jfree/data/statistics/DefaultStatisticalCategoryDataset.java
    (getRangeLowerBound): Check for NaN,
    (getRangeUpperBound): Likewise,
    (getRangeBounds): Call getRangeLowerBound() and getRangeUpperBound().

2011-10-19  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3026341:
    * org/jfree/chart/renderer/xy/XYShapeRenderer.java
    (findDomainBounds): Check for null,
    (findRangeBounds): Likewise.

2011-10-18  David Gilbert <david.gilbert@object-refinery.com>

    Bug 3190615:
    * org/jfree/data/xy/CategoryTableXYDataset.java
    (clear): New method.

2011-10-16  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/plot/PiePlot.java
    (drawItem): Use new Paint lookup,
    (getArcCenter): New protected method,
    (lookupSectionPaint): Handle GradientPaint.

2011-10-16  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/util/ParamChecks.java: New class;
    * org/jfree/data/general/Series.java
    (vetoableChangeSupport): New field,
    (Series(Comparable, String)): Initialise vetoableChangeSupport,
    (setKey): Fire vetoable property change,
    (clone): Initialise vetoableChangeSupport,
    (addVetoableChangeListener): New method;
    * org/jfree/data/xy/XYSeriesCollection.java
    (XYSeriesCollection(XYSeries)): Register listener,
    (addSeries): Check for duplicate key, register listener,
    (removeSeries): Deregister listener,
    (removeAllSeries): Likewise,
    (getSeriesIndex): New method,
    (vetoableChange): New method.

2011-10-16  Martin Hoeller <martin.hoeller@xss.co.at>

    * org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (readObject): Handle fillComposite serialization;
    (writeObject): Likewise.

2011-10-15  David Gilbert <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (getLegendItem):  Added early returns to reduce indentation, updated
    Javadoc.

2011-10-13  Martin Hoeller <martin.hoeller@xss.co.at>

    * pom.xml added

2011-10-11  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/data/time/TimeSeries.java
    (update(RegularTimePeriod, double)): new method.

2011-10-11  Martin Hoeller  <martin.hoeller@xss.co.at>

    Patch 3421088:
    * org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (drawVerticalItem): bugfix for misaligned whiskers.

2011-10-11  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 3237879:
    * org/jfree/chart/plot/RingPlot.java
    (drawItem): Check sectionOutlineVisible flag.

2011-10-10  Martin Hoeller  <martin.hoeller@xss.co.at>

    Bug 3165708:
    * org/jfree/chart/PolarChartPanel.java: localization fix

2011-10-10  Martin Hoeller  <martin.hoeller@xss.co.at>

    Bug 3353913:
    * org/jfree/chart/plot/CompassPlot.java: localization fix
    * org/jfree/chart/plot/PiePlot3D.java: localization fix
    * org/jfree/chart/plot/LocalizationBundle_de.properties: addition
    * org/jfree/chart/plot/LocalizationBundle_ru.properties: addition
    * org/jfree/chart/plot/LocalizationBundle_nl.properties: addition
    * org/jfree/chart/plot/LocalizationBundle_pl.properties: addition
    * org/jfree/chart/plot/LocalizationBundle_zh_CN.properties: addition
    * org/jfree/chart/plot/LocalizationBundle_es.properties: addition
    * org/jfree/chart/plot/LocalizationBundle_pt_PT.properties: addition
    * org/jfree/chart/plot/LocalizationBundle_fr.properties: addition
    * org/jfree/chart/plot/LocalizationBundle.properties: addition
    * org/jfree/chart/ChartPanel.java: localization fix
    * org/jfree/chart/LocalizationBundle_de.properties: addition
    * org/jfree/chart/LocalizationBundle_zh_TW.properties: addition
    * org/jfree/chart/LocalizationBundle_zh_CN.properties: addition
    * org/jfree/chart/LocalizationBundle_pt_BR.properties: addition
    * org/jfree/chart/LocalizationBundle_es.properties: addition
    * org/jfree/chart/LocalizationBundle_ru.properties: addition
    * org/jfree/chart/LocalizationBundle_pt_PT.properties: addition
    * org/jfree/chart/LocalizationBundle_fr.properties: addition
    * org/jfree/chart/LocalizationBundle_nl.properties: addition
    * org/jfree/chart/LocalizationBundle_pl.properties: addition
    * org/jfree/chart/LocalizationBundle_it.properties: addition
    * org/jfree/chart/LocalizationBundle.properties: addition

2011-10-07  Martin Hoeller  <martin.hoeller@xss.co.at>

    Bug 3035289/Patch 3035325:
    * source/org/jfree/chart/renderer/xy/StackedXYBarRenderer.java
    (drawItem): check if series and item are visible

2011-10-07  Martin Hoeller  <martin.hoeller@xss.co.at>

    * source/org/jfree/chart/renderer/PolarItemRenderer.java
    (useFillPaint): New field,
    (legendLine): Likewise;
    (connectFirstAndLastPoint): New method,
    (toolTipGeneratorList): Likewise,
    (baseToolTipGenerator): Likewise,
    (urlGenerator): Likewise,
    (legendItemToolTipGenerator): Likewise,
    (legendItemURLGenerator): Likewise,
    (getConnectFirstAndLastPoint): Likewise,
    (setConnectFirstAndLastPoint): Likewise,
    (getUseFillPaint): Likewise,
    (setUseFillPaint): Likewise,
    (getLegendLine): Likewise,
    (setLegendLine): Likewise,
    (getToolTipGenerator): Likewise,
    (getSeriesToolTipGenerator): Likewise,
    (setSeriesToolTipGenerator): Likewise,
    (getBaseToolTipGenerator): Likewise,
    (setBaseToolTipGenerator): Likewise,
    (getURLGenerator): Likewise,
    (setURLGenerator): Likewise,
    (getLegendItemToolTipGenerator): Likewise,
    (setLegendItemToolTipGenerator): Likewise,
    (getLegendItemURLGenerator): Likewise,
    (setLegendItemURLGenerator): Likewise.
    * source/org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (getToolTipGenerator): New method,
    (getSeriesToolTipGenerator): Likewise,
    (setSeriesToolTipGenerator): Likewise,
    (getBaseToolTipGenerator): Likewise,
    (setBaseToolTipGenerator): Likewise,
    (getURLGenerator): Likewise,
    (setURLGenerator): Likewise.
    * source/org/jfree/chart/plot/PolarPlot.java
    (angleOffset): New field,
    (counterClockwise): Likewise;
    (getAxisCount): New method,
    (getDatasetCount): Likewise,
    (getAngleOffset): Likewise,
    (setAngleOffset): Likewise,
    (isCounterClockwise): Likewise,
    (setCounterClockwise): Likewise,
    (getAxisIndex): Likewise,

2011-10-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (lineTo): New method;
    (moveTo): New method;
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (drawItem): Replace GeneralPath lineTo() and moveTo();
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    (drawItem): Replace GeneralPath lineTo() and moveTo();

2011-10-06  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 3418287
    * tests/org/jfree/chart/util/junit/RelativeDateFormatTests.java
    (setUp): New method;
    (tearDown): New method.

2010-03-30  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2954302:
    * source/org/jfree/chart/annotation/CategoryPointerAnnotation.java
    (draw): Modified calculation of pointer line.

2010-02-16  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2952086 by Martin Hoeller:
    * source/org/jfree/chart/renderer/xy/XYShapeRenderer.java
    (findZBounds): New method,
    * source/org/jfree/data/general/DatasetUtilities.java
    (findZBounds(XYZDataset): New method,
    (findZBounds(XYZDataset, boolean)): Likewise,
    (findZBounds(XYZDataset, List, Range, boolean)): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/XYShapeRendererTests.java
    (testFindZBounds): New method.

2010-02-09  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2946521:
    * source/org/jfree/chart/plot/dial/StandardDialScale.java
    (StandardDialScale): Check 'majorTickIncrement' argument.

2010-02-09  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2947660:
    * source/org/jfree/chart/renderer/category/AbstractCategoryRenderer.java
    (getLegendItems): Fix null check.

2009-12-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (getLegendItem): Handle multiple datasets,
    * source/org/jfree/chart/plot/PolarPlot.java
    (fixedLegendItems): New field,
    (getFixedLegendItems): New method,
    (setFixedLegendItems): Likewise,
    (getIndexOf(PolarItemRenderer)): Likewise,
    (getLegendItems): Handle multiple datasets,
    (equals): Updated for new fields.

2009-12-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java
    (drawVerticalItems): Check for null outliers.

2009-12-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/HistogramDataset.java
    (addSeries): Fire dataset change event.

2009-11-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PolarPlot.java
    (axis): Removed,
    (dataset): Likewise,
    (renderer): Likewise,
    (axes): New field,
    (axisLocations): Likewise,
    (datasets): Likewise,
    (renderers): Likewise,
    (datasetToAxesMap): Likewise,
    (PolarPlot(XYDataset, ValueAxis, PolarItemRenderer)): Initialise new fields,
    (getAxis): Delegate to new method,
    (ValueAxis getAxis(int)): New method,
    (setAxis(ValueAxis)): Delegate to new method,
    (setAxis(int, ValueAxis)): New method,
    (setAxis(int, ValueAxis, boolean)): Likewise,
    (getAxisLocation): New method,
    (getAxisLocation(int)): Likewise,
    (setAxisLocation(PolarAxisLocation)): Likewise,
    (setAxisLocation(PolarAxisLocation, boolean)): Likewise,
    (getDataset): Delegate to new method,
    (getDataset(int)): New method,
    (setDataset(XYDataset)): Delegate to new method,
    (setDataset(int, XYDataset)): New method,
    (indexOf(XYDataset)): New method,
    (getRenderer): Delegate to new method,
    (getRenderer(int)): New method,
    (setRenderer(PolarItemRenderer)): Delegate to new method,
    (setRenderer(int, PolarItemRenderer)): New method,
    (setRenderer(int, PolarItemRenderer, boolean)): New method,
    (mapDatasetToAxis(int, int)): New method,
    (mapDatasetToAxes(int, List)): New method,
    (checkAxisIndices(List)): New private method,
    (getAxisForDataset(int)): New method,
    (draw): Updated to support multiple datasets, axes and renderers,
    (drawAxis): Handle alternative axis locations,
    (render): Handle multiple datasets,
    (drawGridlines): Fetch primary axis,
    (zoom): Added FIXME,
    (getDataRange): Likewise,
    (datasetChanged): Likewise,
    (getLegendItems): Likewise,
    (getSeriesCount): Deprecated,
    (equals): Updated for new fields,
    (clone): Likewise,
    (readObject): Likewise,
    (zoomRangeAxes): Added FIXME,
    (translateToJava2D): New method,
    (translateValueThetaRadiusToJava2D): Deprecated,
    (getMaxRadius): Likewise,
    (drawAxis): Likewise,
    * source/org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (drawSeries): Fetch appropriate axis,
    (drawAngularGridLines): Update for deprecated method,
    * source/org/jfree/chart/plot/PolarAxisLocation.java: New file.

2009-11-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/MouseWheelHandler.java
    (mouseWheelMoved): Handle PiePlot,
    * source/org/jfree/chart/demo/PieChartDemo1.java
    (createDemoPanel): Enable mouse wheel,
    * source/org/jfree/chart/plot/PiePlot.java
    (handleMouseWheelRotation): New method.

2009-11-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractCategoryItemRenderer.java
    (getLegendItems): Check series rendering order in plot,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (getLegendItems): Use getLegendItems() method in each renderer.

2009-11-02  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2876406:
    * source/org/jfree/data/time/TimeTableXYDataset.java
    (add): Changed String parameter to Comparable,
    (remove): Likewise.

2009-09-28  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2868608 by Peter Becker:
    * source/org/jfree/chart/renderer/BoxAndWhiskerRenderer.java
    (whiskerWidth): New field,
    (BoxAndWhiskerRenderer): Set new field default,
    (getWhiskerWidth): New method,
    (setWhiskerWidth): Likewise,
    (drawHorizontalItem): Use new field,
    (drawVerticalItem): Likewise,
    (equals): Check new flag.

2009-09-28  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2868585 by Peter Becker:
    * source/org/jfree/chart/renderer/BoxAndWhiskerRenderer.java
    (useOutlinePaintForWhiskers): New field,
    (getUseOutlinePaintForWhiskers): New method,
    (setUseOutlinePaintForWhiskers): Likewise,
    (drawHorizontalItem): Use new flag,
    (drawVerticalItem): Likewise,
    (equals): Check new flag.

2009-09-28  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2868557:
    * source/org/jfree/chart/renderer/BoxAndWhiskerRenderer.java
    (setMedianVisible): Fire change event.

2009-09-16  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2849731:
    * source/org/jfree/chart/DatasetUtilities.java
    (iterateRangeBounds(XYDataset, boolean)): For IntervalXYDataset, include
    regular value and account for nulls / Double.NaN.

2009-09-10  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2849731:
    * source/org/jfree/chart/DatasetUtilities.java
    (iterateRangeBounds(CategoryDataset, boolean)): For IntervalCategoryDataset
    look at regular value, and account for nulls.

2009-09-10  David Gilbert  <david.gilbert@object-refinery.com>

    Bug fix by Jim Goodwin:
    * source/org/jfree/chart/MouseWheelHandler.java
    (handleZoomable): Respect domain/rangeZoomable fields in ChartPanel.

2009-09-04  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2850344 by Martin Hoeller:
    * source/org/jfree/chart/plot/PolarPlot.java
    (margin): New field,
    (PolarPlot): Initialise new field,
    (getMargin): New method,
    (setMargin): Likewise,
    (refreshAngleTicks): Set label anchors according to angle,
    (draw): Use margin attribute,
    (equals): Updated for margin,
    (translateValueThetaRadiusToJava2D): Use new margin attribute,
    * source/org/jfree/chart/renderer/DefaultPolarRenderer.java
    (drawOutlineWhenFilled): New attribute,
    (fillComposite): Likewise,
    (shapesVisible): Likewise,
    (DefaultPolarItemRenderer): Initialise new fields,
    (drawSeries): Use new attributes,
    (drawAngularGridlines): Use new tick label anchors,
    (getDrawOutlineWhenFilled): New method,
    (setDrawOutlineWhenFilled): Likewise,
    (getFillComposite): Likewise,
    (setFillComposite): Likewise,
    (getShapesVisible): Likewise,
    (setShapesVisible): Likewise,
    (equals): Updated for new fields.

2009-09-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (drawSimpleLabels): Make use of simpleLabelOffset attribute.

2009-09-01  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2840132:
    * source/org/jfree/chart/renderer/AbstractXYItemRenderer.java
    (drawAnnotations): Set renderer index.

2009-08-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (createCopy): Clear cached minY and maxY values.

2009-08-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Plot.java
    (DEFAULT_OUTLINE_STROKE): Changed default cap and join.

2009-07-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Plot.java
    (drawBackgroundImage): Clip to data area.

2009-07-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/NumberAxis.java
    (createStandardTickUnits): Added additional units for small tick sizes.

2009-07-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (ignoreZeroValues): New flag,
    (getIgnoreZeroValues): New method,
    (setIgnoreZeroValues): Likewise,
    (createStackedValueList): Removed static modifier and check value of new
    flag,
    (equals): Check value of new flag,
    (hashCode): New method override.

2009-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (clone): Update plot references in cloned renderers,
    * source/org/jfree/chart/plot/XYPlot.java
    (clone): Likewise.

2009-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (paintComponent): Clear off screen buffer to fully transparent.

2009-06-29  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (draw): Check the visibility of the main chart title before drawing it.

2009-06-29  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (draw):  Add axis entity before drawing labels.

2009-06-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeriesCollection.java
    (clone): New method override.

2009-06-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/ohlc/OHLCSeriesCollection.java
    (removeSeries(int)): New method,
    (removeSeries(OHLCSeries)): Likewise,
    (removeAllSeries): Likewise.

2009-06-24  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2809117 by Peter Kolb:
    * source/org/jfree/chart/annotations/AbstractAnnotation.java: New file,
    * source/org/jfree/chart/annotations/AbstractXYAnnotation.java:
    Now extends AbstractAnnotation,
    * source/org/jfree/chart/annotations/Annotation.java: New file,
    * source/org/jfree/chart/annotations/CategoryAnnotation.java:
    Now extends Annotation,
    * source/org/jfree/chart/annotations/CategoryLineAnnotation.java
    Now extends AbstractAnnotation,
    (setCategory1): Fire change event,
    (setValue1): Likewise,
    (setCategory2): Likewise,
    (setValue2): Likewise,
    (setPaint): Likewise,
    (setStroke): Likewise,
    * source/org/jfree/chart/annotations/CategoryPointerAnnotation.java
    (setAngle): Fire change event,
    (setTipRadius): Likewise,
    (setBaseRadius): Likewise,
    (setLabelOffset): Likewise,
    (setArrowLength): Likewise,
    (setArrowWidth): Likewise,
    (setArrowStroke): Likewise,
    (setArrowPaint): Likewise,
    * source/org/jfree/chart/annotations/CategoryTextAnnotation.java
    (setCategory): Fire change event,
    (setCategoryAnchor): Likewise,
    (setValue): Likewise,
    * source/org/jfree/chart/annotations/TextAnnotation.java
    (setFont): Fire change event,
    (setPaint): Likewise,
    (setTextAnchor): Likewise,
    (setRotationAnchor): Likewise,
    (setRotationAngle): Likewise,
    * source/org/jfree/chart/annotations/XYAnnotation.java:
    Now extends Annotation,
    * source/org/jfree/chart/annotations/XYPointerAnnotation.java
    (setAngle): Fire change event,
    (setTipRadius): Likewise,
    (setBaseRadius): Likewise,
    (setLabelOffset): Likewise,
    (setArrowLength): Likewise,
    (setArrowWidth): Likewise,
    (setArrowStroke): Likewise,
    (setArrowPaint): Likewise,
    * source/org/jfree/chart/annotations/XYTextAnnotation.java
    (setFont): Fire change event,
    (setPaint): Likewise,
    (setTextAnchor): Likewise,
    (setRotationAnchor): Likewise,
    (setRotationAngle): Likewise,
    (setX): Likewise,
    (setY): Likewise,
    (setBackgroundPaint): Likewise,
    (setOutlinePaint): Likewise,
    (setOutlineStroke): Likewise,
    (setOutlineVisible): Likewise,
    * source/org/jfree/chart/annotations/XYTitleAnnotation.java
    (setMaxWidth): Fire change event,
    (setMaxHeight): Likewise,
    * source/org/jfree/chart/event/AnnotationChangeEvent.java: New file,
    * source/org/jfree/chart/event/AnnotationChangeListener.java: New file,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (annotationChanged): New method,
    (addAnnotation): Add listener,
    (removeAnnotation): Clear listener,
    (clearAnnotations): Clear listeners,
    * source/org/jfree/chart/plot/Plot.java
    (annotationChanged): New method,
    * source/org/jfree/chart/plot/XYPlot.java
    (annotationChanged): New method,
    (addAnnotation): Add listener,
    (removeAnnotation): Clear listener,
    (clearAnnotations): Clear listeners,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (annotationChanged): New method,
    (addAnnotation): Add listener,
    (removeAnnotation): Clear listener,
    (removeAnnotations): Clear listeners.

2009-06-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/ohlc/OHLCSeries.java
    (remove(int)): New method override.

2009-06-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (useFillPaint): New attribute,
    (gradientTransformer): Likewise,
    (XYAreaRenderer): Initialise new fields,
    (getUseFillPaint): New method,
    (setUseFillPaint): Likewise,
    (getGradientTransformer): Likewise,
    (setGradientTransformer): Likewise,
    (drawItem): Handle gradient transform,
    (equals): Updated for new fields,
    (hashCode): New method.

2009-06-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYDataItem.java
    (clone): Rewritten so it doesn't declare CloneNotSupportedException,
    * source/org/jfree/data/xy/XYSeries.java
    (add(XYDataItem, boolean)): Clone item before adding,
    (getDataItem(int)): Return a clone,
    (getRawDataItem): New method,
    (getX): Call getRawDataItem(),
    (getY): Likewise,
    (update): Likewise,
    (addOrUpdate(Number, Number)): Delegate to new method,
    (addOrUpdate(XYDataItem)): New method,
    (hashCode): Call getRawDataItem(),
    * source/org/jfree/data/XYSeriesCollection.java
    (getX): Simplified,
    (getY): Likewise,
    * source/org/jfree/data/DefaultTableXYDataset.java
    (getX): Simplified,
    (getY): Likewise.

2009-06-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (addOrUpdate(RegularTimePeriod, Number)): Delegate to new method,
    (addOrUpdate(TimeSeriesDataItem)): New method.

2009-06-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (getDataItem(int)): Return a clone,
    (getDataItem(RegularTimePeriod)): Likewise,
    (getRawDataItem(int)): New method,
    (getRawDataItem(RegularTimePeriod)): Likewise,
    (getTimePeriod): Call getRawDataItem(),
    (getValue): Likewise,
    (add(TimeSeriesDataItem, boolean)): Clone the item,
    (addAndOrUpdate): Call getRawDataItem(),
    (equals): Tidied up,
    (hashCode): Call getRawDataItem(),
    * source/org/jfree/data/time/MovingAverage.java
    (createMovingAverage): Updates for changes in TimeSeries.java
    (createPointMovingAverage): Likewise,
    * source/org/jfree/data/time/TimeSeriesCollection.java
    (getXValue): Use direct method in TimeSeries,
    (getX): Likewise,
    (getStartX): Likewise,
    (getEndX): Likewise,
    (getY): Likewise,
    * source/org/jfree/data/time/TimeSeriesDataItem.java
    (equals): Cleanup.

2009-06-09  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2802014:
    * source/org/jfree/chart/plot/dial/DialValueIndicator.java
    (maxTemplateValue): New field,
    (DialValueIndicator): Initialise new field,
    (getMaxTemplateValue): New method,
    (setMaxTemplateValue): Likewise,
    (draw): Rewrite for indicator bounds, now supports clipping also,
    (fixToRange): New private method,
    (equals): Check new field.

2009-06-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (setMouseWheelEnabled): Use correct check for disable branch.

2009-06-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (mousePressed): Return immediately if chart is null.

2009-06-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (getLegendItems): Set the series key and index for each item,
    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (getLegendItems): Likewise.

2009-05-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/function/PowerFunction2D.java: Implemented
    Serializable,
    (getA): New method,
    (getB): Likewise,
    (equals): New method override,
    (hashCode): Likewise,
    * tests/org/jfree/data/function/junit/PowerFunction2DTests.java: New file.

2009-05-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/function/NormalDistributionFunction2D.java:
    Implemented Serializable,
    (equals): New method override,
    (hashCode): Likewise,
    * tests/org/jfree/data/function/junit/NormalDistributionFunction2DTests.java:
    New file.

2009-05-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/function/LineFunction2D.java: Implemented
    Serializable,
    (getIntercept): New method,
    (getSlope): Likewise,
    (equals): New method override,
    (hashCode): Likewise,
    * tests/org/jfree/data/function/junit/LineFunction2DTests.java: New file.

2009-05-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYBarRenderer.java
    (drawItem): Fixed bar alignment for inverted domain axis.

2009-05-28  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2795746 by Peter Kolb:
    * source/org/jfree/data/function/PolynomialFunction2D.java: New file,
    * source/org/jfree/data/statistics/Regression.java
    (getPolynomialRegression): New method,
    (calculateSubmatrix): New private method,
    * tests/org/jfree/data/function/junit/DataFunctionPackageTests.java:
    New test file,
    * tests/org/jfree/data/function/junit/PolynomialFunction2DTests.java:
    Likewise.

2009-05-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (drawItem): Use correct item label anchor for horizontal orientation.

2009-05-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeTableXYDataset.java
    (add): If period is a RegularTimePeriod, peg it to the timezone and locale
    specified in the constructor.

2009-05-26  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1937486:
    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (drawItem): Handle AreaRendererEndType.LEVEL.

2009-05-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeriesCollection.java: Implemented
    XYRangeInfo,
    (getRangeBounds): New method.

2009-05-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (minY): New field,
    (maxY): Likewise,
    (TimeSeries(Comparable, String, String)): Initialise new fields,
    (getMinY): New method,
    (getMaxY): Likewise,
    (add(TimeSeriesDataItem, boolean)): Update min/maxY,
    (update(RegularTimePeriod, Number)): Delegate,
    (update(int, Number)): Update bounds,
    (addOrUpdate): Update bounds,
    (removeAgedItems): Likewise,
    (clear): Clear bounds,
    (delete(RegularTimePeriod)): Update bounds,
    (delete(int, int)): Delegate to new method,
    (delete(int, int, boolean)): New method,
    (updateBoundsForAddedItem): New method,
    (updateBoundsForRemovedItem): Likewise,
    (findBoundsByIteration): Likewise,
    (minIgnoreNaN): Likewise,
    (maxIgnoreNaN): Likewise,
    * tests/org/jfree/data/time/junit/TimeSeriesTests.java
    (testDelete3): New test,
    (testDelete_RegularTimePeriod): Likewise,
    (testSetMaximumItemCount): Updated to check min/maxY,
    (testAddOrUpdate2): New method,
    (testAddOrUpdate3): Likewise,
    (testRemoveAgedItems4): Likewise,
    (testRemoveAgedItems5): Likewise,
    (testGetMinY): Likewise,
    (testGetMaxY): Likewise,
    (testClear): Likewise,
    (testAdd): Likewise,
    (testUpdate_RegularTimePeriod): Likewise.

2009-05-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeriesCollection.java: Implemented
    XYDomainInfo,
    (getDomainBounds(List, boolean)): New method,
    * tests/org/jfree/data/time/junit/TimeSeriesCollectionTests.java
    (testFindDomainBounds): New test method.

2009-05-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (drawPrimaryLine): Clip line and only draw if visible.

2009-05-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYPointerAnnotation.java
    (hashCode): Return result.

2009-05-16  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2791407 by Peter Kolb:
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (findRangeBounds): Call method in super class, not DatasetUtilities,
    * source/org/jfree/chart/renderer/category/IntervalBarRenderer.java
    (findRangeBounds): Override to include dataset interval,
    * source/org/jfree/chart/renderer/category/ScatterRenderer.java
    (findRangeBounds): Override to include dataset interval,
    * source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    (findRangeBounds): Override to include dataset interval,
    * source/org/jfree/data/general/DatasetUtilities.java
    (iterateToFindRangeBounds): Handle MultiValueCategoryDataset.

2009-05-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYShapeRenderer.java
    (equals): Simplified because paintScale, guideLinePaint and guideLineStroke
    are never null.

2009-05-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (equals): Check fixedLegendItems,
    (clone): Clone fixedLegendItems,
    * tests/org/jfree/chart/plot/junit/XYPlotTests.java
    (testEquals): Added test for fixedLegendItems,
    (testCloning3): New test.

2009-05-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (doCopy): Account for insets, and pass scaling parameters to
    ChartTransferable,
    * source/org/jfree/chart/ChartTransferable.java
    (minDrawWidth): New field,
    (minDrawHeight): Likewise,
    (maxDrawWidth): Likewise,
    (maxDrawHeight): Likewise,
    (ChartTransferable): New constructor,
    (getTransferData): Delegate to new utility method,
    (createBufferedImage): New method that can apply scaling.

2009-04-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/SamplingXYLineRenderer.java
    (State.startSeriesPass): Reset interval path.

2009-04-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (legendShape): Renamed legendShapeList,
    (treatLegendShapeAsLine): New field,
    (AbstractRenderer): Initialise new field,
    (getTreatLegendShapeAsLine): New method,
    (setTreatLegendShapeAsLine): Likewise,
    (equals): Check treatLegendShapeAsLine field,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (getLegendItem): Use different legend item if 'treatLegendShapeAsLine' flag
    is set,
    * source/org/jfree/chart/LegendItem.java
    (setDescription): New method,
    (setToolTipText): Likewise,
    (setURLText): Likewise,
    (setShapeVisible): Likewise,
    (setShape): Likewise,
    (setOutlineStroke): Likewise,
    (setLineVisible): Likewise,
    (setLine): Likewise,
    * source/org/jfree/chart/renderer/xy/SamplingXYLineRenderer.java
    (SamplingXYLineRenderer): Configure renderer for lines in legend item,
    (getLegendLine): Deprecated,
    (setLegendLine): Likewise.

2009-04-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/util/LogFormat.java
    (format(long, StringBuffer, FieldPosition)): Use powerLabel attribute.

2009-04-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/panel/CrosshairOverlay.java
    (addDomainCrosshair): Fire change event,
    (addRangeCrosshair): Likewise.

2009-04-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotation/XYPointerAnnotation.java
    (draw): Altered drawing of arrow line.

----------  JFREECHART 1.0.13 RELEASED ------------------------

2009-04-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DatasetUtilities.java
    (iterateToFindRangeBounds): Handle BoxAndWhiskerCategoryDataset.

2009-04-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/PaintScaleLegend.java
    (draw): Adjusted fill rectangles.

2009-04-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (CategoryAxis): Leave tick marks visible by default,
    (draw): Call drawTickMarks(),
    (drawTickMarks): New method,
    * source/org/jfree/chart/axis/CategoryAxis3D.java
    (draw): Call drawTickMarks(),
    * source/org/jfree/chart/axis/NumberAxis3D.java
    (NumberAxis3D): Leave axis line visible by default.

2009-04-16  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2686872 by Peter Kolb:
    * source/org/jfree/chart/title/PaintScaleLegend.java: Implemented
    AxisChangeListener,
    (PaintScaleLegend): Register as axis change listener,
    (setAxis): Deregister as change listener on old axis, register as listener
    on new axis,
    (axisChanged): New method,
    (draw): Check isStripOutlineVisible flag.

2009-04-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/StandardChartTheme.java
    (baselinePaint): New field,
    (createDarknessTheme): Modify baselinePaint,
    (StandardChartTheme): Initialise baselinePaint,
    (getBaselinePaint): New method,
    (setBaselinePaint): Likewise,
    (applyToCategoryPlot): Apply baselinePaint,
    (applyToXYPlot): Likewise,
    (writeObject): Updated for new field,
    (readObject): Likewise.

2009-04-10  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2740447:
    * source/org/jfree/chart/ChartPanel.java
    (paintComponent): Set chartBuffer background to match panel.

2009-04-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/StandardChartTheme.java
    (getSmallFont): New method,
    (setSmallFont): Likewise.

2009-04-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java: Implemented OverlayChangeListener,
    (overlays): New field,
    (ChartPanel): Initialise new field,
    (addOverlay): New method,
    (removeOverlay): New method,
    (overlayChanged): New method,
    (paintComponent): Draw overlays,
    * source/org/jfree/chart/event/OverlayChangeEvent.java: New file,
    * source/org/jfree/chart/event/OverlayChangeListener.java: New file,
    * source/org/jfree/chart/panel/AbstractOverlay.java: New file,
    * source/org/jfree/chart/panel/CrosshairOverlay.java: New file,
    * source/org/jfree/chart/panel/Overlay.java: New file,
    * source/org/jfree/chart/labels/CrosshairLabelGenerator.java: New file,
    * source/org/jfree/chart/labels/StandardCrosshairLabelGenerator.java:
    New file,
    * source/org/jfree/chart/jxlayer/CrosshairLayerUI.java: Refactored class
    locations.

2009-04-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartTransferable.java : New file,
    * source/org/jfree/chart/ChartPanel.java
    (COPY_COMMAND): New field,
    ChartPanel(JFreeChart, int, int, int, int, int, int, boolean, boolean,
    boolean, boolean, boolean, boolean, boolean)): New constructor,
    (actionPerformed): Check for copy action,
    (doCopy): Tranfer chart to clipboard,
    (createPopupMenu): New method.

2009-04-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotation/XYTextAnnotation.java
    (draw): Set font before calculating hotspot area.

2009-04-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DatasetUtilities.java
    (iterateToFindRangeBounds): Handle StatisticalCategoryDataset.

2009-04-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (addItemEntity): Check getItemCreateEntity(),
    (addEntity): New method,
    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (defaultEntityRadius): New field,
    (AbstractRenderer): Initialise new field,
    (getDefaultEntityRadius): New method,
    (setDefaultEntityRadius): New method,
    (equals): Check new field,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (defaultEntityRadius): Moved to superclass,
    (getDefaultEntityRadius): Likewise,
    (setDefaultEntityRadius): Likewise,
    (equals): Moved check for defaultEntityRadius to superclass,
    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (findRangeBounds): New method override,
    (drawItem): Use new addEntity() method.

2009-04-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (panMask): New field,
    (ChartPanel): Initialise panMask differently on MacOSX,
    (mousePressed): Use panMask field,
    (mouseDragged): Fixed signs on drag percents.

2009-03-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/LogAxis.java
    (pan): New method,
    * source/org/jfree/chart/axis/ValueAxis.java
    (pan): Likewise,
    * source/org/jfree/chart/plot/XYPlot.java
    (panDomainAxes): Delegate to axes,
    (panRangeAxes): Delegate to axes.

2009-03-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/renderer/LookupPaintScale.java
    (PaintItem): Changed to static.

2009-03-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/renderer/xy/AbstractXYItemRenderer.java
    (findRangeBounds): Handle case where plot is null.

2009-03-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/renderer/xy/YIntervalRenderer.java
    (findRangeBounds): Use new inherited method.

2009-03-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/renderer/RendererUtilities.java
    (findLiveItemsLowerBound): Fixed results for unsorted dataset,
    (findLiveItemsUpperBound): Likewise,
    (findLiveItems): Check case where upper index is less than lower.

2009-03-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (domainPannable): Change default to false,
    (rangePannable): Likewise,
    (rendererChanged): If series visibility changes, configure the axes,
    (panDomainAxes): Reconfigure the range axes,
    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (dataBoundsIncludesVisibleSeriesOnly): New field,
    (setSeriesVisible(Boolean, boolean): Modified generated RendererEvent,
    (setSeriesVisible(int, Boolean, boolean): Likewise,
    (setBaseSeriesVisible): Likewise,
    (getDataBoundsIncludesVisibleSeriesOnly): New method,
    (setDataBoundsIncludesVisibleSeriesOnly): Likewise,
    (equals): Updated for new field,
    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (findRangeBounds(CategoryDataset)): Delegate to new method,
    (findRangeBounds(CategoryDataset, boolean)): Handle hidden series,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (findDomainBounds(XYDataset)): Delegate to new method,
    (findDomainBounds(XYDataset, boolean)): Handle hidden series,
    (findRangeBounds(XYDataset)): Delegate to new method,
    (findRangeBounds(XYDataset, boolean)): Handle hidden series,
    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    (findRangeBounds): Call new inherited method,
    * source/org/jfree/chart/renderer/xy/DeviationRenderer.java
    (findRangeBounds): Call new inherited method,
    * source/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java
    (findRangeBounds): New method override,
    * source/org/jfree/data/general/DatasetUtilities.java
    (findDomainBounds(XYDataset, List, boolean)): New method,
    (findRangeBounds(CategoryDataset, List, boolean)): Likewise,
    (findRangeBounds(XYDataset, List, Rangee, boolean)): Likewise,
    (iterateToFindRangeBounds(CategoryDataset, List, boolean)): Likewise,
    (iterateToFindDomainBounds(XYDataset, List, boolean)): Likewise,
    (iterateToFindRangeBounds(XYDataset, List, Range, boolean)): Likewise,
    * source/org/jfree/data/category/CategoryRangeInfo.java: New interface,
    * source/org/jfree/data/xy/XYDomainInfo.java: Likewise,
    * source/org/jfree/data/xy/XYRangeInfo.java: Likewise.

2009-03-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (fillZoomRectangle): Change default to true,
    (mousePressed): Don't change cursor for panning unless panning is enabled.

2009-03-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/ValueAxis.java
    (equals): Only check range if autoRange is false.

2009-03-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/event/RendererChangeEvent.java
    (seriesVisibilityChanged): New field,
    (RendererChangeEvent(Object)): Delegate to new constructor,
    (RendererChangeEvent(Object, boolean)): New constructor,
    (getSeriesVisibilityChanged): New method.

2009-03-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/MouseWheelHandler.java: Implemented Serializable.

2009-03-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/FastScatterPlot.java: Implemented Pannable,
    (domainPannable): New field,
    (rangePannable): Likewise,
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)): Use new
    resizeRange2() method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)): Likewise,
    plus use correct mouse coordinate,
    (isDomainPannable): New method,
    (setDomainPannable): Likewise,
    (isRangePannable): Likewise,
    (setRangePannable): Likewise,
    (panDomainAxes): Likewise,
    (panRangeAxes): Likewise,
    (equals): Updated for new fields.

2009-03-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/imagemap/ImageMapUtilities.java
    (javascriptEscape): Reimplemented,
    * tests/org/jfree/chart/imagemap/junit/ImageMapPackageTests.java
    (suite): Added new test classes,
    * tests/org/jfree/chart/imagemap/junit/DynamicDriveToolTipTagFragmentGeneratorTests.java:
    New file,
    * tests/org/jfree/chart/imagemap/junit/ImageMapUtilitiesTests.java:
    New file,
    * tests/org/jfree/chart/imagemap/junit/OverLIBToolTipTagFragmentGeneratorTests.java:
    New file.

2009-03-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/entity/AxisEntity.java: New class,
    * source/org/jfree/chart/entity/JFreeChartEntity.java: New class,
    * source/org/jfree/chart/entity/PlotEntity.java: New class,
    * source/org/jfree/chart/entity/TitleEntity.java: New class,
    * source/org/jfree/chart/axis/Axis.java:
    (createAndAddEntity): New method,
    * source/org/jfree/chart/axis/CategoryAxis.java:
    (draw): Add an entity for the axis,
    * source/org/jfree/chart/axis/DateAxis.java:
    (draw): Add an entity for the axis,
    * source/org/jfree/chart/axis/LogAxis.java:
    (draw): Add an entity for the axis,
    * source/org/jfree/chart/axis/NumberAxis.java:
    (draw): Add an entity for the axis,
    * source/org/jfree/chart/plot/CategoryPlot.java:
    (draw): Add an entity for the plot,
    * source/org/jfree/chart/plot/Plot.java:
    (createAndAddEntity): New method,
    * source/org/jfree/chart/plot/XYPlot.java:
    (draw): Add an entity for the plot,
    * source/org/jfree/chart/JFreeChart.java:
    (draw): Add an entity for the chart,
    * source/org/jfree/chart/title/LegendTitle.java:
    (draw): Add an entity for the title,
   * source/org/jfree/chart/title/TextTitle.java:
    (draw): Likewise.

2009-03-19  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2690293:
    * source/org/jfree/chart/imagemap/DynamicDriveToolTipTagFragmentGenerator.java
    (generateToolTipFragment): Use javascriptEscape(),
    * source/org/jfree/chart/imagemap/OverLIBToolTipTagFragmentGenerator.java
    (generateToolTipFragment): Likewise,
    * source/org/jfree/chart/imagemap/ImageMapUtilities.java
    (javascriptEscape): New method.

2009-03-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (panW): New field,
    (panH): Likewise,
    (panLast): Likewise,
    (mousePressed): Check for start of panning,
    (mouseDragged): Handle panning if it was started in mousePressed(),
    (mouseReleased): Reset panning,
    * source/org/jfree/chart/plot/CategoryPlot.java: Implemented Pannable,
    (rangePannable): New field,
    (isDomainPannable): New method,
    (isRangePannable): Likewise,
    (setRangePannable): Likewise,
    (panDomainAxes): Likewise,
    (panRangeAxes): Likewise,
    * source/org/jfree/chart/plot/Pannable.java: New interface,
    * source/org/jfree/chart/plot/XYPlot.java: Implemented Pannable,
    (domainPannable): New field,
    (rangePannable): Likewise,
    (isDomainPannable): New method,
    (setDomainPannable): Likewise,
    (isRangePannable): Likewise,
    (setRangePannable): Likewise,
    (panDomainAxes): Likewise,
    (panRangeAxes): Likewise.

2009-03-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer3D.java
    (drawRangeLine): New method override.

2009-03-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (mouseWheelHandler): New field,
    (isMouseWheelEnabled): New method,
    (setMouseWheelEnabled): Likewise,
    * source/org/jfree/chart/MouseWheelHandler.java: New class,
    * source/org/jfree/chart/axis/ValueAxis.java
    (resizeRange2): New method,
    * source/org/jfree/chart/demo/BarChartDemo1.java
    (BarChartDemo1): Enable mouse wheel,
    * source/org/jfree/chart/demo/TimeSeriesChartDemo1.java
    (createDemoPanel): Enable mouse wheel,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (zoomRangeAxes): Modify anchored zoom behaviour,
    * source/org/jfree/chart/plot/XYPlot.java
    (zoomDomainAxes): Likewise,
    (zoomRangeAxes): Likewise.

2009-03-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/SlidingCategoryDataset.java
    (getColumnKeys): Fixed loop index.

2009-03-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYAnnotationBoundsInfo.java:
    New interface,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (getAnnotations): New method,
    * source/org/jfree/chart/annotations/XYDataImageAnnotation.java:
    Implemented XYAnnotationBoundsInfo interface,
    (includeInDataBounds): New field,
    (XYDataImageAnnotation(Image, double, double, double, double, boolean)):
    New constructor,
    (getIncludeInDataBounds): New method,
    (getXRange): Likewise,
    (getYRange): Likewise,
    (equals): Check new field,
    * source/org/jfree/chart/plot/XYPlot.java
    (getDataRange): Include annotation bounds.

2009-03-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/SamplingXYLineRenderer.java:
    New class.

2009-03-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/IntervalXYDelegate.java
    (hashCode): Implemented,
    * source/org/jfree/data/xy/XYSeriesCollection.java
    (equals): Include interval delegate.

2009-03-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYSeries.java
    (minX): New field,
    (maxX): Likewise,
    (minY): Likewise,
    (maxY): Likewise,
    (XYSeries): Initialise new fields,
    (getMinX): New method,
    (getMaxX): Likewise,
    (getMinY): Likewise,
    (getMaxY): Likewise,
    (updateBoundsForAddedItem): Likewise,
    (updateBoundsForRemovedItem): Likewise,
    (findBoundsByIteration): Likewise,
    (setMaximumItemcount): Refresh mins and maxes,
    (add): Likewise,
    (delete): Likewise,
    (remove): Likewise,
    (clear): Reset mins and maxes,
    (update): Update minY and maxY,
    (minIgnoreNaN): New method,
    (maxIgnoreNaN): Likewise,
    (update): Delegate to updateByIndex();
    (addOrUpdate): Update mins and maxes,
    * source/org/jfree/data/xy/XYSeriesCollection.java: Implemented RangeInfo,
    (getDomainLowerBound): Use cached value in underlying series,
    (getDomainUpperBound): Likewise,
    (getDomainBounds): Likewise,
    (getRangeBounds): Implemented,
    (getRangeLowerBound): Likewise,
    (getRangeUpperBound): Likewise.

2009-03-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/PeriodAxis.java
    (draw): Check tickMarksVisible and tickLabelsVisible,
    (drawTickMarksHorizontal): Removed unnecessary calendar references,
    (drawTickLabels): Likewise,
    (valueToJava2D): Likewise,
    (java2DtoValue): Likewise,
    * source/org/jfree/chart/axis/PeriodAxisLabelInfo.java
    (createInstance): Deprecated and added new method with locale argument.

2009-03-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/PeriodAxis.java
    (locale): New field,
    (PeriodAxis(String, RegularTimePeriod, RegularTimePeriod)): Delegate to
    new constructor,
    (PeriodAxis(String, RegularTimePeriod, RegularTimePeriod, TimeZone)):
    Deprecated,
    (PeriodAxis(String, RegularTimePeriod, RegularTimePeriod, TimeZone, Locale)):
    New constructor,
    (setFirst): Peg the time period,
    (setLast): Likewise,
    (setTimeZone): Peg first and last,
    (getLocale): New method,
    (setRange): Use locale,
    (drawTickMarksHorizontal): Likewise,
    (autoAdjustRange): Likewise,
    (equals): Check locale field,
    (createInstance): Added locale,
    * source/org/jfree/data/time/Day.java
    (Day(Date)): Delegate to new constructor,
    (Day(Date, TimeZone)): Deprecated,
    (Day(Date, TimeZone, Locale)): New constructor,
    * source/org/jfree/data/time/Hour.java
    (Hour(Date)): Delegate to new constructor,
    (Hour(Date, TimeZone)): Deprecated,
    (Hour(Date, TimeZone, Locale)): New constructor,
    * source/org/jfree/data/time/Millisecond.java
    (Millisecond(Date)): Delegate to new constructor,
    (Millisecond(Date, TimeZone)): Deprecated,
    (Millisecond(Date, TimeZone, Locale)): New constructor,
    * source/org/jfree/data/time/Minute.java
    (Minute(Date)): Delegate to new constructor,
    (Minute(Date, TimeZone)): Deprecated,
    (Minute(Date, TimeZone, Locale)): New constructor,
    * source/org/jfree/data/time/Second.java
    (Second(Date)): Delegate to new constructor,
    (Second(Date, TimeZone)): Deprecated,
    (Second(Date, TimeZone, Locale)): New constructor.

2009-02-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYSeriesCollection.java
    (getDomainOrder): New method override.

2009-02-27  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2583891:
    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (fillPolygon): Implemented.

2009-02-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/CombinationDataset.java: Deprecated.

2009-02-27  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2612649:
    * source/org/jfree/chart/editor/DefaultPlotEditor.java
    (DefaultPlotEditor): Added null Stroke to available options,
    (attemptOutlineStrokeSelection): Use current stroke.

2009-02-27  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2617557:
    * source/org/jfree/chart/plot/dial/StandardDialScale.java
    (draw): Use tickLabelPaint.

2009-02-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/RendererUtilities.java
    (findLiveItemsLowerBound): Added argument checks,
    (findLiveItemsUpperBound): Correct calculation of mid.

2009-02-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/GradientXYBarPainter.java
    (paintBar): Use correct outline paint.

2009-02-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/jxlayer/Crosshair.java: New file,
    * source/org/jfree/chart/jxlayer/CrosshairLabelGenerator.java: New file,
    * source/org/jfree/chart/jxlayer/CrosshairLayerUI.java: New file,
    * source/org/jfree/chart/jxlayer/DefaultCrosshairLabelGenerator.java:
    New file,
    * source/org/jfree/chart/jxlayer/package.html: New file,
    * tests/org/jfree/chart/jxlayer/junit/CrosshairTests.java: New tests,
    * tests/org/jfree/chart/jxlayer/junit/JXLayerPackageTests.java: Likewise.

2009-02-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYPointerAnnotation.java
    (draw): Added support for rotated text, plus background paint and
    outline paint/stroke.

2009-02-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYTextAnnotation.java
    (backgroundPaint): New field,
    (outlineVisible): Likewise,
    (outlinePaint): Likewise,
    (outlineStroke): Likewise,
    (XYTextAnnotation): Initialise new fields,
    (getBackgroundPaint): New method,
    (setBackgroundPaint): Likewise,
    (getOutlinePaint): Likewise,
    (setOutlinePaint): Likewise,
    (getOutlineStroke): Likewise,
    (setOutlineStroke): Likewise,
    (isOutlineVisible): Likewuse,
    (setOutlineVisible): Likewise,
    (draw): Draw background and outline,
    (equals): Check new fields,
    (writeObject): Handle new fields,
    (readObject): Likewise.

2009-02-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DatasetUtilities.java
    (sampleFunction2D): Delegate to new method,
    (sampleFunction2DToSeries): New method,
    * source/org/jfree/data/function/NormalDistributionFunction2D.java
    (factor): New field,
    (denominator): Likewise,
    (NormalDistributionFunction2D): Initialise new fields,
    (getValue): Use precomputed constants.

2009-02-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/block/LabelBlock.java
    (contentAlignmentPoint): New field,
    (textAnchor): Likewise,
    (LabelBlock): Initialise new fields,
    (getContentAlignmentPoint): New method,
    (setContentAlignmentPoint): Likewise,
    (getTextAnchor): Likewise,
    (setTextAnchor): Likewise,
    (equals): Check new fields.

2009-02-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (barAlignmentFactor): New field,
    (XYBarRenderer): Initialise new field,
    (getBarAlignmentFactor): New method,
    (setBarAlignmentFactor): Likewise,
    (drawItem): Shift bar if alignment factor is set,
    (equals): Check new field.

2009-02-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (errorIndicatorStroke): New field,
    (StatisticalLineAndShapeREnderer): Initialise new field,
    (getErrorIndicatorStroke): New method,
    (setErrorIndicatorStroke): Likewise,
    (drawItem): Use errorIndicatorStroke,
    (equals): Check new field,
    (readObject): Handle new field,
    (writeObject): Likewise.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DefaultHeatMapDataset.java: New file,
    * source/org/jfree/data/general/HeatMapDataset.java: Likewise,
    * source/org/jfree/data/general/HeatMapUtilities.java: Likewise,
    * tests/org/jfree/data/general/junit/DefaultHeatMapDatasetTests.java:
      Likewise.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/CombinedDataset.java: Deprecated,
    * source/org/jfree/data/general/SubSeriesDataset.java: Likewise.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2564636:
    * source/org/jfree/data/time/Month.java
    (Month(Date, TimeZone, Locale)): Use locale.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (createStackedValueList): Deprecated,
    (createStackedValueList(CategoryDataset, Comparable, int[], double,
    boolean)): New method,
    (drawItem): Check for hidden series.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedBarRenderer.java
    (drawItem): Check for hidden series.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/CategoryItemRendererState.java
    (getVisibleSeriesArray()): New method,
    * source/org/jfree/chart/renderer/StackedAreaRenderer.java
    (drawItem): Fix handling of renderAsPercentages,
    (getStackValues): Likewise,
    * source/org/jfree/data/DataUtilities.java
    (calculateColumnTotal): New method,
    (calculateRowTotal): Likewise.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedAreaRenderer.java
    (drawItem): Generate entities only in first pass, and add call for drawing
    item labels in second pass.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/WaterfallBarRenderer.java
    (findRangeBounds): Handle null dataset,
    * tests/org/jfree/chart/renderer/category/junit/WaterfallBarRendererTests.java
    (testFindRangeBounds): New tests.

2009-02-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedAreaRenderer.java
    (findRangeBounds): Check for null dataset,
    (drawItem): Return early if series is not visible,
    (getPreviousHeight): Deprecated as it is never used,
    * tests/org/jfree/chart/renderer/category/junit/StackedAreaRendererTests.java
    (testFindRangeBounds): New tests.

2009-02-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/renderer/category/BarRenderer.java
    (defaultShadowsVisible): New field,
    (getDefaultShadowsVisible): New method,
    (setShadowsVisible): Likewise,
    * source/org/jfree/renderer/xy/XYBarRenderer.java
    (defaultShadowsVisible): New field,
    (getDefaultShadowsVisible): New method,
    (setShadowsVisible): Likewise.

2009-02-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/renderer/category/StackedBarRenderer3D.java
    (findRangeBounds): Check for null dataset,
    * tests/org/jfree/chart/renderer/category/junit/StackedBarRenderer3DTests.java
    (testFindRangeBounds): New test.

2009-02-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/GrayPaintScale.java
    (alpha): New field,
    (GrayPaintScale(double, double)): Delegate to new constructor,
    (GrayPaintScale(double, double, int)): New constructor,
    (getAlpha): New method,
    (getPaint): Use alpha setting for returned paint,
    (equals): Check new field,
    (hashCode): New method,
    * tests/org/jfree/chart/renderer/junit/GrayPaintScaleTests.java
    (testEquals): Check new field.

2009-01-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYErrorRenderer.java
    (errorStroke): New field,
    (XYErrorRenderer): Initialise new field,
    (getErrorStroke): New method,
    (setErrorStroke): Likewise,
    (drawItem): Updated to use new errorStroke or else item outline stroke,
    (equals): Check new field,
    (readObject): Handle new field,
    (writeObject): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/XYErrorRendererTests.java
    (testEquals): Added check for errorStroke field,
    (testCloning2): New test,
    (testSerialization2): Likewise.

2009-01-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DataUtilities.java
    (clone(double[][]): New method,
    * tests/org/jfree/data/junit/DataUtilitiesTests.java
    (testClone): New method.

2009-01-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (equals): Fix shape test,
    * tests/org/jfree/chart/renderer/junit/AbstractRendererTests.java
    (testEquals): Modified to cover Shape.equals() bug.

2009-01-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DataUtilities.java
    (equal(double[][], double[][])): New method,
    * tests/org/jfree/data/junit/DataUtilitiesTests.java
    (testEqual): New method,
    (suite): Likewise,
    (main): Likewise.

2009-01-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (drawItem): Put drawing code in separate passes.

2009-01-23  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2511330 by Peter Kolb, plus hashCode method by DG:
    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (drawItem): Check useFillPaint and drawOutlines flags separately,
    (hashCode): New method.

2009-01-23  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2511330 by Peter Kolb:
    * source/org/jfree/chart/renderer/category/LevelRenderer.java
    (calculateItemWidth): Take into account seriesVisible flags,
    (calculateBarW0): Likewise,
    (drawItem): Likewise.

2009-01-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LevelRenderer.java
    (LevelRenderer): Set default legend shape,
    (hashCode): New method.

2009-01-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (medianVisible): New field,
    (meanVisible): Likewise,
    (BoxAndWhiskerRenderer): Initialise new fields,
    (isMeanVisible): New method,
    (setMeanVisible): Likewise,
    (isMedianVisible): New method,
    (setMedianVisible): Likewise,
    (drawHorizontalItem): Updated to check new flags,
    (drawVerticalItem): Likewise,
    (equals): Updated to check new fields,
    * tests/org/jfree/chart/renderer/category/junit/BoxAndWhiskerRendererTests.java
    (testEquals): Check new fields.

2009-01-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (drawRangeLine): New method,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (rangeZeroBaselineVisible): New field,
    (rangeZeroBaselineStroke): Likewise,
    (rangeZeroBaselinePaint): Likewise,
    (rangeMinorGridlinesVisible): Likewise,
    (rangeMinorGridlineStroke): Likewise,
    (rangeMinorGridlinePaint): Likewise,
    (CategoryPlot): Initialise new fields and removed baseline marker,
    (isRangeZeroBaselineVisible): New method,
    (setRangeZeroBaselineVisible): Likewise,
    (getRangeZeroBaselineStroke): Likewise,
    (setRangeZeroBaselineStroke): Likewise,
    (getRangeZeroBaselinePaint): Likewise,
    (setRangeZeroBaselinePaint): Likewise,
    (isRangeMinorGridlinesVisible): Likewise,
    (setRangeMinorGridlinesVisible): Likewise,
    (getRangeMinorGridlineStroke): Likewise,
    (setRangeMinorGridlineStroke): Likewise,
    (getRangeMinorGridlinePaint): Likewise,
    (setRangeMinorGridlinePaint): Likewise,
    (draw): Add code to draw new zero range baseline,
    (drawRangeGridlines): Account for minor gridlines,
    (drawZeroRangeBaseline): New method,
    (equals): Updated for new fields,
    (writeObject): Likewise,
    (readObject): Likewise,
    * source/org/jfree/chart/axis/DateAxis.java
    (refreshTicksHorizontal): Check tick unit for minor tick count,
    (refreshTicksVertical): Likewise,
    * source/org/jfree/chart/axis/LogAxis.java
    (LogAxis): Remove call to setMinorTickCount(),
    * source/org/jfree/chart/axis/NumberAxis.java
    (createStandardTickUnits): Initialise minor tick counts,
    (createIntegerTickUnits): Likewise,
    (refreshTicksHorizontal): Check tick unit for minor tick count,
    (refreshTicksVertical): Likewise,
    * source/org/jfree/chart/axis/ValueAxis.java
    (ValueAxis): Set default minor tick count to zero,
    (setMinorTickCount): Remove argument check,
    * tests/org/jfree/chart/plot/junit/CategoryPlotTests.java
    (testEquals): Check new fields.

2009-01-16  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2490803:
    * source/org/jfree/chart/axis/PeriodAxis.java
    (getRange): Removed, rely on superclass implementation,
    (setRange): Update range with end points of whole periods,
    (drawTickMarksHorizontal): Include first and last ticks,
    * tests/org/jfree/chart/axis/junit/PeriodAxisTests.java
    (test2490803): New test method.

2009-01-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (DEFAULT_BUFFER_USED): Changed default to true,
    (zoomOutlinePaint): New field,
    (zoomFillPaint): Likewise,
    (ChartPanel): Initialise new fields,
    (getZoomFillPaint): New method,
    (setZoomFillPaint): Likewise,
    (getZoomOutlinePaint): Likewise,
    (setZoomOutlinePaint): Likewise,
    (paintComponent): Update drawing of zoom rectangle,
    (mouseDragged): If useBuffer is true, repaint chart rather than using XOR
    for zoom rectangle,
    (mouseReleased): Likewise,
    (drawZoomRectangle): Only use XOR if useBuffer is false,
    (writeObject): Handle new fields,
    (readObject): Likewise.

2009-01-14  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2497611 by Peter Kolb:
    * source/org/jfree/chart/axis/CategoryAxis.java
    (getCategorySeriesMiddle): New method,
    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (initialise): Record visible series indices,
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (calculateBarWidth): Look for visible series count in state,
    (calculateBarW0): Likewise,
    (drawItem): Use the visible row index,
    * source/org/jfree/chart/renderer/category/CategoryItemRendererState.java
    (visibleSeries): New field,
    (getVisibleSeriesIndex): New method,
    (getVisibleSeriesCount): Likewise,
    (setVisibleSeriesArray): Likewise,
    * source/org/jfree/chart/renderer/category/IntervalBarRenderer.java
    (drawInterval): Use the visible row index,
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/category/ScatterRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    (drawItem): Likewise,
    (drawHorizontalItem): Changed signature,
    (drawVerticalItem): Likewise,
    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (drawItem): Use the visible row index.

2009-01-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/LogAxis.java
    (refreshTicksHorizontal): Read minorTickCount from the tick unit,
    (refreshTicksVertical): Likewise,
    (createLogTickUnits): Corrected the tick unit sizes and added
    minor tick counts,
    * source/org/jfree/chart/util/LogFormat.java
    (LogFormat): New constructor,
    (getExponentFormat): New method,
    (setExponentFormat): Likewise,
    (equals): Test formatter field,
    * tests/org/jfree/chart/util/junit/LogFormatTests.java
    (testEquals): Check formatter field.

2009-01-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (zoomInDomain): Change notify flag to ensure plot sends only one event,
    (zoomInRange): Likewise,
    (zoomOutDomain): Likewise,
    (zoomOutRange): Likewise,
    (restoreAutoDomainBounds): Likewise,
    (restoreAutoRangeBounds): Likewise,
    * test/org/jfree/chart/junit/ChartPanelTests.java
    (test2502355_zoomInDomain): New test,
    (test2502355_zoomInRange): Likewise,
    (test2502355_zoomOutDomain): Likewise,
    (test2502355_zoomOutRange): Likewise,
    (test2502355_restoreAutoDomainBounds): Likewise,
    (test2502355_restoreAutoRangeBounds): Likewise.

2009-01-13  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2502355:
    * source/org/jfree/chart/ChartPanel.java
    (zoomInBoth): Change notify flag to ensure plot sends only one event,
    (zoomOutBoth): Likewise,
    (zoom): Likewise,
    (restoreAutoBounds): Likewise,
    * source/org/jfree/chart/plot/Plot.java
    (notify): New field,
    (Plot): Initialise new field,
    (isNotify): New method,
    (setNotify): Likewise,
    (notifyListeners): Check notify flag,
    * tests/org/jfree/chart/junit/ChartPanelTests.java
    (chartChangeEvents): New field,
    (chartChanged): New method,
    (test2502355_zoom): New test,
    (test2502355_zoomInBoth): Likewise,
    (test2502355_zoomOutBoth): Likewise,
    (test2502355_restoreAutoBounds): Likewise.

2009-01-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (TimeSeries(Comparable, Class)): Deprecated,
    (TimeSeries(Comparable, String, String, Class)): Likewise,
    (TimeSeries(Comparable)): Delegate to new constructor,
    (TimeSeries(Comparable, String, String)): New constructor,
    (add): Update timePeriodClass if necessary,
    (addAndOrUpdate): Use new constructor,
    (addOrUpdate): Reset timePeriodClass if necessary,
    (removeAgedItems): Check for empty series,
    (clear): Reset timePeriodClass,
    (delete): Reset timePeriodClass if series is empty,
    (delete(int, int)): Likewise,
    (equals): Reorganised,
    * tests/org/jfree/data/time/junit/TimeSeriesTests.java
    (testEquals3): New test,
    (testRemoveAgedItems3): Likewise.

2009-01-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (MultiplePiePlot): Set ignoreNullValues to true.

2009-01-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateTickUnit.java
    (unit): Deprecated,
    (unitType): New field,
    (rollUnit): Deprecated,
    (rollUnitType): New field,
    (DateTickUnit): Deprecated existing constructors, replaced with new ones,
    (getUnitType): New method,
    (getRollUnitType): Likewise,
    (getCount): Renamed getMultiple(),
    (getRollCount): Renamed getRollMultiple(),
    (addToDate): Updated for new fields,
    (rollDate): Likewise,
    (getCalendarField): Likewise,
    (getMillisecondCount): Updated for new type,
    (intToUnitType): Utility method for deprecated constants,
    (unitTypeToInt): Likewise,
    (notNull): Utility method for deprecated constructor,
    (equals): Updated for new fields,
    (units): Removed,
    (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, MILLISECOND): Deprecated,
    (getUnit): Deprecated,
    (getRollUnit): Likewise,
    * source/org/jfree/chart/axis/DateTickUnitType.java: New file.

----------  JFREECHART 1.0.12 RELEASED ------------------------

2008-12-31  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2471906:
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (drawItem): Check for dashed stroke and clip area manually for that case.

2008-12-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (legendItemShape): New field,
    (MultiplePiePlot(CategoryDataset)): Initialise new field,
    (getLegendItemShape): New method,
    (setLegendItemShape): New method,
    (getLegendItems): Use new field,
    (equals): Check new field,
    (clone): Implemented,
    (readObject): Handle new field,
    (writeObject): Likewise.

2008-12-20  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2452078:
    * source/org/jfree/chart/ChartFactory.java
    (createStackedAreaChart): Set category margin to zero.

2008-12-18  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1607918 by Jess Thrysoee (with modifications):
    * source/org/jfree/chart/ChartPanel.java
    (localizationResources): Use ResourceBundleWrapper,
    * source/org/jfree/chart/JFreeChart.java
    (JFreeChartInfo()): Likewise,
    * source/org/jfree/chart/editor/DefaultAxisEditor.java,
    * source/org/jfree/chart/editor/DefaultChartEditor.java,
    * source/org/jfree/chart/editor/DefaultColorBarEditor.java,
    * source/org/jfree/chart/editor/DefaultNumberAxisEditor.java,
    * source/org/jfree/chart/editor/DefaultPlotEditor.java,
    * source/org/jfree/chart/editor/DefaultTitleEditor.java
    (localizationResources): Use ResourceBundleWrapper,
    * source/org/jfree/chart/plot/CategoryPlot.java,
    * source/org/jfree/chart/plot/ContourPlot.java,
    * source/org/jfree/chart/plot/FastScatterPlot.java,
    * source/org/jfree/chart/plot/MeterPlot.java,
    * source/org/jfree/chart/plot/PiePlot.java,
    * source/org/jfree/chart/plot/PolarPlot.java,
    * source/org/jfree/chart/plot/ThermometerPlot.java,
    * source/org/jfree/chart/plot/WaferMapPlot.java,
    * source/org/jfree/chart/plot/XYPlot.java
    (localizationResources): Use ResourceBundleWrapper,
    * source/org/jfree/chart/util/ResourceBundleWrapper.java: New class,
    * source/org/jfree/data/category/DefaultIntervalCategoryDataset.java
    (DefaultIntervalCategoryDataset): Use ResourceBundleWrapper,
    * swt/org/jfree/experimental/chart/swt/ChartComposite.java,
    * swt/org/jfree/experimental/chart/swt/editor/SWTAxisEditor.java,
    * swt/org/jfree/experimental/chart/swt/editor/SWTChartEditor.java,
    * swt/org/jfree/experimental/chart/swt/editor/SWTOtherEditor.java,
    * swt/org/jfree/experimental/chart/swt/editor/SWTPlotAppearanceEditor.java,
    * swt/org/jfree/experimental/chart/swt/editor/SWTPlotEditor.java,
    * swt/org/jfree/experimental/chart/swt/editor/SWTTitleEditor.java
    (localizationResources): Use ResourceBundleWrapper.

2008-12-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/block/GridArrangement.java
    (arrange): Fill in missing constraint combinations,
    (arrangeNN): Check for null block,
    (arrangeFF): Likewise,
    (arrangeRF): New method,
    (arrangeRN): Likewise,
    (arrangeNR): Likewise,
    (arrangeRR): Likewise,
    (arrangeFN): Check for null block,
    (arrangeNF): New method,
    * tests/org/jfree/chart/block/junit/GridArrangementTests.java:
    Added various new tests.

2008-11-25  David Gilbert  <david.gilbert@object-refinery.com>

    Bug fix 2201869 by Fawad Halim (with modifications):
    * source/org/jfree/chart/axis/DateAxis.java
    (previousStandardDate): Use new Month constructor,
    (correctTickDateForPosition): New private method,
    (refreshTicksHorizontal): Moved position correction to top of loop,
    (refreshTicksVertical): Likewise,
    * source/org/jfree/data/time/Month.java
    (Month(Date, TimeZone)): Deprecated,
    (Month(Date, TimeZone, Locale)): New constructor,
    * source/org/jfree/data/time/Quarter.java
    (Quarter(Date, TimeZone)): Deprecated,
    (Quarter(Date, TimeZone, Locale)): New constructor,
    * source/org/jfree/data/time/Year.java
    (Year(Date, TimeZone)): Deprecated,
    (Year(Date, TimeZone, Locale)): New constructor.

2008-11-25  David Gilbert  <david.gilbert@object-refinery.com>

    Based on patch 1868749 by Andrew Mickish:
    * source/org/jfree/chart/plot/CategoryPlot.java
    (datasetToDomainAxisMap): Changed from ObjectList to TreeMap,
    (datasetToRangeAxisMap): Likewise,
    (CategoryPlot): Updated initialization of modified fields,
    (mapDatasetToDomainAxis): Delegate to new method,
    (mapDatasetToDomainAxes): New method,
    (checkAxisIndices): New private method,
    (getDomainAxisForDataset): Updated for multiple axis support,
    (mapDatasetToRangeAxis): Delegate to new method,
    (mapDatasetToRangeAxes): New method,
    (getRangeAxisForDataset): Updated for multiple axis support,
    (datasetsMappedToDomainAxis): Likewise,
    (datasetsMappedToRangeAxis): Likewise,
    (equals): Updated for field changes,
    (clone): Likewise,
    * source/org/jfree/chart/plot/XYPlot.java
    (datasetToDomainAxisMap): Renamed,
    (datasetToRangeAxisMap): Renamed,
    (XYPlot): Updated for renamed fields,
    (mapDatasetToDomainAxis): Delegate to new method,
    (mapDatasetToDomainAxes): New method,
    (mapDatasetToRangeAxis): Delegate to new method,
    (mapDatasetToRangeAxes): New method,
    (checkAxisIndices): New private method,
    (getDomainAxisForDataset): Updated for multiple axis support,
    (getRangeAxisForDataset): Likewise,
    (getDatasetsMappedToDomainAxis): Likewise,
    (getDatasetsMappedToRangeAxis): Likewise,
    (equals): Updated for field changes,
    (clone): Likewise.

2008-11-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (findRangeBounds): Check for null argument,
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (findRangeBounds): Likewise,
    * source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java
    (findRangeBounds): Likewise,
    * source/org/jfree/chart/renderer/category/StackedBarRenderer.java
    (findRangeBounds): Likewise.

2008-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1955483:
    * source/org/jfree/data/xy/XYSeries.java
    (addOrUpdate): Check early for duplicates allowed,
    * tests/org/jfree/data/xy/junit/XYSeriesTests.java
    (testBug1955483): New test.

2008-11-18  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2216511:
    * swt/org/jfree/experimental/chart/demo/SWTBarChartDemo1.java
    (createChart): Reset the bar painter to avoid using gradients,
    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (setPaint): Don't fail for GradientPaint.

2008-11-13  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2275695:
    * source/org/jfree/chart/axis/SubCategoryAxis.java
    (drawSubCategoryLabels): Check for null,
    * tests/org/jfree/chart/axis/junit/SubCategoryAxisTests.java
    (test2275695): New method.

2008-11-05  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2221495:
    * source/org/jfree/chart/annotations/XYLineAnnotation.java
    (draw): Clip line before drawing,
    * source/org/jfree/chart/util/LineUtilities.java: New file,
    * tests/org/jfree/chart/util/junit/LineUtilitiesTests.java: Likewise.

2008-10-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (refreshTicks): Set correct for for category label.

2008-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (setChartTheme): Check if theme is "Legacy" and reset default bar painters.

2008-10-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java
    (LegendItem(String, Paint)): New constructor.

2008-10-08  David Gilbert  <david.gilbert@object-refinery.com>

    Incorporating patch 2131001:
    * source/org/jfree/data/general/DatasetUtilities.java
    (iterateDomainBounds(XYDataset, boolean)): Ignore Double.NaN values,
    (iterateRangeBounds(CategoryDataset, boolean)): Likewise,
    (findStackedRangeBounds(CategoryDataset, KeyToGroupMap)): Cleanup,
    (findMinimumStackedRangeValue(CategoryDataset)): Likewise,
    (findMaximumStackedRangeValue(CategoryDataset)): Likewise,
    (findCumulativeRangeBounds(CategoryDataset)): Likewise.

2008-10-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/IntervalCategoryToolTipGenerator.java
    (equals): New method override,
    * source/org/jfree/chart/renderer/category/IntervalBarRenderer.java
    (equals): New method override.

2008-10-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (drawItem): Check item visibility.

2008-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/Axis.java
    (fireChangeEvent): New method,
    also updated various other methods to call fireChangeEvent().

2008-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/WaterfallRenderer.java
    (drawItem): Fixed bar misalignment when maxBarWidth is applied.

2008-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/VectorRenderer.java
    (drawItem): Add chart entity.

2008-09-25  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1934255 (incorporating 1870189):
    * source/org/jfree/chart/axis/Axis.java
    (minorTickMarksVisible): New field,
    (minorTickMarkInsideLength): New field,
    (minorTickMarkOutsideLength): New field,
    (Axis(String)): Initialise new fields,
    (isMinorTickMarksVisible): New method,
    (setMinorTickMarksVisible): Likewise,
    (getMinorTickMarkInsideLength): Likewise,
    (setMinorTickMarkInsideLength): Likewise,
    (getMinorTickMarkOutsideLength): Likewise,
    (setMinorTickMarkOutsideLength): Likewise,
    * source/org/jfree/chart/axis/DateAxis.java
    (refreshTicksHorizontal): Add minor ticks,
    (refreshTicksVertical): Likewise,
    * source/org/jfree/chart/axis/DateTick.java
    (DateTick): New constructor,
    (equals): Clean up,
    * source/org/jfree/chart/axis/LogAxis.java
    (minorTickCount): Removed (now in superclass),
    (LogAxis(String)): Updated for removed field,
    (getMinorTickCount): Removed (now in superclass),
    (setMinorTickCount): Likewise,
    (refreshTicksHorizontal): Updated for removed field,
    (refreshTicksVertical): Likewise,
    (equals): Likewise,
    (hashCode): Likewise,
    * source/org/jfree/chart/axis/NumberAxis.java
    (refreshTicksHorizontal): Add minor ticks,
    (refreshTicksVertical): Likewise,
    * source/org/jfree/chart/axis/ValueAxis.java
    (minorTickCount): New field,
    (drawTickMarksAndLabels): Draw minor ticks,
    (getMinorTickCount): New method,
    (setMinorTickCount): Likewise,
    (equals): Updated for new field,
    * source/org/jfree/chart/plot/XYPlot.java
    (domainMinorGridlinesVisible): New field,
    (domainMinorGridlineStroke): Likewise,
    (domainMinorGridlinePaint): Likewise,
    (rangeMinorGridlinesVisible): Likewise,
    (rangeMinorGridlineStroke): Likewise,
    (rangeMinorGridlinePaint): Likewise,
    (XYPlot): Initialise new fields,
    (isDomainMinorGridlinesVisible): New method,
    (setDomainMinorGridlinesVisible): Likewise,
    (getDomainMinorGridlineStroke): Likewise,
    (setDomainMinorGridlineStroke): Likewise,
    (getDomainMinorGridlinePaint): Likewise,
    (setDomainMinorGridlinePaint): Likewise,
    (isRangeMinorGridlinesVisible): Likewise,
    (setRangeMinorGridlinesVisible): Likewise,
    (getRangeMinorGridlineStroke): Likewise,
    (setRangeMinorGridlineStroke): Likewise,
    (getRangeMinorGridlinePaint): Likewise,
    (setRangeMinorGridlinePaint): Likewise,
    (drawDomainGridlines): Draw minor gridlines too,
    (drawRangeGridlines): Likewise,
    (equals): Updated for new attributes,
    (writeObject): Likewise,
    (readObject): Likewise,
    * tests/org/jfree/chart/axis/junit/AxisTests.java
    (testEquals): Updated for new field,
    * tests/org/jfree/chart/axis/junit/DateTickTests.java
    (testEquals): Updated for new field,
    * tests/org/jfree/chart/plot/junit/XYPlotTests.java
    (testEquals): Updated for new fields.

2008-09-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/HighLowRenderer.java
    (drawItem): Check for non-null entity collection.

2008-09-24  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2113627
    * source/org/jfree/chart/renderer/xy/XYStepRenderer.java
    (drawItem): Draw item labels in second pass only, add chart
    entity info in first pass only.

2008-09-23  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2121818 (fix by Christoph Beck):
    * source/org/jfree/chart/plot/PiePlot.java
    (getLabelLinkDepth): New method,
    (drawLeftLabels): Use getLabelLinkDepth(),
    (drawRightLabels): Likewise,
    * source/org/jfree/chart/plot/RingPlot.java
    (getLabelLinkDepth): New method.

2008-09-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYBarRenderer.java
    (drawItem): Check shadow visibility before drawing shadow.

----------  JFREECHART 1.0.11 RELEASED ------------------------

2008-09-19  David Gilbert  <david.gilbert@object-refinery.com>

    Patch from Greg Darke, slightly modified:
    * source/org/jfree/chart/renderer/xy/XYItemRendererState.java
    (firstItemIndex): New field,
    (lastItemIndex): Likewise,
    (getFirstItemIndex): New method,
    (getLastItemIndex): New method,
    (startSeriesPass): Record first and last item indices,
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (State.startSeriesPass): Reset series state,
    (drawItem): Removed code that is handled in State now,
    (drawPrimaryLineAsPath): Fix check for last item.

2008-09-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/StandardChartTheme.java
    (smallFont): New field,
    (crosshairPaint): New field,
    (createDarknessTheme): Initialise crosshairPaint,
    (StandardChartTheme): Initialise new fields,
    (getCrosshairPaint): New method,
    (setCrosshairPaint): Likewise,
    (applyToXYPlot): Apply crosshair paint and process annotations,
    (applyToXYAnnotation): New method,
    (equals): Check new fields,
    (writeObject): Handle crosshairPaint,
    (readObject): Likewise.

2008-09-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (draw): Check title visibility,
    * source/org/jfree/chart/title/Title.java
    (visible): New field,
    (isVisible): New method,
    (setVisible): Likewise,
    (equals): Check visible flag.

2008-08-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (locale): New field,
    (DateAxis(String, TimeZone, Locale)): New constructor,
    (setTimeZone): Updated to use new locale field,
    (previousStandardDate): Likewise,
    (createStandardDateTickUnits(TimeZone)): Deprecated,
    (createStandardDateTickUnits(TimeZone, Locale)): New method.

2008-09-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (paintComponent): Modified chart buffer creation.

2008-09-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYShapeRenderer.java: New class,
    * tests/org/jfree/chart/renderer/xy/junit/XYShapeRendererTests.java:
    New tests,
    * tests/org/jfree/chart/renderer/xy/junit/RendererXYPackageTests.java
    (suite): Added XYShapeRendererTests.

2008-09-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYDataImageAnnotation.java:
    New class.

2008-09-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/PaintScaleLegend.java
    (PaintScaleLegend(PaintScale, ValueAxis)): Change axis range to reflect
    scale bounds.

2008-09-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/gantt/XYTaskDataset.java: New class,
    * tests/org/jfree/data/gantt/junit/DataGanttPackageTests.java
    (suite): Added XYTaskDatasetTests,
    * tests/org/jfree/data/gantt/junit/XYTaskDatasetTests.java: New file.

2008-09-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Day.java
    (Day(Date)): Use TimeZone.getDefault(),
    * source/org/jfree/data/time/Hour.java
    (Hour(Date)): Likewise,
    * source/org/jfree/data/time/Millisecond.java
    (Millisecond(Date)): Likewise,
    * source/org/jfree/data/time/Minute.java
    (Minute(Date)): Likewise,
    * source/org/jfree/data/time/Month.java
    (Month(Date)): Likewise,
    (parseMonth): Updated for changes in Year range,
    * source/org/jfree/data/time/Quarter.java
    (Quarter(Date)): Use TimeZone.getDefault(),
    * source/org/jfree/data/time/RegularTimePeriod.java
    (DEFAULT_TIME_ZONE): Deprecated,
    * source/org/jfree/data/time/Second.java
    (Second(Date)): Use TimeZone.getDefault(),
    * source/org/jfree/data/time/Week.java
    (Week(Date)): Likewise,
    * source/org/jfree/data/time/Year.java
    (MINIMUM_YEAR): New field,
    (MAXIMUM_YEAR): Likewise,
    (Year(int)): Updated range check,
    (Year(Date)): Use TimeZone.getDefault(),
    (previous): Updated for new range bounds,
    (next): Likewise,
    (equals): Cleaned up,
    * tests/org/jfree/data/time/junit/YearTests.java
    (testEquals): Extended,
    (test1900Previous): Modified and enamed testMinus9999Previous,
    (testParseYear): Updated.

2008-09-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/StandardChartTheme.java
    (applyToCategoryAxis): Check for SubCategoryAxis and set sublabel font and
    paint.

2008-09-03  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/annotations/XYTitleAnnotation.java:
    Moved to main,
    * experimental/org/jfree/experimental/chart/annotations/junit/XYTitleAnnotationTests.java
    Likewise,
    * experimental/org/jfree/experimental/chart/util/XYCoordinateType.java
    Likewise,
    * source/org/jfree/chart/annotation/XYTitleAnnotation.java:
    Transferred from experimental,
    * source/org/jfree/chart/util/XYCoordinateType.java: Likewise,
    * tests/org/jfree/chart/annotations/junit/AnnotationsPackageTests.java
    (suite): Added tests for XYTitleAnnotation,
    * tests/org/jfree/chart/annotations/junit/XYTitleAnnotationTests.java:
    New file.

2008-09-01  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2078057:
    * source/org/jfree/chart/axis/DateAxis.java
    (previousStandardDate): For month option, peg in case of
    non-default time zone,
    * source/org/jfree/data/time/Month.java
    (previous): Added API doc comments,
    (next): Likewise.

2008-09-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (valueToJava2D): Use DateRange methods that return millis,
    (java2DToValue): Likewise,
    * source/org/jfree/data/time/DateRange.java
    (getLowerMillis): New method,
    (getUpperMillis): Likewise.

2008-09-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/util/RelativeDateFormat.java
    (hourFormatter): New field,
    (minuteFormatter): New field,
    (RelativeDateFormat(long)): Initialise new fields,
    (setDayFormatter): New method,
    (setHourFormatter): Likewise,
    (setMinuteFormatter): Likewise,
    (format): Use new fields for formatting,
    (equals): Updated for new fields.

2008-09-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYDotRenderer.java
    (drawItem): Check for item visibility.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2031407:
    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (createStackedValueList): Encode series with negative values using -1
    offset,
    (drawStackHorizontal): Account for -1 offset,
    (drawStackVertical): Likewise.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2033721:
    * source/org/jfree/chart/renderer/WaferMapRenderer.java
    (getLegendCollection): Use lookupSeriesPaint.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 2051168:
    * source/org/jfree/chart/plot/PiePlot.java
    (getLegendItems): Populate with series key and index.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java:
    (currentTheme): New field,
    (getChartTheme): New method,
    (setChartTheme): Likewise,
    ...and applied current theme in all chart creation methods,
    * source/org/jfree/chart/ChartTheme.java: New file,
    * source/org/jfree/chart/ChartUtilities.java
    (applyCurrentTheme): New method,
    * source/org/jfree/chart/StandardChartTheme.java: New file.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (DEFAULT_MAXIMUM_DRAW_WIDTH): Increased to 1024,
    (DEFAULT_MAXIMUM_DRAW_HEIGHT): Increased to 768.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/GradientBarPainter.java
    (paintBar): Use outline paint,
    (paintBarShadow): Use shadow paint,
    * source/org/jfree/chart/renderer/category/StandardBarPainter.java
    (paintBarShadow): Use shadow paint.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (clearSeriesPaints): New method,
    (clearSeriesStrokes): Likewise.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (clearSectionPaints): New method,
    (clearSectionOutlinePaints): Likewise,
    (clearSectionOutlineStrokes): Likewise.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/SymbolAxis.java
    (drawGridBandsHorizontal): Use gridBandAlternatePaint,
    (drawGridBandsVertical): Likewise.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (getRendererCount): New method,
    * source/org/jfree/chart/plot/XYPlot.java
    (getRendererCount): Likewise.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/LegendTitle.java
    (getWrapper): New method.

2008-08-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Plot.java
    (setDrawingSupplier(DrawingSupplier, boolean)): New method.

2008-08-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (shadowPaint): New field,
    (getShadowPaint): New method,
    (setShadowPaint): Likewise,
    (equals): Updated for new field,
    (writeObject): For serialization,
    (readObject): Likewise.

2008-08-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    (totalWeight): Removed,
    (CombinedDomainCategoryPlot(CategoryAxis)): Updated for removed field,
    (add(CategoryPlot, int)): No longer need to track totalWeight,
    (remove): Likewise,
    (calculateAxisSpace): Compute totalWeight on-the-fly,
    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (totalWeight): Removed,
    (add(XYPlot, int)): No longer need to track totalWeight,
    (remove): Likewise,
    (calculateAxisSpace): Compute totalWeight on-the-fly,
    * source/org/jfree/chart/plot/CombinedRangeCategoryPlot.java
    (totalWeight): Removed,
    (add(CategoryPlot, int)): No longer need to track totalWeight,
    (remove): Likewise,
    (calculateAxisSpace): Compute totalWeight on-the-fly,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    (totalWeight): Removed,
    (add(XYPlot, int)): No longer need to track totalWeight,
    (remove): Likewise,
    (calculateAxisSpace): Compute totalWeight on-the-fly.

2008-07-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (drawQuadrants): Check for null axes,
    (render): Likewise.

2008-07-11  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1994355:
    * swt/org/jfree/experimental/swt/ChartComposite.java
    (addSWTListener): Changed argument type.

2008-07-11  David Gilbert  <david.gilbert@object-refinery.com>

    Synced from trunk change by Henry Proudhon:
    * swt/org/jfree/experimental/swt/SWTUtils.java
    (toSwtFontData): Simplified font style,
    (toAwtFont): Likewise.

2008-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (draw): Check outline visibility.

2008-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/ohlc/OHLCSeriesCollection.java
    (getXPosition): New method,
    (setXPosition): Likewise,
    (equals): Updated for xPosition attribute.

2008-07-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (render): Call new methods in XYItemRendererState,
    * source/org/jfree/chart/renderer/xy/XYItemRendererState.java
    (startSeriesPass): New method,
    (endSeriesPass): Likewise.

2008-07-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/CompositeTitle.java
    (backgroundPaint): New field,
    (CompositeTitle): Initialise new field,
    (getBackgroundPaint): New method,
    (setBackgroundPaint): Likewise,
    (draw): Fill background if necessary,
    (equals): Check backgroundPaint,
    (writeObject): Added serialization support for backgroundPaint,
    (readObject): Likewise.

2008-07-02  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 2006826:
    * source/org/jfree/chart/title/CompositeTitle.java
    (draw(Graphics2D, Rectangle2D)): Delegate to other draw method,
    (draw(Graphics2D, Rectangle2D, Parameters)): Modified implementation to
    return result from BlockContainer.

2008-07-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (autoPopulateSectionPaint): New field,
    (autoPopulateSectionOutlinePaint): Likewise,
    (autoPopulateSectionOutlineStroke): Likewise,
    (PiePlot(PieDataset)): Initialise new fields,
    (lookupSectionPaint(Comparable)): Use autoPopulateSectionPaint field,
    (getAutoPopulateSectionPaint): New method,
    (setAutoPopulateSectionPaint): Likewise,
    (lookupSectionOutlinePaint(Comparable)): Use autoPopulateSectionOutlinePaint
    field,
    (getAutoPopulateSectionOutlinePaint): New method,
    (setAutoPopulateSectionOutlinePaint): Likewise,
    (lookupSectionOutlineStroke(Comparable)):
    Use autoPopulateSectionOutlineStroke field,
    (getAutoPopulateSectionOutlineStroke): New method,
    (setAutoPopulateSectionOutlineStroke): Likewise,
    (drawItem): Updated lookup methods,
    (getLegendItems): Likewise,
    (equals): Updated for new fields,
    * source/org/jfree/chart/plot/PiePlot3D.java
    (draw): Updated lookup methods,
    * source/org/jfree/chart/plot/RingPlot.java
    (draw): Likewise.

2008-06-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (getCategoryMiddle(Comparable, List, Rectangle2D, RectangleEdge)):
    New method,
    * source/org/jfree/chart/plot/CategoryCrosshairState.java: New file,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (crosshairDatasetIndex): New field,
    (domainCrosshairVisible): Likewise,
    (domainCrosshairRowKey): Likewise,
    (domainCrosshairColumnKey): Likewise,
    (domainCrosshairStroke): Likewise,
    (domainCrosshairPaint): Likewise,
    (CategoryPlot): Initialise new fields,
    (indexOf): New method,
    (isDomainCrosshairVisible): Likewise,
    (setDomainCrosshairVisible): Likewise,
    (getDomainCrosshairRowKey): Likewise,
    (setDomainCrosshairRowKey): Likewise,
    (getDomainCrosshairColumnKey): Likewise,
    (setDomainCrosshairColumnKey): Likewise,
    (getCrosshairDatasetIndex): Likewise,
    (setCrosshairDatasetIndex): Likewise,
    (getDomainCrosshairPaint): Likewise,
    (setDomainCrosshairPaint): Likewise,
    (getDomainCrosshairStroke): Likewise,
    (setDomainCrosshairStroke): Likewise,
    (draw): Handle crosshairs,
    (render): Modified method signature to incorporate crosshair state,
    (drawDomainCrosshair): New method,
    (equals): Updated for new fields,
    (writeObject): Likewise,
    (readObject): Likewise,
    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    (draw): Fixed crosshair support,
    * source/org/jfree/chart/plot/CombinedRangeCategoryPlot.java
    (draw): Likewise,
    * source/org/jfree/chart/plot/CrosshairState.java
    (datasetIndex): New field,
    (getDatasetIndex): New method,
    (setDatasetIndex): New method,
    (getDomainAxisIndex): Deprecated,
    (getRangeAxisIndex): Deprecated,
    * source/org/jfree/chart/plot/XYCrosshairState.java: New subclass,
    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (getItemMiddle): New method,
    (updateCrosshairValues): Likewise,
    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (drawItem): Update crosshair state,
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/category/CategoryItemRenderer.java
    (getItemMiddle): New method,
    * source/org/jfree/chart/renderer/category/CategoryItemRendererState.java
    (crosshairState): New field,
    (getCrosshairState): New method,
    (setCrosshairState): Likewise,
    * source/org/jfree/chart/renderer/category/GanttRenderer.java
    (drawTasks): Update crosshair state,
    (drawTask): Likewise,
    (getItemMiddle): New method override,
    * source/org/jfree/chart/renderer/category/LevelRenderer.java
    (drawItem): Update crosshair state,
    (getItemMiddle): New method override,
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (drawItem): Update crosshair state,
    * tests/org/jfree/chart/plot/junit/CategoryPlotTests.java
    (testEquals): Updated for new fields.

2008-06-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarPainter.java: New file,
    * source/org/jfree/chart/renderer/category/BarRenderer.java:
    (defaultBarPainter): New field,
    (getDefaultBarPainter): New method,
    (setDefaultBarPainter): Likewise,
    (barPainter): New field,
    (shadowsVisible): Likewise,
    (shadowXOffset): Likewise,
    (shadowYOffset): Likewise,
    (BarRenderer): Initialise new fields,
    (getBarPainter): New method,
    (setBarPainter): Likewise,
    (getShadowsVisible): Likewise,
    (setShadowsVisible): Likewise,
    (getShadowXOffset): Likewise,
    (setShadowXOffset): Likewise,
    (getShadowYOffset): Likewise,
    (setShadowYOffset): Likewise,
    (drawItem): Use new barPainter,
    (equals): Check new fields,
    * source/org/jfree/chart/renderer/category/GanttRenderer.java
    (drawTask): Use new barPainter,
    (drawTasks): Likewise,
    * source/org/jfree/chart/renderer/category/GradientBarPainter.java:
    New file,
    * source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java
    (drawItem): Use new barPainter,
    * source/org/jfree/chart/renderer/category/IntervalBarRenderer.java
    (drawItem): Use new barPainter,
    * source/org/jfree/chart/renderer/category/StackedBarRenderer.java
    (getPassCount): Now returns 3,
    (drawItem): Use new barPainter,
    * source/org/jfree/chart/renderer/category/StandardBarPainter.java:
    New file,
    * source/org/jfree/chart/renderer/xy/ClusteredXYBarRenderer.java
    (getPassCount): Now returns 2,
    (drawItem): Use new barPainter,
    * source/org/jfree/chart/renderer/xy/GradientXYBarPainter.java: New file,
    * source/org/jfree/chart/renderer/xy/StackedXYBarRenderer.java
    (getPassCount): Now returns 3,
    (drawItem): Use new barPainter,
    * source/org/jfree/chart/renderer/xy/StandardXYBarPainter.java: New file,
    * source/org/jfree/chart/renderer/xy/XYBarPainter.java: New file,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (defaultBarPainter): New field,
    (getDefaultBarPainter): New method,
    (setDefaultBarPainter): Likewise,
    (barPainter): New field,
    (shadowsVisible): Likewise,
    (shadowXOffset): Likewise,
    (shadowYOffset): Likewise,
    (XYBarRenderer(double)): Initialise new fields,
    (getBarPainter): New method,
    (setBarPainter): Likewise,
    (getShadowsVisible): Likewise,
    (setShadowsVisible): Likewise,
    (getShadowXOffset): Likewise,
    (setShadowXOffset): Likewise,
    (getShadowYOffset): Likewise,
    (setShadowYOffset): Likewise,
    (drawItem): Use new barPainter,
    (equals): Check new fields,
    * tests/org/jfree/chart/renderer/category/junit/BarRendererTests.java
    (testEquals): Updated for new fields,
    * tests/org/jfree/chart/renderer/category/junit/GradientBarPainterTests.java:
    New file,
    * tests/org/jfree/chart/renderer/category/junit/RendererCategoryPackageTests.java
    (suite): Included new test classes,
    * tests/org/jfree/chart/renderer/category/junit/StandardBarPainterTests.java:
    New file,
    * tests/org/jfree/chart/renderer/xy/junit/GradientXYBarPainterTests.java:
    New file,
    * tests/org/jfree/chart/renderer/xy/junit/RendererXYPackageTests.java
    (suite): Included new test classes,
    * tests/org/jfree/chart/renderer/xy/junit/StandardXYBarPainterTests.java:
    New file,
    * tests/org/jfree/chart/renderer/xy/junit/XYBarRendererTests.java
    (testEquals): Updated for new fields.

2008-06-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (findRangeBounds): New method override,
    * tests/org/jfree/chart/renderer/xy/junit/XYBarRendererTests.java
    (testFindRangeBounds): New test method.

2008-06-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/PaintScaleLegend.java
    (subdivisions): New field,
    (PaintScaleLegend): Initialise new field,
    (getSubdivisionCount): New method,
    (setSubdivisionCount): Likewise,
    (SUBDIVISIONS): Removed private field,
    (draw): Modified segment calculations,
    (equals): Updated for new field.

2008-06-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYDrawableAnnotation.java
    (drawScaleFactor): New field,
    (width): Renamed displayWidth,
    (height): Renamed displayHeight,
    (XYDrawableAnnotation(double, double, double, double, double, Drawable)):
    New constructor,
    (draw): Apply scaling transform,
    (equals): Check drawScaleFactor field,
    (hashCode): Updated for renamed fields.

2008-06-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java
    (labelFont): New field,
    (labelPaint): Likewise,
    (getLabelFont): New method,
    (setLabelFont): Likewise,
    (getLabelPaint): Likewise,
    (setLabelPaint): Likewise,
    (setFillPaint): Likewise,
    (setLinePaint): Likewise,
    (setOutlinePaint): Likewise,
    (equals): Test new fields,
    (writeObject): Handle new field,
    (readObject): Likewise,
    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (legendShape): New field,
    (baseLegendShape): Likewise,
    (legendTextFont): Likewise,
    (baseLegendTextFont): Likewise,
    (legendTextPaint): Likewise,
    (baseLegendTextPaint): Likewise,
    (AbstractRenderer): Initialise new fields,
    (lookupLegendShape): New method,
    (getLegendShape): Likewise,
    (setLegendShape): Likewise,
    (getBaseLegendShape): Likewise,
    (setBaseLegendShape): Likewise,
    (lookupLegendTextFont): Likewise,
    (getLegendTextFont): Likewise,
    (setLegendTextFont): Likewise,
    (getBaseLegendTextFont): Likewise,
    (setBaseLegendTextFont): Likewise,
    (lookupLegendTextPaint): Likewise,
    (getLegendTextPaint): Likewise,
    (setLegendTextPaint): Likewise,
    (getBaseLegendTextPaint): Likewise,
    (setBaseLegendTextPaint): Likewise,
    (equals): Handle new fields,
    (clone): Likewise,
    (writeObject): Likewise,
    (readObject): Likewise,
    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java,
    * source/org/jfree/chart/renderer/category/AreaRenderer.java,
    * source/org/jfree/chart/renderer/category/BarRenderer.java,
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java,
    * source/org/jfree/chart/renderer/category/CategoryStepRenderer.java,
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java,
    * source/org/jfree/chart/renderer/category/ScatterRenderer.java,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java,
    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java,
    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java,
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java,
    * source/org/jfree/chart/renderer/xy/XYDotRenderer.java,
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java,
    (getLegendItem): Use new legend attributes,
    * source/org/jfree/chart/title/LegendTitle.java
    (createLegendItemBlock): Pass new attributes to text block.

2008-06-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/HighLowRenderer.java
    (drawItem): Call addEntity() method,
    * source/org/jfree/chart/renderer/xy/YIntervalRenderer.java
    (drawItem): Likewise.

----------  JFREECHART 1.0.10 RELEASED ------------------------

2008-06-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateTickUnit.java
    (addToDate(Date)): Deprecated.

2008-06-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Millisecond.java
    (compareTo): Added handling for general RegularTimePeriod.

2008-06-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/Axis.java
    (setTickLabelInsets(RectangleInsets)): Delegate to new method,
    (setTickLabelInsets(RectangleInsets, boolean)): New method.

2008-06-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/SimpleTimePeriod.java
    (start): Changed from Date to long,
    (end): Likewise,
    (getStartMillis): New method,
    (getEndMillis): Likewise,
    (getStart): Returns new date instance,
    (getEnd): Likewise.

2008-06-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2.java
    (drawItem): Handle PlotOrientation.HORIZONTAL.

2008-06-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (getLegendItems): Return early if dataset is null.

2008-06-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (drawRadarPoly): Check dataExtractOrder when generating chart entities.

2008-06-02  David Gilbert  <david.gilbert@object-refinery.com>

    Patches by Henry Proudhon:
    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (ChartComposite): Removed duplicate listener registration,
    (paintControl): Switched horizontalAxisTrace and verticalAxisTrace,
    (dispose): New method,
    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (transformsPool): New field,
    (setBackground): Use color pool,
    (setTransform): Use transform pool,
    (transform): Likewise,
    (disposeResourcePool): Clear the fontsPool and transformsPool,
    (getSwtTransformFromPool): New method,
    (toSwtTransform): Removed.

2008-06-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (isPointInRect): New utility method,
    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (drawItem): Modified bounds check for inclusion of chart entity,
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (drawSecondaryPass): Modified bounds check for inclusion of chart entity.

2008-05-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/DateRange.java
    (lowerDate): Changed from Date to long,
    (upperDate): Likewise,
    (DateRange(Date, Date)): Updated for field type change,
    (DateRange(long, long)): Likewise,
    (getLowerDate): Likewise,
    (getUpperDate): Likewise,
    (toString): Likewise,
    * source/org/jfree/data/time/FixedMillisecond.java
    (time): Changed from Date to long.

2008-05-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/AbstractXYItemLabelGenerator.java
    (getNullYString): New method,
    (equals): Check nullYString,
    * source/org/jfree/chart/labels/IntervalXYItemLabelGenerator.java:
    New file,
    * source/org/jfree/chart/renderer/xy/YIntervalRenderer.java
    (additionalItemLabelGenerator): New field,
    (YIntervalRenderer): Initialise new field,
    (getAdditionalItemLabelGenerator): New method,
    (setAdditionalItemLabelGenerator): Likewise,
    (drawItem): Added item label support,
    (drawAdditionalItemLabel): New method,
    (equals): New method override.

2008-05-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/HistogramDataset.java
    (clone): Reimplemented.

2008-05-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (calculateAxisSpace): Calculate space for range axes first, adjust the
    plotArea then calculate the space for the domain axes.

2008-05-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYStepAreaRenderer.java
    (drawItem): Use addEntity().

2008-05-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (addEntity): If area is null, take into account the plot orientation for
    the generated hotspot,
    * source/org/jfree/chart/renderer/xy/XYStepRenderer.java
    (drawItem): Use addEntity().

2008-05-13  David Gilbert  <david.gilbert@object-refinery.com>

    Bugs 1962467 and 1962472:
    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    (drawItem): Use hotspot that includes high and low values, and use
    addEntity() to add the chart entity.

2008-05-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/SlidingCategoryDataset.java: New class,
    * source/org/jfree/data/gantt/SlidingGanttCategoryDatsaet.java: Likewise,
    * tests/org/jfree/data/category/SlidingCategoryDatasetTests.java:
    New tests,
    * tests/org/jfree/data/gantt/SlidingGanttCategoryDatasetTests.java:
    Likewise.

2008-05-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/gantt/TaskSeries.java
    (clone): New method override,
    * source/org/jfree/data/gantt/TaskSeriesCollection.java
    (clone): Likewise.

2008-05-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/block/EmptyBlock.java
    (arrange): Use constraint.

2008-05-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/DefaultCategoryDataset.java:
    Implemented PublicCloneable.

2008-05-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (chartMouseListeners): Marked this field transient,
    (chartBuffer): Likewise,
    (writeObject): New method,
    (readObject): Likewise.

2008-05-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (zoomPoint): Changed from Point to Point2D,
    (getPointInRectangle): Changed return type to Point2D, and no longer round
    the coordinates in the returned point,
    (mouseReleased): Tidied up for readability,
    (restoreAutoDomainBounds): Updated for modified zoomPoint type,
    (restoreAutoRangeBounds): Likewise.

2008-05-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (drawItem): Ensure that minimumBarLength, if used, extends the non-base
    end of the bar.

2008-05-05  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1924543 by Richard West:
    * experimental/org/jfree/experimental/chart/demo/CombinedCategoryPlotDemo1.java:
    New file,
    * experimental/org/jfree/experimental/chart/demo/CombinedXYPlotDemo1.java:
    Likewise,
    * experimental/org/jfree/experimental/chart/plot/CombinedCategoryPlot.java:
    Likewise,
    * experimental/org/jfree/experimental/chart/plot/CombinedXYPlot.java:
    Likewise.

2008-05-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/ShortTextTitle.java: New file,
    * tests/org/jfree/chart/title/junit/ShortTextTitleTests.java: Likewise.

2008-05-01  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1955483:
    * source/org/jfree/data/xy/XYSeries.java
    (addOrUpdate(Number, Number)): Add a new item if duplicates are allows,
    (addOrUpdate(double, double)): New method.

2008-04-29  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/HighLowRenderer.java
    (tickLength): New field,
    (HighLowRenderer): Initialise new field,
    (getTickLength): New method,
    (setTickLength): Likewise,
    (equals): Added check for new field.

2008-04-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/TextTitle.java
    (maximumLinesToDisplay): New field,
    (getMaximumLinesToDisplay): New method,
    (setMaximumLinesToDisplay): Likewise,
    (arrangeFN): Pass maximumLinesToDisplay,
    (arrangeRR): Likewise,
    (equals): Added tests for additional fields.

2008-04-28  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1950037:
    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)):
    New method override,
    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)):
    New method override,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)):
    New method override.

2008-04-23  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1942059:
    * source/org/jfree/chart/axis/CategoryAxis.java
    (calculateTextBlockWidth): Use correct insets.

2008-04-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/BubbleXYItemLabelGenerator.java,
    * source/org/jfree/chart/labels/StandardPieSectionLabelGenerator.java:
    Implemented PublicCloneable.

2008-04-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItemCollection.java
    (clone): Reimplemented,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (equals): Check additional fields,
    (clone): Clone some internal structures.

2008-04-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java
    (LegendItem(String)): New constructor,
    (clone): Implemented.

2008-04-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/CategoryLineAnnotation.java,
    * source/org/jfree/chart/annotations/CategoryTextAnnotation.java:
    Implemented PublicCloneable.

2008-04-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java:
    Added new contributor Diego Pierangeli,
    * source/org/jfree/chart/urls/CustomCategoryURLGenerator.java:
    New class,
    * source/org/jfree/chart/urls/CustomXYURLGenerator.java
    (addURLSeries): Copy the incoming list.

2008-04-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/VectorRenderer.java,
    * source/org/jfree/chart/renderer/xy/XYBlockRenderer.java:
    Implemented PublicCloneable.

2008-04-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultHighLowDataset.java,
    * source/org/jfree/data/xy/DefaultIntervalXYDataset.java,
    * source/org/jfree/data/xy/DefaultWindDataset.java,
    * source/org/jfree/data/xy/DefaultXYZDataset.java,
    * source/org/jfree/data/xy/MatrixSeriesCollection.java,
    * source/org/jfree/data/xy/VectorSeriesCollection.java,
    * source/org/jfree/data/xy/XIntervalSeriesCollection.java,
    * source/org/jfree/data/xy/XYBarDataset.java,
    * source/org/jfree/data/xy/XYIntervalSeriesCollection.java,
    * source/org/jfree/data/xy/XYSeriesCollection.java,
    * source/org/jfree/data/xy/YIntervalSeriesCollection.java:
    Implemented PublicCloneable.

2008-04-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultTableXYDataset.java:
    Implemented PublicCloneable, plus
    (clone): New method override.

2008-04-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultOHLCDataset.java:
    Implemented PublicCloneable, plus
    (clone): New method override.

2008-04-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/CategoryTableXYDataset.java:
    Implemented PublicCloneable, plus
    (clone): New method override.

2008-04-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/ImageTitle.java
    (equals): New method override.

2008-04-18  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1943021 (Brian Cabana):
    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (MultiplePiePlot(CategoryDataset)): Call setDataset() to ensure that
    plot registers as a dataset listener,
    * tests/org/jfree/chart/plot/junit/MultiplePiePlotTests.java
    (testConstructors): New test method.

2008-04-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/ImageTitle.java
    (arrange): New method override to handle margin, border and padding,
    * test/org/jfree/chart/title/junit/ImageTitleTests.java
    (testArrangeNN): New test method.

2008-04-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/urls/CustomXYURLGenerator.java
    (clone): Implemented,
    * tests/org/jfree/chart/urls/junit/CustomPieURLGeneratorTests.java:
    New file,
    * tests/org/jfree/chart/urls/junit/CustomXYURLGeneratorTests.java
    (testEquals): New test method,
    (testCloning): Likewise,
    * tests/org/jfree/chart/urls/junit/UrlsPackageTests.java
    (suite): Added CustomPieURLGeneratorTests.

2008-04-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/DeviationRenderer.java
    (findRangeBounds): New method override,
    * source/org/jfree/chart/renderer/xy/YIntervalRenderer.java
    (findRangeBounds): Likewise.

2008-04-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XIntervalSeriesCollection.java
    (getStartXValue): New method override,
    (getEndXValue): Likewise.

2008-04-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XIntervalSeries.java
    (getXLowValue): New method,
    (getXHighValue): Likewise.

2008-04-08  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1932146:
    * source/org/jfree/chart/axis/PeriodAxis.java
    (setRange): Notify listeners,
    * tests/org/jfree/chart/axis/junit/PeriodAxisTests.java
    (lastEvent): New field,
    (axisChanged): New method,
    (test1932146): New test method.

2008-04-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/HighLowRenderer.java
    (findRangeBounds): New method override.

2008-04-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    (findRangeBounds): New method override,
    * source/org/jfree/data/general/DatasetUtilities.java
    (iterateRangeBounds(XYDataset)): Fixed typo for OHLCDataset.

2008-04-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/block/BorderArrangement.java
    (arrangeFF): Check for negative width remaining.

2008-04-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/block/ColorBlock.java
    (arrange): New method override,
    (draw): Add code for margin, border and padding,
    * source/org/jfree/chart/block/EmptyBlock.java
    (arrange): New method override,
    (draw(Graphics2D, Rectangle2D)): Delegate,
    (draw(Graphics2D, Rectangle2D, Object)): New method override.

2008-04-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimePeriodValue.java
    (toString): New method override,
    * source/org/jfree/data/time/TimePeriodValues.java
    (updateBounds): Update maxMiddleIndex correctly,
    * tests/org/jfree/data/time/junit/TimePeriodValues.java
    (testGetMinStartIndex): New test method,
    (testGetMaxStartIndex): Likewise,
    (testGetMinMiddleIndex): Likewise,
    (testGetMaxMiddleIndex): Likewise,
    (testGetMinEndIndex): Likewise,
    (testGetMaxEndIndex): Likewise.

2008-04-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (removeDomainMarker): Check for null collection,
    (removeRangeMarker): Likewise,
    * source/org/jfree/chart/plot/XYPlot.java
    (removeDomainMarker): Check for null collection,
    (removeRangeMarker): Likewise.

2008-04-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValue.java
    (equals): Simplified to reflect that this.key is never null.

2008-04-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBlockRenderer.java
    (drawItem): Inserted code to add entities.

2008-03-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (equals): Updated for labelLinkStyle field.

2008-03-31  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1891849 by Martin Hilpert:
    * source/org/jfree/chart/plot/PieLabelLinkStyle.java: New file,
    * source/org/jfree/chart/plot/PiePlot.java
    (labelLinkStyle): New field,
    (getLabelLinkStyle): New method,
    (setLabelLinkStyle): Likewise,
    (drawLeftLabel): Added support for labelLinkStyle field,
    (drawRightLabel): Likewise.

2008-03-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PieLabelDistributor.java
    (distributeLabels): Comment out adjustInwards() until it is working,
    (adjustDownwards): Fix check for lower bound,
    (adjustUpwards): Fix check for upper bound,
    (distributeEvenly): Allow overlapping rather than exceeding bounds.

2008-03-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (drawLeftLabels): Adjust label area for interiorGap,
    (drawRightLabels): Likewise.

2008-03-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/HighLowItemLabelGenerator.java:
    (hashCode): Implemented,
    * source/org/jfree/chart/labels/MultipleXYSeriesLabelGenerator.java:
    Likewise,
    * source/org/jfree/chart/labels/StandardCategorySeriesLabelGenerator.java:
    Likewise,
    * source/org/jfree/chart/labels/StandardXYSeriesLabelGenerator.java:
    Likewise,
    * source/org/jfree/chart/labels/SymbolicXYItemLabelGenerator.java:
    Likewise.

2008-03-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    (getSubplots): Return null if this.subplots is null,
    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java: Likewise,
    * source/org/jfree/chart/plot/CombinedRangeCategoryPlot.java: Likewise,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java: Likewise.

2008-03-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DatasetUtilities.java
    (iterateRangeBounds(CategoryDataset, boolean)): Modified implementation,
    (iterateRangeBounds(XYDataset, boolean)): Likewise,
    * tests/org/jfree/data/general/junit/DatasetUtilitiesTests.java
    (testFindRangeBounds3): New test,
    (testIterateCategoryRangeBounds): Renamed
    testIterateRangeBounds_CategoryDataset(),
    (testIterateRangeBounds2_CategoryDataset): New method,
    (testIterateRangeBounds3_CategoryDataset): Likewise,
    (testIterateXYRangeBounds): Renamed testIterateRangeBounds(),
    (testIterateXYRangeBounds2): Renamed testIterateRangeBounds2(),
    (testIterateRangeBounds3): New method,
    (testIterateRangeBounds4): Likewise,
    (testCumulativeRange3): Likewise,
    (testSampleFunction2D): Likewise.

2008-03-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DatasetUtilities.java
    (iterateCategoryRangeBounds): Deprecated,
    (iterateRangeBounds(CategoryDataset)): New method,
    (iterateRangeBounds(CategoryDataset, boolean)): Likewise.

2008-03-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DatasetUtilities.java
    (findRangeBounds(XYDataset, boolean)): Use boolean argument for call to
    iterateRangeBounds(),
    (iterateXYRangeBounds): Deprecated,
    (iterateRangeBounds(XYDataset)): New method,
    (iterateRangeBounds(XYDataset, boolean)): Likewise.

2008-03-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DatasetUtilities.java
    (sampleFunction2D): Fixed sample count bug.

2008-03-27  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1927239:
    * source/org/jfree/chart/renderer/category/WaterfallBarRenderer.java
    (findRangeBounds): Reimplemented to account for the special treatment of
    the value in the final category,
    * source/org/jfree/data/general/DatasetUtilities.java
    (findCumulativeRangeBounds): Include final category.

2008-03-27  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1926517:
    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java:
    (getDataRange): Override just to document,
    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (getDataRange): Added javadoc comment,
    * source/org/jfree/chart/plot/CombinedRangeCategoryPlot.java
    (getDataRange): Likewise,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    (getDataRange): Likewise.

2008-03-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (drawHorizontalItem): Draw box outline using itemOutlinePaint/Stroke,
    (drawVerticalItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java
    (lookupBoxPaint): New method,
    (drawHorizontalItem): Do lookup for box fill paint,
    (drawVerticalItem): Likewise.

2008-03-26  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1918209:
    * source/org/jfree/chart/axis/LogAxis.java
    (createTickLabel): Changed from private to protected.

2008-03-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    * source/org/jfree/chart/plot/CombinedRangeCategoryPlot.java
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    * source/org/jfree/chart/plot/CompassPlot.java
    * source/org/jfree/chart/plot/ContourPlot.java
    * source/org/jfree/chart/plot/MeterPlot.java
    * source/org/jfree/chart/plot/MultiplePiePlot.java
    * source/org/jfree/chart/plot/PiePlot.java
    * source/org/jfree/chart/plot/PiePlot3D.java
    * source/org/jfree/chart/plot/PolarPlot.java
    * source/org/jfree/chart/plot/RingPlot.java
    * source/org/jfree/chart/plot/SpiderWebPlot.java
    * source/org/jfree/chart/plot/ThermometerPlot.java
    * source/org/jfree/chart/plot/WaferMapPlot.java
    Use fireChangeEvent() method all over.

2008-03-25  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1914411:
    * source/org/jfree/chart/plot/Plot.java
    (fireChangeEvent): New method,
    * source/org/jfree/chart/plot/CategoryPlot.java
    * source/org/jfree/chart/plot/FastScatterPlot.java
    * source/org/jfree/chart/plot/XYPlot.java:
    Use fireChangeEvent() method all over.

2008-03-25  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1913751:
    * source/org/jfree/chart/plot/CategoryPlot.java
    (addDomainMarker(int, CategoryMarker, Layer, boolean)): New method,
    (removeDomainMarker(int, Marker, Layer, boolean)): Likewise,
    (addRangeMarker(int, CategoryMarker, Layer, boolean)): Likewise,
    (removeRangeMarker(int, Marker, Layer, boolean)): Likewise,
    (addAnnotation(CategoryAnnotation, boolean)): Likewise,
    (removeAnnotation(CategoryAnnotation, boolean)): Likewise.

2008-03-25  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1913751:
    * source/org/jfree/chart/plot/XYPlot.java
    (addDomainMarker(int, Marker, Layer, boolean)): New method,
    (removeDomainMarker(int, Marker, Layer, boolean)): Likewise,
    (addRangeMarker(int, Marker, Layer, boolean)): Likewise,
    (removeRangeMarker(int, Marker, Layer, boolean)): Likewise,
    (addAnnotation(XYAnnotation, boolean)): Likewise,
    (removeAnnotation(XYAnnotation, boolean)): Likewise.

2008-03-20  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1920854:
    * source/org/jfree/chart/plot/PiePlot3D.java
    (draw): Move label drawing outside section loop.

2008-03-19  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1902418:
    * source/org/jfree/chart/axis/LogAxis.java
    (refreshTicksVertical): Change tick type for major tick labels.

2008-03-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot3D.java
    (getMaximumExplodePercent): Check for null dataset,
    (initialise): Likewise,
    * tests/org/jfree/chart/plot/junit/PiePlot3DTests.java
    (testDrawWithNullDataset): New test method.

2008-02-26  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1901599:
    * experimental/org/jfree/chart/annotations/XYTitleAnnotation.java
    (draw): Check for null 'info' argument before adding entities,
    (hashCode): Reimplemented,
    * experimental/org/jfree/chart/annotations/junit/XYTitleAnnotationTests.java
    (testDrawWithNullInfo): New test.

2008-02-26  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1897580:
    * source/org/jfree/data/DefaultIntervalCategoryDataset.java
    (DefaultIntervalCategoryDataset(Comparable[], Comparable[], Number[][],
    Number[][]): Initialise seriesKeys and categoryKeys to empty arrays instead
    of null for empty dataset,
    (setCategoryKeys): Fixed argument check to handle empty dataset.

2008-02-19  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/util/LogFormat.java
    (powerLabel): New field,
    (LogFormat(double, String, boolean)): Delegate to new constructor,
    (LogFormat(double, String, String, boolean)): New constructor,
    (format): Use new powerLabel,
    (equals): New method override,
    (clone): Likewise.

2008-02-18  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1880114:
    * org/jfree/chart/renderer/xy/VectorRenderer.java
    (drawItem): Modify arrow-head for plot orientation.

2008-02-18  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1871902 by Martin Hoeller:
    * org/jfree/chart/plot/PolarPlot.java
    (DEFAULT_ANGLE_TICK_UNIT_SIZE): New field,
    (angleTickUnit): Likewise,
    (PolarPlot(XYDataset, ValueAxis, PolarItemRenderer)): Initialise
    angleTickUnit,
    (getAngleTickUnit): New method,
    (setAngleTickUnit): Likewise,
    (refreshAngleTicks): Likewise,
    (draw): Refresh angle tick list before drawing.

2008-02-15  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/data/DefaultKeyedValue.java
    (DefaultKeyedValue(Comparable, Number)): Check for null key.

2008-02-15  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1868745:
    * source/org/jfree/chart/axis/LogAxis.java
    (refreshTicksHorizontal): Adjust label anchor according to axis position,
    (refreshTicksVertical): Likewise.

2008-02-15  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1873328:
    * source/org/jfree/chart/util/RelativeDateFormat.java
    (showZeroHours): New field,
    (positivePrefix): Likewise,
    (RelativeDateFormat(long)): Initialise new fields,
    (getShowZeroHours): New method,
    (setShowZeroHours): Likewise,
    (getPositivePrefix): Likewise,
    (setPositivePrefix): Likewise,
    (format): Apply positive prefix, and fix formatting for negative values,
    (equals): Handle new fields,
    (hashCode): Use positivePrefix.

2008-02-15  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1873160:
    * source/org/jfree/chart/plot/DialPlot.java
    (draw): Fix clipping issues.

2008-02-14  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1892419:
    * source/org/jfree/chart/axis/LogAxis.java
    (LogAxis(String)): Change default number of minor ticks.

2008-02-14  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1874890 (Ulrich Voigt with contributions from Martin Hoeller):
    * source/org/jfree/chart/renderer/xy/XYStepRenderer.java
    (stepPoint): New field,
    (getStepPoint): New method,
    (setStepPoint): Likewise,
    (drawItem): Calculate step point using new field,
    (drawLine): New private method,
    (equals): New method override,
    (hashCode): Likewise.

2008-02-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (drawHorizontalItem): Call addEntity() to handle entity generation,
    (drawVerticalItem): Likewise.

2008-02-14  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1888422 (Rob Van der Sanden):
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (drawHorizontalItem): Use correct data area dimension for series gap
    calculation.

2008-01-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (draw): Reset fixed range axis space for subplots.

2008-01-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XIntervalSeriesCollection.java
    (removeSeries(int)): New method,
    (removeSeries(XIntervalSeries)): Likewise,
    (removeAllSeries): Likewise,
    * source/org/jfree/data/xy/XYIntervalSeriesCollection.java
    (removeSeries(int)): New method,
    (removeSeries(XYIntervalSeries)): Likewise,
    (removeAllSeries): Likewise,
    * source/org/jfree/data/xy/YIntervalSeriesCollection.java
    (removeSeries(int)): New method,
    (removeSeries(YIntervalSeries)): Likewise,
    (removeAllSeries): Likewise.

2008-01-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeriesCollection.java
    (getSeries): Changed argument from String to Comparable.

2008-01-15  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1866446 (Rob Van der Sanden):
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (maximumBarWidth): New field,
    (BoxAndWhiskerRenderer): Initialise new field,
    (getMaximumBarWidth): New method,
    (setMaximumBarWidth): Likewise,
    (equals): Updated for new field,
    * tests/org/jfree/chart/renderer/category/junit/BoxAndWhiskerRendererTests.java
    (testEquals): Updated to check new field.

2008-01-10  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1864222:
    * source/org/jfree/data/time/TimeSeries.java
    (createCopy(RegularTimePeriod, RegularTimePeriod)): Handle empty range,
    * tests/org/jfree/data/time/junit/TimeSeriesTests.java
    (testBug1864222): New test method.

2008-01-10  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1868521:
    * source/org/jfree/chart/ChartUtilities.java
    (writeChartAsJPEG): Create RGB image rather than ARGB.

----------  JFREECHART 1.0.9 RELEASED ------------------------

2008-01-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (drawQuadrants): Fix painting error when quadrant origin is outside plot
    area.

2008-01-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (drawHorizontalItem): Check visibility of average marker,
    (drawVerticalItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java
    (drawHorizontalItem): Check visibility of average marker,
    (drawVerticalItem): Likewise.

2007-12-20  David Gilbert  <david.gilbert@object-refinery.com>

    Fixes bug 1848961:
    * source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java
    (calculateBarW0): Use correct dataset index.

2007-12-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Week.java
    (Week(Date, TimeZone)): Hand on the zone,
    * tests/org/jfree/data/time/junit/WeekTests.java
    (testBug1448828): Control the default locale,
    (testBug1498805): Likewise,
    (testGetFirstMillisecondWithTimeZone): Control the default locale, and
    modify expected result accordingly,
    (testGetLastMillisecondWithTimeZone): Likewise.

2007-12-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/TextTitle.java
    (arrange): Implement additional options,
    (arrangeNN): New method,
    (arrangeFN): Likewise,
    (arrangeRN): Likewise.

2007-12-18  David Gilbert  <david.gilbert@object-refinery.com>

    Committing for Sergei Ivanov:
    * source/org/jfree/data/Range.java
    (intersects(Range)): New method,
    (expand): Handle special case for negative margins,
    (shift): Added argument check,
    (scale): New method,
    * tests/org/jfree/data/junit/RangeTests.java
    (testConstructor): New test,
    (testHashCode): Likewise,
    (testExpand): Additional checks,
    (testShift): New test,
    (testScale): Likewise.

2007-12-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/IntervalMarker.java
    (IntervalMarker(double, double, Paint)): New constructor.

2007-12-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/HashUtilities.java
    (hashCode(int, BooleanList)): New method,
    (hashCode(int, PaintList)): Likewise,
    (hashCode(int, StrokeList)): Likewise.

2007-12-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/entity/ChartEntity.java
    (getImageMapAreaTag): Don't escape tooltips and urls, delegate that to
    the tag generators,
    * source/org/jfree/chart/imagemap/StandardURLTagFragmentGenerator.java
    (generateURLFragment): Encode the url text,
    * tests/org/jfree/chart/imagemap/junit/ImageMapPackageTests.java: New file,
    * tests/org/jfree/chart/imagemap/junit/StandardToolTipTagFragmentGeneratorTests.java:
    Likewise,
    * tests/org/jfree/chart/imagemap/junit/StandardURLTagFragmentGeneratorTests.java:
    Likewise.

2007-12-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (setTitle): Handle listener registration,
    * tests/org/jfree/chart/junit/JFreeChartTests.java
    (testTitleChangeEvents): New test method.

2007-12-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/imagemap/DynamicDriveToolTipFragmentGenerator.java
    (generateToolTipFragment): Escape text,
    * source/org/jfree/chart/imagemap/OverLIBToolTipFragmentGenerator.java
    (generateToolTipFragment): Likewise,
    * source/org/jfree/chart/imagemap/StandardToolTipFragmentGenerator.java
    (generateToolTipFragment): Likewise,
    * source/org/jfree/chart/imagemap/StandardURLTagFragmentGenerator.java
    (generateURLFragment): Likewise.

2007-12-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (hashCode): Compute using more fields.

2007-12-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (createBufferedImage(int, int, ChartRenderingInfo)): Change image type,
    (createBufferedImage(int, int, double, double, ChartRenderingInfo)):
    Likewise.

2007-12-04  David Gilbert  <david.gilbert@object-refinery.com>

    Bugs 1363043 and 1840139:
    * source/org/jfree/chart/entity/ChartEntity.java
    (getImageMapAreaTag): Escape toolTipText and urlText,
    * source/org/jfree/chart/imagemap/ImageMapUtilities.java
    (getImageMap): Escape name,
    (htmlEscape): New method.

2007-12-04  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1460195:
    * source/org/jfree/chart/entity/ChartEntity.java
    (getImageMapAreaTag): Add 'nohref' attribute when there is no URL.

2007-12-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYSeriesCollection.java
    (getSeries(Comparable)): New method,
    * tests/org/jfree/data/xy/junit/XYSeriesCollectionTests.java
    (testGetSeriesByKey): New test method.

2007-11-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYDataItem.java
    (getXValue): New method,
    (getYValue): Likewise,
    (toString): Likewise.

2007-11-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LocalizationBundle_it.properties:
    Fixed errors.

2007-11-29  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MeterPlot.java
    (writeObject): Handle dialOutlinePaint,
    (readObject): Likewise,
    * tests/org/jfree/chart/plot/junit/MeterPlotTests.java
    (testEquals): Updated to test dialOutlinePaint,
    (testSerialization1): Likewise.

2007-11-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/ComparableObjectSeries.java
    (clear): Changed from protected to public,
    * source/org/jfree/data/xy/VectorSeries.java
    (clear): Removed,
    * tests/org/jfree/data/time/ohlc/junit/OHLCSeriesTests.java
    (testClear): New test method,
    * tests/org/jfree/data/xy/junit/VectorSeriesTests.java
    (testClear): Likewise,
    * tests/org/jfree/data/xy/junit/XIntervalSeriesTests.java
    (testClear): Likewise,
    * tests/org/jfree/data/xy/junit/XYIntervalSeriesTests.java
    (testClear): Likewise,
    * tests/org/jfree/data/xy/junit/YIntervalSeriesTests.java
    (testClear): Likewise.

2007-11-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (setFixedRangeAxisSpaceForSubplots): Call new method in XYPlot,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    (setFixedDomainAxisSpaceForSubplots): Likewise,
    * source/org/jfree/chart/plot/XYPlot.java
    (setFixedDomainAxisSpace(AxisSpace)): Delegate to new method,
    (setFixedDomainAxisSpace(AxisSpace, boolean)): New method,
    (setFixedRangeAxisSpace(AxisSpace)): Delegate to new method,
    (setFixedRangeAxisSpace(AxisSpace, boolean)): New method.

2007-11-27  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java:
    (drawImage(BufferedImage, BufferedImageOp, int, int)): Updated for method
    moved to SWTUtils,
    (drawImage(Image, int, int, ImageObserver)): Implemented,
    (drawImage(Image, int, int, int, int, ImageObserver)): Likewise,
    (drawImage(Image, int, int, Color, ImageObserver)): Likewise,
    (drawImage(Image, int, int, int, int, Color, ImageObserver)): Likewise,
    (convertToSWT(BufferedImage)): Moved to SWTUtils.java,
    * swt/org/jfree/experimental/swt/SWTUtils.java:
    (convertAWTImageToSWT): New method,
    (convertToSWT(BufferedImage)): Moved from SWTGraphics2D.java.

----------  JFREECHART 1.0.8 RELEASED ------------------------

2007-11-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/dial/DialPointer.java
    (Pointer.fillPaint): New attribute,
    (Pointer.outlinePaint): Likewise,
    (Pointer(int)): Initialize new fields,
    (getFillPaint): New method,
    (setFillPaint): Likewise,
    (getOutlinePaint): Likewise,
    (setOutlinePaint): Likewise,
    (draw): Use new attributes,
    (equals): Check new fields,
    (hashCode): Likewise,
    (writeObject): Handle serialization for new fields,
    (readObject): Likewise,
    * tests/org/jfree/chart/plot/dial/junit/DialPointerTests.java
    (testEqualsPointer): New test method,
    (testSerialization2): Likewise.

2007-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/HashUtilities.java
    (hashCode(int, int)): New method,
    * source/org/jfree/chart/needle/ArrowNeedle.java
    * source/org/jfree/chart/needle/LineNeedle.java
    * source/org/jfree/chart/needle/LongNeedle.java
    * source/org/jfree/chart/needle/MeterNeedle.java
    * source/org/jfree/chart/needle/MiddlePinNeedle.java
    * source/org/jfree/chart/needle/PinNeedle.java
    * source/org/jfree/chart/needle/PlumNeedle.java
    * source/org/jfree/chart/needle/PointerNeedle.java
    * source/org/jfree/chart/needle/ShipNeedle.java
    * source/org/jfree/chart/needle/WindNeedle.java:
    Implemented hashCode() method.

2007-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    * source/org/jfree/chart/renderer/xy/DeviationRenderer.java
    * source/org/jfree/chart/renderer/xy/HighLowRenderer.java
    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2.java
    * source/org/jfree/chart/renderer/xy/StackedXYBarRenderer.java
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    * source/org/jfree/chart/renderer/xy/XYBlockRenderer.java
    * source/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    * source/org/jfree/chart/renderer/xy/XYDotRenderer.java
    * source/org/jfree/chart/renderer/xy/XYErrormRenderer.java
    * source/org/jfree/chart/renderer/xy/XYLine3DRenderer.java
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    * source/org/jfree/chart/renderer/xy/XYSplineRenderer.java
    * source/org/jfree/chart/renderer/xy/XYStepAreaRenderer.java:
    Replaced calls to notifyListeners() with fireChangeEvent().

2007-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    * source/org/jfree/chart/renderer/category/BarRenderer3D.java
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    * source/org/jfree/chart/renderer/category/CategoryStepRenderer.java
    * source/org/jfree/chart/renderer/category/GanttRenderer.java
    * source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java
    * source/org/jfree/chart/renderer/category/LevelRenderer.java
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    * source/org/jfree/chart/renderer/category/LineRenderer3D.java
    * source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java
    * source/org/jfree/chart/renderer/category/ScatterRenderer.java
    * source/org/jfree/chart/renderer/category/StackedAreaRenderer.java
    * source/org/jfree/chart/renderer/category/StackedBarRenderer.java
    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    * source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java:
    Replaced calls to notifyListeners() with fireChangeEvent().

2007-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYSeries.java
    (clone): Reimplemented,
    * tests/org/jfree/data/xy/junit/XYSeriesTests.java
    (testCloning2): New method,
    (testCloning3): Likewise.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues.java
    (removeValue): Always rebuild index,
    * source/org/jfree/data/DefaultKeyedValues2D.java
    (removeColumn(Comparable)): Added argument checks, and protect against
    rows not containing the specified key,
    * tests/org/jfree/data/category/junit/DefaultCategoryDatasetTests.java
    (testBug1835955): New method,
    * tests/org/jfree/data/junit/DefaultKeyedValues2DTests.java
    (testRemoveColumnByKey): New method,
    * tests/org/jfree/data/junit/DefaultKeyedValuesTests.java
    (testGetIndex2): New method.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    Fix for bug 1832432:
    * source/org/jfree/data/time/TimeSeries.java
    (clone): Reimplemented.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/DatasetRenderingOrder.java
    (hashCode): Implemented,
    * source/org/jfree/chart/plot/DialShape.java
    (hashCode): Likewise,
    * source/org/jfree/chart/plot/PlotOrientation.java
    (hashCode): Likewise,
    * source/org/jfree/chart/plot/SeriesRenderingOrder.java
    (hashCode): Likewise.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (previousStandardDate): Return dates already fetched.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/CategoryAxis.java
    (equalPaintMaps): Use entrySet rather than keySet.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/PieLabelRecord.java
    (equals): Implemented.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/Outlier.java
    (equals): Implemented.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (shapesFilled): Deprecated,
    (getShapesFilled): Likewise,
    (setShapesFilled): Likewise,
    (setBaseShapesVisible): Call fireChangeEvent() instead of notifyListeners(),
    (setPlotLines): Likewise,
    (setGapThresholdType): Likewise,
    (setGapThreshold): Likewise,
    (setPlotImages): Likewise,
    (setLegendLine): Likewise.

2007-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (DEFAULT_INTERIOR_GAP): Modified default value,
    (maximumLabelWidth): Likewise,
    (labelGap): Likewise,
    (labelLinkMargin): Likewise,
    (DEBUG_DRAW_INTERIOR): New debug flag,
    (DEBUG_DRAW_LINK_AREA): Likewise,
    (DEBUG_DRAW_PIE_AREA): Likewise,
    (PiePlot(PieDataset)): Removed background paint setting,
    (drawPie): Modified label position calculations and added debug code,
    (drawLabels): Modified label width calculation,
    * source/org/jfree/chart/plot/PiePlot3D.java
    (depthFactor): Changed default value,
    (draw): Modified chart dimension calculations and added debug code, in line
    with changes made to the PiePlot class.

2007-11-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/dial/StandardDialScale.java
    (getLowerBound): New method,
    (setLowerBound): Likewise,
    (getUpperBound): Likewise,
    (setUpperBound): Likewise,
    (getMinorTickStroke): Likewise,
    (setMinorTickStroke): Likewise.

2007-11-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    (errorIndicatorStroke): New field,
    (StatisticalBarRenderer): Initialise new field,
    (getErrorIndicatorStroke): New method,
    (setErrorIndicatorStroke): Likewise,
    (drawHorizontalItem): Fix drawBarOutline and gradientPaintTransformer
    omissions, and use new errorIndicatorStroke field,
    (drawVerticalItem): Likewise,
    (equals): Updated for new field,
    (writeObject): Likewise,
    (readObject): Likewise.

----------  JFREECHART 1.0.7 RELEASED ------------------------

2007-11-14  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (ChartComposite): Create canvas with SWT.DOUBLE_BUFFERED,
    (getChartRenderingInfo): New method,
    (isDomainZoomable): Likewise,
    (setDomainZoomable): Likewise,
    (isRangeZoomable): Likewise,
    (setRangeZoomable): Likewise.

2007-11-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (setWeight): Fire change event,
    (setFixedDomainAxisSpace(AxisSpace)): Delegate to new method,
    (setFixedDomainAxisSpace(AxisSpace, boolean)): New method,
    (setFixedRangeAxisSpace(AxisSpace)): Delegate to new method,
    (setFixedRangeAxisSpace(AxisSpace, boolean)): New method,
    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    (setFixedRangeAxisSpaceForSubplots): Updated,
    * source/org/jfree/chart/plot/CombinedRangeCategoryPlot.java
    (setFixedDomainAxisSpaceForSubplots): Updated.

2007-11-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfere/chart/HashUtilities.java
    (hashCode(int, Comparable)): New method,
    * source/org/jfree/chart/entity/CategoryLabelEntity.java
    (equals): New method,
    (hashCode): Likewise.

2007-11-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/ModuloAxis.java
    (equals): Implemented.

2007-11-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/entity/ChartEntity.java
    (hashCode): Implemented,
    * source/org/jfree/chart/entity/PieSectionEntity.java
    (equals): Implemented,
    (hashCode): Likewise.

2007-11-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/HashUtilities.java
    (hashCode(int, boolean)): New method,
    (hashCode(int, double)): Likewise,
    (hashCode(int, Paint)): Likewise,
    (hashCode(int, Stroke)): Likewise,
    (hashCode(int, String)): Likewise.

2007-11-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/dial/AbstractDialLayer.java
    (hashCode): Implemented.

2007-11-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/DefaultBoxAndWhiskerXYDataset.java
    (add): Fire dataset change event,
    (getY): Removed redundant constructor call,
    (equals): New method override,
    (clone): Likewise.

2007-11-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (equals): Added check for domain/rangeTickBandPaint,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (fillDomainGridBand): Handle plot orientation properly,
    (fillRangeGridBand): Likewise.

2007-11-12  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1827829 from Richard West:
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (drawItemLabel): Fixed NPE.

2007-11-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (drawItem): Simplified entity generation,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (drawItem): Likewise.

2007-11-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYDotRenderer.java
    (legendShape): New field,
    (XYDotRenderer): Initialise new field,
    (getLegendShape): New method,
    (setLegendShape): Likewise,
    (getLegendItem): New method override,
    (equals): Updated for new field,
    (readObject): New method,
    (writeObject): New method.

2007-11-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (paintComponent): Clear refreshBuffer flag before drawing chart.

2007-11-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/DefaultMultiValueCategoryDataset.java
    (getValues): Return EMPTY_LIST rather than null.

2007-11-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (TimeSeries(String)): Changed first argument to Comparable,
    (TimeSeries(String, Class)): Likewise,
    (TimeSeries(String, String, String, Class)): Likewise.

2007-11-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (setFixedDomainAxisSpace): Fire change event,
    (setFixedRangeAxisSpace): Likewise.

2007-11-05  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1823724 by Richard West:
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (drawItemPass1): Add code to draw item labels.

2007-11-05  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1823697 by Richard West:
    * source/org/jfree/chart/plot/XYPlot.java
    (removeDomainMarker(Marker)): New method,
    (removeDomainMarker(Marker, Layer)): Likewise,
    (removeDomainMarker(int, Marker, Layer)): Likewise,
    (removeRangeMarker(Marker)): New method,
    (removeRangeMarker(Marker, Layer)): Likewise,
    (removeRangeMarker(int, Marker, Layer)): Likewise.

2007-11-05  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1823697 by Richard West:
    * source/org/jfree/chart/plot/CategoryPlot.java
    (removeDomainMarker(Marker)): New method,
    (removeDomainMarker(Marker, Layer)): Likewise,
    (removeDomainMarker(int, Marker, Layer)): Likewise,
    (removeRangeMarker(Marker)): New method,
    (removeRangeMarker(Marker, Layer)): Likewise,
    (removeRangeMarker(int, Marker, Layer)): Likewise.

2007-10-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues.java
    (data): Removed,
    (keys): New field,
    (values): Likewise,
    (indexMap): New field,
    (DefaultKeyedValues): Initialise new fields,
    (getItemCount): Use new data fields,
    (getValue(int)): Likewise,
    (getKey(int)): Likewise,
    (getIndex(Comparable)): Likewise,
    (getKeys): Likewise,
    (setValue(Comparable, Number)): Likewise,
    (insertValue): Likewise,
    (rebuildIndex): Likewise,
    (removeValue): Likewise,
    (clear): Likewise,
    (sortByKeys): Likewise,
    (sortByValue): Likewise,
    (hashCode): Likewise,
    (clone): Likewise.

2007-10-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/ComparableObjectSeries.java
    (hashCode): Faster implementation,
    * source/org/jfree/data/time/TimeSeries.java
    (hashCode): Likewise,
    * source/org/jfree/data/xy/XYSeriesTests.java
    (hashCode): Likewise.

2007-10-29  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/dial/SimpleDialFrame.java:
    Renamed StandardDialFrame.java.

2007-10-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (linesVisible): Deprecated,
    (shapesVisible): Likewise,
    (shapesFilled): Likewise,
    (getLinesVisible): Likewise,
    (setLinesVisible): Likewise,
    (getShapesVisible): Likewise,
    (setShapesVisible): Likewise,
    (setShapesFilled): Likewise.

2007-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYSplineAndShapeRenderer.java:
    Renamed XYSplineRenderer.

2007-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYSplineAndShapeRenderer.java
    (drawPrimaryLineAsPath): Check for duplicated control points,
    (ControlPoint.equals): New method override.

2007-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (getDomainAxisIndex): Added argument check,
    (getRangeAxisIndex): Likewise.

2007-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/StandardTickUnitSource.java:
    Implemented Serializable,
    (StandardTickUnitSource): Added explicit constructor,
    (equals): New method override,
    (hashCode): Likewise.

2007-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (defaultDirectoryForSaveAs): New field,
    (ChartPanel(JFreeChart, int, int, int, int, int, int, boolean, boolean,
    boolean, boolean, boolean, boolean)): Initialise new field,
    (getDefaultDirectoryForSaveAs): New method,
    (setDefaultDirectoryForSaveAs): Likewise,
    (doSaveAs): Apply default directory.

2007-10-24  David Gilbert  <david.gilbert@object-refinery.com>

    * experimenta/org/jfree/experimental/chart/plot/dial/*.java:
    Moved this package to org.jfree.chart.plot.dial.*,
    * experimenta/org/jfree/experimental/chart/plot/dial/junit/*.java:
    Moved this package to org.jfree.chart.plot.dial.junit.*.

2007-10-24  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialFrame.java:
    Removed and renamed ArcDialFrame.java,
    * experimental/org/jfree/experimental/chart/plot/dial/ArcDialFrame.java:
    New file.

2007-10-24  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/plot/dial/DialPlot.java
    (pointers): New field,
    (DialPlot): Delegate to new constructor,
    (DialPlot(ValueDataset)): New constructor,
    (addPointer): New method,
    (getPointerIndex): Likewise,
    (removePointer(int)): Likewise,
    (removePointer(DialPointer)): Likewise,
    (getPointerForDataset): Likewise,
    (draw): Draw pointers in their own layer,
    (equals): Check new pointers field,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPointer.java:
    Implemented PublicCloneable,
    (DialPointer): Changed to protected,
    (DialPointer(int)): Likewise, and changed default radius,
    (Pin.setPaint): Added argument check,
    (Pin.setStroke): Likewise,
    (Pointer(int)): Removed radius setting,
    * experimental/org/jfree/experimental/chart/plot/dial/DialTextAnnotation.java
    (getAnchor): New method,
    (setAnchor): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/DialValueIndicator.java
    (DialValueIndicator): New constructor,
    (DialValueIndicator(int, String)): Removed string argument,
    (setDatasetIndex): Fire change event,
    (setTemplateValue): Check for null argument,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialFrame.java
    (setInnerRadius): Added argument check,
    (setOuterRadius): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialRange.java
    (scaleIndex): New field,
    (StandardDialRange(double, double)): Added field initialisations,
    (getScaleIndex): New method,
    (setScaleIndex): Likewise,
    (draw): Get the correct scale,
    (equals): Updated for new field,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialScale.java
    (minorTickPaint): New field,
    (minorTickStroke): Likewise,
    (tickLabelFormatter): Likewise,
    (StandardDialScale): Updated for modified constructor signature,
    (StandardDialScale(double, double, double, double)): Added two new
    arguments to signature,
    (setMajorTickLength): Added argument check,
    (setMinorTickCount): Likewise,
    (setMinorTickLength): Likewise,
    (getMinorTickPaint): New method,
    (setMinorTickPaint): Likewise,
    (getTickLabelFormatter): Likewise,
    (setTickLabelFormatter): Likewise,
    (draw): Fix major tick length, format labels with new formatter,
    (equals): Updated for new fields,
    (hashCode): Implemented,
    (writeObject): Handle new fields,
    (readObject): Likewise.

2007-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (drawRoundRect): Implemented,
    (fillRoundRect): Likewise,
    (clearRect): Implemented.

2007-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (drawArc): Implemented,
    (fillArc): Likewise.

2007-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (drawOval): Implemented,
    (fillOval): Likewise.

2007-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (drawPolyline): Implemented.

2007-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (drawPolygon): Implemented.

2007-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (hints): New field,
    (SWTGraphics2D): Initialise new field,
    (getRenderingHint): Implemented,
    (setRenderingHint): Likewise,
    (getRenderingHints): Likewise,
    (addRenderingHints): Likewise,
    (setRenderingHints): Likewise.

2007-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (lookupSeriesPaint): Call accessor methods for per-series paint,
    (lookupSeriesFillPaint): Likewise,
    (lookupSeriesOutlinePaint): Likewise,
    (lookupSeriesStroke): Likewise,
    (lookupSeriesOutlineStroke): Likewise,
    (lookupSeriesStroke): Likewise.

2007-10-22  Henry Proudhon  <henry.proudhon@insa-lyon.fr>

    * source/swt/org/jfree/experimental/chart/swt/ChartComposite.java:
    (chart): Made the chart field be private again,
    (ChartComposite): Refactored class, now implements PaintListener,
    MouseListener and MouseMovedListener,
    (zoom): Fixed bug with multiple plots,
    (addChartMouseListener): Implemented,
    (removeChartMouseListener): Likewise,
    (restoreAutoDomainBounds): Fixed NPE,
    (restoreAutoRangeBounds): Likewise,
    (widgetDefaultSelected): Implemented,
    (addSWTListener): New method,
    (mouseDoubleClick): Likewise,
    (mouseDown): Likewise,
    (mouseUp): Likewise,
    (mouseMove): Likewise,
    (paintControl): Likewise,
    * source/swt/org/jfree/experimental/swt/SWTUtils.java
    (toAwtMouseEvent): changed method signature.

2007-10-22  Henry Proudhon  <henry.proudhon@insa-lyon.fr>

    * source/swt/org/jfree/experimental/swt/SWTUtils.java
    (toAwtMouseEvent): Improved mouse event conversion.

2007-10-22  Henry Proudhon  <henry.proudhon@ensmp.fr>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (composite): New field,
    (setComposite): Implemented,
    (getComposite): Return from field.

2007-10-22  Henry Proudhon  <henry.proudhon@insa-lyon.fr>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (getClip): Implemented.

2007-10-17  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/plot/dial/AbstractDialLayer.java
    (equals): New method override,
    (clone): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/DialBackground.java
    (equals): Added call to super.equals();
    * experimental/org/jfree/experimental/chart/plot/dial/DialCap.java
    (equals): Added call to super.equals();
    * experimental/org/jfree/experimental/chart/plot/dial/DialPlot.java
    (setBackground): Fix listener registration,
    (setCap): Likewise,
    (setDialFrame): Likewise,
    (addLayer): Likewise,
    (getLayerIndex(DialLayer)): New method,
    (removeLayer(int)): Likewise,
    (removeLayer(DialLayer)): Likewise,
    (addScale): Fix listener registration,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPointer.java
    (equals): New method override,
    (Pin.equals): Likewise,
    (Pin.readObject): New method,
    (Pin.writeObject): Likewise,
    (Pointer.equals): New method override,
    * experimental/org/jfree/experimental/chart/plot/dial/DialScale.java:
    Now extends DialLayer,
    * experimental/org/jfree/experimental/chart/plot/dial/DialTextAnnotation.java
    (equals): Added call to super.equals();
    * experimental/org/jfree/experimental/chart/plot/dial/DialValueIndicator.java
    (equals): Added call to super.equals();
    * experimental/org/jfree/experimental/chart/plot/dial/SimpleDialFrame.java
    (equals): Added call to super.equals();
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialFrame.java
    (equals): Added call to super.equals();
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialRange.java
    (increment): Removed field,
    (setLowerBound): Added argument check,
    (setUpperBound): Likewise,
    (setBounds): New method,
    (equals): Updated,
    (hashCode): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialScale.java
    (setTickRadius): Added argument check,
    (setMajorTickIncrement): Likewise,
    (setTickLabelPaint): Likewise,
    (equals): Updated.

2007-10-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/AbstractXYItemLabelGenerator.java:
    (nullXString): Removed,
    (createItemArray): Removed check for null x-value.

2007-10-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer3D.java
    (drawRangeMarker): Use adjusted data area;
    * source/org/jfree/chart/renderer/category/LineRenderer3D.java
    (drawRangeMarker): Use adjusted data area, and call super to handle
    IntervalMarker (DG);

2007-10-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/MultiValueRenderer.java:
    Renamed ScatterRenderer.java;
    * tests/org/jfree/chart/renderer/category/junit/MultiValueRendererTests.java:
    Renamed ScatterRendererTests.java.

2007-10-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/ThermometerPlot.java
    (DEFAULT_GAP_RADIUS): Renamed DEFAULT_GAP,
    (gapRadius): Renamed gap,
    (getGapRadius): Renamed getGap(),
    (setGapRadius): Renamed setGap(),
    (getGapDiameter): Removed,
    (draw): Updated for method name changes,
    (equals): Likewise.

2007-10-08  David Gilbert  <david.gilbert@object-refinery.com>

    Based on Patch 1769088:
    * source/org/jfree/chart/plot/ThermometerPlot.java
    (BULB_RADIUS): Deprecated,
    (BULB_DIAMETER): Likewise,
    (COLUMN_RADIUS): Likewise,
    (COLUMN_DIAMETER): Likewise,
    (GAP_RADIUS): Likewise,
    (GAP_DIAMETER): Likewise,
    (bulbRadius): New field,
    (columnRadius): Likewise,
    (gapRadius): Likewise,
    (getBulbRadius): New method,
    (setBulbRadius): Likewise,
    (getBulbDiameter): Likewise,
    (getColumnRadius): Likewise,
    (setColumnRadius): Likewise,
    (getColumnDiameter): Likewise,
    (getGapRadius): Likewise,
    (setGapRadius): Likewise,
    (getGapDiameter): Likewise,
    (draw): Use attributes rather than constants,
    (equals): Updated for new fields,
    * tests/org/jfree/chart/plot/junit/ThermometerPlotTests.java
    (testEquals): Updated for new fields.

2007-10-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/MultiShapeRenderer.java:
    New file,
    * source/org/jfree/data/statistics/DefaultMultiValueCategoryDataset.java:
    Likewise,
    * source/org/jfree/data/statistics/MultiValueCategoryDataset.java:
    Likewise,
    * tests/org/jfree/chart/renderer/category/junit/MultiShapeRendererTests.java:
    Likewise,
    * tests/org/jfree/chart/renderer/category/junit/RendererCategoryPackageTests.java
    (suite): Added MultiShapeRendererTests,
    * tests/org/jfree/data/statistics/junit/DataStatisticsPackageTests.java
    (suite): Added DefaultMultiValueCategoryDatasetTests,
    * tests/org/jfree/data/statistics/junit/DefaultMultiValueCategoryDatasetTests.java:
    New file.

2007-10-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/ValueMarker.java
    (ValueMarker(double, Paint, Stroke, Paint, Stroke, float)): Fixed call
    to super,
    * tests/org/jfree/chart/plot/junit/ValueMarkerTests.java
    (test1808376): New test method.

2007-10-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    (volumePaint): New field,
    (CandlestickRenderer(double, boolean, XYToolTipGenerator)): Initialise new
    field,
    (getVolumePaint): New method,
    (setVolumePaint): Likewise,
    (drawItem): Use new paint attribute,
    (equals): Add check for new field,
    (writeObject): Handle serialization for new field,
    (readObject): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/CandlestickRendererTests.java
    (EPSILON): New field,
    (testConstructor): New method,
    (testEquals): Added check for new field.

2007-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    Based on patch 1805262 by Alex Moots:
    * source/org/jfree/chart/plot/PiePlot3D.java
    (darkerSides): New field,
    (getDarkerSides): New method,
    (setDarkerSides): Likewise,
    (drawSide): Make side colour darker if necessary,
    (equals): Updated for new field,
    * tests/org/jfree/chart/plot/junit/PiePlot3DTests.java
    (testEquals): Updated for new field.

2007-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/KeyedObjects2D.java
    (getRowIndex): Check for null argument,
    (getColumnIndex): Likewise,
    (removeObject): Check for unknown keys,
    (clear): New method,
    * source/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDataset.java
    (rangeBounds): Removed,
    (DefaultBoxAndWhiskerCategoryDataset()): Updated for removed field,
    (add(BoxAndWhiskerItem, Comparable, Comparable)): Likewise,
    (remove(Comparable, Comparable)): New method,
    (removeRow(int)): Likewise,
    (removeRow(Comparable)): Likewise,
    (removeColumn(int)): Likewise,
    (removeColumn(Comparable)): Likewise,
    (clear): Likewise,
    (getRangeBounds): Return new instance every time,
    * source/org/jfree/data/statistics/DefaultStatisticalCategoryDataset.java
    (remove(Comparable, Comparable)): New method,
    (removeRow(int)): Likewise,
    (removeRow(Comparable)): Likewise,
    (removeColumn(int)): Likewise,
    (removeColumn(Comparable)): Likewise,
    (clear): Likewise,
    (getRangeBounds): Return new instance every time,
    * tests/org/jfree/data/statistics/junit/DefaultBoxAndWhiskerCategoryDatasetTests.java
    (testRemove): New method,
    * tests/org/jfree/data/statistics/junit/DefaultStatisticalCategoryDatasetTests.java
    (testRemove): New method.

2007-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDataset.java
    (add(BoxAndWhiskerItem, Comparable, Comparable)): Update cached bounds by
    iteration if necessary,
    (updateBounds): New private method,
    * tests/org/jfree/data/statistics/junit/DefaultBoxAndWhiskerCategoryDatasetTests.java
    (testGetRangeBounds): New test method.

2007-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/KeyedObjects2D.java
    (getObject(Comparable, Comparable)): Check arguments for null or
    unrecognised keys,
    (setObject(Object, Comparable, Comparable): Check for null arguments,
    (removeObject): Check if row or column needs removing,
    (removeRow(Comparable)): Check for unrecognised key,
    (removeColumn(Comparable)): Likewise,
    * tests/org/jfree/data/junit/KeyedObjects2DTests.java
    (testGetValueByIndex): New test method,
    (testGetValueByKey): Likewise,
    (testSetObject): Likewise,
    (testRemoveRowByIndex): Likewise,
    (testRemoveColumnByIndex): Likewise,
    (testRemoveRowByKey): Likewise,
    (testRemoveColumnByKey): Likewise,
    (testRemoveValue): Likewise.

2007-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues.java
    (removeValue(Comparable)): Throw UnknownKeyException for unrecognised key,
    * source/org/jfree/data/KeyedObjects.java
    (getObject(int)): Allow IndexOutOfBoundsException to be thrown,
    (getKey(int)): Likewise,
    (getIndex): Check for null argument,
    (getObject): Throw UnknownKeyException for unrecognised key,
    (insertValue): New method,
    (removeValue): Throw UnknownKeyException for unrecognised key,
    (clear): New method,
    (hashCode): Likewise,
    * source/org/jfree/data/KeyedObjects2D.java
    (getObject): Check for missing key in underlying data structure,
    * tests/org/jfree/data/junit/DefaultKeyedValuesTests.java
    (testRemoveValue): Updated checks for consistency with KeyedObjects,
    * tests/org/jfree/data/junit/KeyedObjectsTests.java
    (testInsertAndRetrieve): Updated checks,
    (testGetObject): New test method,
    (testGetKey): Likewise,
    (testGetIndex): Likewise,
    (testSetObject): Likewise,
    (testRemoveValue): Likewise,
    (testRemoveValueInt): Likewise.

2007-10-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/DefaultStatisticalCategoryDataset.java
    (minimumRangeValueRow): New field,
    (minimumRangeValueColumn): Likewise,
    (minimumRangeValueIncStdDevRow): Likewise,
    (minimumRangeValueIncStdDevColumn): Likewise,
    (maximumRangeValueRow): Likewise,
    (maximumRangeValueColumn): Likewise,
    (maximumRangeValueIncStdDevRow): Likewise,
    (maximumRangeValueIncStdDevColumn): Likewise,
    (DefaultStatisticalCategoryDataset()): Initialise new fields,
    (add(Number, Number, Comparable, Comparable)): Fixed calculation of bounds,
    (updateBounds): New method,
    (getRangeLowerBound): Observe includeInterval flag,
    (getRangeUpperBound): Likewise,
    * source/org/jfree/data/statistics/MeanAndStandardDeviation.java
    (getMeanValue): New method,
    (getStandardDeviationValue): Likewise,
    (toString): Likewise,
    * tests/org/jfree/data/statistics/junit/DefaultStatisticalCategoryDatasetTests.java
    (testGetRangeBounds): Fixed broken test,
    (EPSILON): New field,
    (testAdd): New test method,
    (testGetRangeLowerBound): Likewise,
    (testGetRangeUpperBound): Likewise,
    (testGetRangeBounds2): Likewise.

2007-10-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/BoxAndWhiskerItem.java
    (BoxAndWhiskerItem(double, double, double, double, double, double,
    double, double, List)): New constructor,
    * source/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDataset.java
    (minimumRangeValue): Changed from Number to double,
    (minimumRangeValueRow): New field,
    (minimumRangeValueColumn): Likewise,
    (maximumRangeValue): Changed from Number to double,
    (maximumRangeValueRow): New field,
    (maximumRangeValueColumn): Likewise,
    (DefaultBoxAndWhiskerCategoryDataset): Updated for changed field types,
    (add): Fix updating of cached range values,
    (getRangeLowerBound): Update for changed field type,
    (getRangeUpperBound): Likewise,
    * tests/org/jfree/data/statistics/junit/DefaultBoxAndWhiskerCategoryDataset.java
    (testAdd): New test method,
    (testAddUpdatesCachedRange): Likewise,
    (testConstructor): Likewise.

2007-09-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/KeyedObjects.java
    (equals): Cleaned up,
    * source/org/jfree/data/KeyedObjects2D.java
    (equals): Likewise,
    (clone): Clone data storage,
    * source/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDataset.java
    (clone): New method override,
    * source/org/jfree/data/statistics/DefaultStatisticalCategoryDataset.java
    (clone): Likewise,
    * tests/org/jfree/data/junit/KeyedObjects2DTests.java
    (testEquals): New test,
    (testCloning): Check independence,
    * tests/org/jfree/data/junit/KeyedObjectsTests.java
    (testCloning2): New test,
    * tests/org/jfree/data/junit/KeyedObjectTests.java
    (testCloning2): New test,
    * tests/org/jfree/data/statistics/junit/DefaultBoxAndWhiskerCategoryDatasetTests.java
    (testCloning): Check independence,
    * tests/org/jfree/data/statistics/junit/DefaultStatisticalCategoryDatasetTests.java
    (testCloning): Check independence.

2007-09-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java
    (drawItem): Simplified entity generation code.

2007-09-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java
    (setGroupStroke): Check for null argument, add event notification,
    (equals): New method override,
    * tests/org/jfree/chart/renderer/category/junit/MinMaxCategoryRendererTests.java
    (testEquals): Extended to cover additional fields.

2007-09-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (drawItem): Apply new offset option to x-coordinates.

2007-09-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (getCategorySeriesMiddle): New method,
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (useSeriesOffset): New field,
    (itemMargin): Likewise,
    (LineAndShapeRenderer(boolean, boolean)): Initialise new fields,
    (getUseSeriesOffset): New method,
    (setUseSeriesOffset): Likewise,
    (getItemMargin): Likewise,
    (setItemMargin): Likewise,
    (drawItem): Apply new offset option to x-coordinates,
    (equals): Check new fields,
    * tests/org/jfree/chart/renderer/category/junit/LineAndShapeRendererTests.java
    (testEquals): Updated for new fields.

2007-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (drawItem): Simplified entity generation code.

2007-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/GrayPaintScale.java
    (getPaint): Use constrained value to calculate gray scale value,
    * tests/org/jfree/chart/renderer/junit/GrayPaintScaleTests.java
    (testConstructor): New test method,
    (testGetPaint): Likewise.

2007-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (drawItem): Apply margin in a way that works for inverted axes.

2007-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PlotUtilities.java: New class,
    * source/org/jfree/data/general/DatasetUtilities.java
    (isEmptyOrNull(XYDataset)): Return early if not empty,
    * tests/org/jfree/data/general/junit/DatasetUtilitiesTests.java
    (testIsEmptyOrNullXYDataset): New test method.

2007-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/Series.java
    (getItemCount): New abstract method,
    (isEmpty): New method.

2007-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (getQuadrantPaint): Improve exception text,
    (setQuadrantPaint): Likewise,
    (getDomainAxisForDataset): Likewise,
    (getRangeAxisForDataset): Likewise.

2007-09-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Marker.java
    (readObject): Initialise listener list,
    * tests/org/jfree/chart/plot/junit/ValueMarkerTests.java
    (test1802195): New test method.

2007-09-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (linesVisible): Deprecated,
    (shapesVisible): Likewise,
    (shapesFilled): Likewise,
    (getLinesVisible): Likewise,
    (setLinesVisible(Boolean)): Likewise,
    (setLinesVisible(boolean)): Likewise,
    (getShapesVisible): Likewise,
    (setShapesVisible(Boolean)): Likewise,
    (setShapesVisible(boolean)): Likewise,
    (setUseOutlinePaint): Fire change event,
    (getShapesFilled): Deprecated,
    (setShapesFilled(Boolean)): Likewise,
    (setShapesFilled(boolean)): Likewise,
    (setSeriesShapesFilled): Fire change event,
    (setBaseShapesFilled): Likewise,
    (equals): Minor tidy up.

2007-09-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (paintComponent): Clear chart buffer before refreshing.

2007-09-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (zoomAroundAnchor): New field,
    (getZoomAroundAnchor): New method,
    (setZoomAroundAnchor): Likewise,
    (zoomInDomain): Use zoomAroundAnchor flag,
    (zoomInRange): Likewise,
    (zoomOutDomain): Likewise,
    (zoomOutRange): Likewise,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)): New method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D)): Delegate to new method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)): New method,
    * source/org/jfree/chart/plot/FastScatterPlot.java
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)): New method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)): Likewise,
    * source/org/jfree/chart/PolarPlot.java
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)): New method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)): Likewise,
    * source/org/jfree/chart/ThermometerPlot.java
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)): New method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)): Likewise,
    * source/org/jfree/chart/XYPlot.java
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)): New method,
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D)): Delegate to new
    method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)): New method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D)): Delegate to new method,
    * source/org/jfree/chart/plot/Zoomable.java
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D, boolean)): New method,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D, boolean)): Likewise.

2007-09-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/SimpleHistogramDataset.java:
    API doc updates.

2007-08-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Week.java
    (Week(Date, TimeZone)): Deprecated,
    (Week(Date, TimeZone, Locale)): New constructor,
    * tests/org/jfree/data/time/junit/WeekTests.java
    (testConstructor): New test.

2007-08-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    (drawHorizontalItem): Check for null data items,
    (drawVerticalItem): Likewise,
    * tests/org/jfree/chart/renderer/category/junit/StatisticalBarRendererTests.java
    (testDrawWithNullMeanVertical): New test method,
    (testDrawWithNullMeanHorizontal): Likewise,
    (testDrawWithNullDeviationVertical): Likewise,
    (testDrawWithNullDeviationHorizontal): Likewise.

2007-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYSplineAndShapeRenderer.java
    (precision): Initialise in constructor,
    (XYSplineAndShapeRenderer()): Change default precision to 5,
    (XYSplineAndShapeRenderer(int)): New constructor.

2007-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    Fix for bug 1766646:
    * source/org/jfree/chart/renderer/xy/XYBlockRenderer.java
    (findDomainBounds): Check for null,
    (findRangeBounds): Likewise.

2007-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java
    (LegendItem): Initialise GradientPaintTransformer.

2007-08-02  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/axis/LogAxis.java
    (LogAxis(String)): Leave tick marks visible,
    (autoAdjustRange): Apply margins to log scale, and don't allow auto-range
    to go below minimum value,
    (refreshTicksHorizontal): Improved handling of ticks and labels,
    (refreshTicksVertical): Likewise,
    (selectAutoTickUnit): New method,
    (selectHorizontalAutoTickUnit): Likewise,
    (selectVerticalAutoTickUnit): Likewise,
    (exponentLengthToJava2D): Likewise,
    (estimateMaximumTickLabelHeight): Likewise,
    (estimateMaximumTickLabelWidth): Likewise,
    (equals): New method override,
    (hashCode): Likewise,
    (createLogTickUnits): New method,
    and moved to source/org/jfree/chart/axis/,
    * source/org/jfree/chart/axis/NumberTick.java
    (NumberTick(TickType, double, String, TextAnchor, TextAnchor, double)):
    New constructor,
    * source/org/jfree/chart/axis/NumberTickUnit.java
    (NumberTickUnit(double, NumberFormat, int)): New constructor,
    (toString): New method override,
    * source/org/jfree/chart/axis/TickType.java: New file,
    * source/org/jfree/chart/axis/TickUnit.java
    (minorTickCount): New field,
    (TickUnit(double, int)): New constructor,
    (getMinorTickCount): New method,
    (equals): Updated for new field,
    * source/org/jfree/chart/axis/TickUnits.java: Reformatting only,
    * source/org/jfree/chart/axis/ValueAxis.java
    (drawTickMarksAndLabels): Check for major tick before writing label,
    * source/org/jfree/chart/axis/ValueTick.java:
    (tickType): New field,
    (ValueTick(TickType, double, String, TextAnchor, TextAnchor, double)):
    New constructor,
    (getTickType): New method,
    (equals): Updated for new field,
    * source/org/jfree/chart/util/LogFormat.java: New file,
    * tests/org/jfree/chart/axis/junit/AxisPackageTests.java
    (suite): Added LogAxisTests and TickUnitsTests,
    * tests/org/jfree/chart/axis/junit/LogAxisTests.java:
    New file,
    * tests/org/jfree/chart/axis/junit/TickUnitsTests.java: Likewise.

2007-07-31  David Gilbert  <david.gilbert@object-refinery.com>

    Bug 1763413:
    * source/org/jfree/chart/axis/PeriodAxis.java
    (drawTickLabels): Calculate tick label width correctly for inverted axis.

2007-07-25  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1752205:
    * source/org/jfree/data/time/TimeTableXYDataset.java
    (clear): New method,
    * tests/org/jfree/data/time/junit/TimeTableXYDatasetTests.java
    (testClear): New method.

2007-07-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYSplineAndShapeRenderer.java:
    New file, contributed by Klaus Rheinwald.

2007-07-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/SymbolAxis.java
    (DEFAULT_GRID_BAND_ALTERNATE_PAINT): New field,
    (gridBandAlternatePaint): New field,
    (SymbolAxis): Initialise new field,
    (getGridBandAlternatePaint): New method,
    (setGridBandAlternatePaint): Likewise,
    (equals): Test new field,
    (writeObject): Handle new field,
    (readObject): Likewise,
    * tests/org/jfree/chart/axis/junit/SymbolAxisTests.java
    (testEquals): Added check for new field.

2007-07-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/demo/PieChartDemo1.java
    (createChart): Modified settings,
    * source/org/jfree/chart/plot/PiePlot.java
    (DEFAULT_INTERIOR_GAP): Modified default,
    (DEFAULT_LABEL_SHADOW_PAINT): Likewise,
    (simpleLabels): New field,
    (labelPadding): Likewise,
    (simpleLabelOffset): Likewise,
    (PiePlot(PieDataset)): Initialise new fields,
    (getLabelPadding): New method,
    (setLabelPadding): Likewise,
    (getSimpleLabels): Likewise,
    (setSimpleLabels): Likewise,
    (getSimpleLabelOffset): Likewise,
    (setSimpleLabelOffset): Likewise,
    (drawPie): Added simple label handling,
    (drawSimpleLabels): New method,
    (drawLabels): Reformatting,
    (drawLeftLabels): Set label padding,
    (drawRightLabels): Likewise,
    (equals): Updated for new fields,
    * source/org/jfree/chart/plot/PiePlot3D.java
    (draw): Updated for simple labels.

2007-07-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    (remove): Actually remove the subplot.

2007-07-11  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/axis/LogAxis.java
    (setSmallestValue): Added event notification,
    (zoomRange): New method override.

2007-07-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/SegmentedTimeline.java
    (FIRST_MONDAY_AFTER_1900): Deprecated,
    (NO_DST_TIME_ZONE): Likewise,
    (DEFAULT_TIME_ZONE): Likewise,
    (workingCalendarNoDST): Initialise in constructor,
    (SegmentedTimeline): Initialise workingCalendarNoDST,
    (firstMondayAfter1900): New method,
    (newMondayThroughFridayTimeline): Use new method for first monday,
    (newFifteenMinuteTimeline): Likewise,
    * tests/org/jfree/chart/axis/junit/SegmentedTimelineTests2.java:
    Save and restore time zone in all tests.

2007-07-11  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/DayTests.java
    (testGetFirstMillisecond): Set/restore time zone,
    (testGetFirstMillisecondWithCalendar): Set time zone,
    (testGetLastMillisecond): Set/restore time zone,
    (testGetLastMillisecondWithCalendar): Set time zone,
    * tests/org/jfree/data/time/junit/HourTests.java: Likewise,
    * tests/org/jfree/data/time/junit/MillisecondTests.java: Likewise,
    * tests/org/jfree/data/time/junit/MinuteTests.java:
    (testGetFirstMillisecond): Set/restore time zone,
    (testGetFirstMillisecondWithCalendar): Set time zone,
    (testGetLastMillisecond): Set/restore time zone,
    (testGetLastMillisecondWithCalendar): Set time zone,
    (testGetStart): Set/restore time zone,
    (testGetEnd): Likewise,
    * tests/org/jfree/data/time/junit/MonthTests.java
    (testGetFirstMillisecond): Set/restore time zone,
    (testGetFirstMillisecondWithCalendar): Set time zone,
    (testGetLastMillisecond): Set/restore time zone,
    (testGetLastMillisecondWithCalendar): Set time zone,
    * tests/org/jfree/data/time/junit/QuarterTests.java: Likewise,
    * tests/org/jfree/data/time/junit/SecondTests.java: Likewise,
    * tests/org/jfree/data/time/junit/WeekTests.java: Likewise,
    * tests/org/jfree/data/time/junit/YearTests.java: Likewise.

2007-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createPieChart(String, PieDataset, boolean, boolean, Locale)): New method,
    (createPieChart(String, PieDataset, PieDataset, int, boolean, boolean,
        boolean, Locale, boolean, boolean)) : Likewise,
    (createRingChart(String, PieDataset, boolean, boolean, Locale)): Likewise,
    (createPieChart3D(String, PieDataset, boolean, boolean, Locale)): Likewise,
    * source/org/jfree/chart/labels/StandardPieSectionLabelGenerator.java
    (StandardPieSectionLabelGenerator(Locale)): New constructor,
    (StandardPieSectionLabelGenerator(String labelFormat, Locale)): Likewise,
    * source/org/jfree/chart/labels/StandardPieToolTipGenerator.java
    (StandardPieToolTipGenerator): Delegate,
    (StandardPieToolTipGenerator(Locale)): New constructor,
    (StandardPieToolTipGenerator(String)): Delegate,
    (StandardPieToolTipGenerator(String labelFormat, Locale)): New constructor.

2007-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/chart/renderer/xy/junit/ClusteredXYBarRendererTests.java
    (EPSILON): New field,
    (testFindDomainBounds): Fixed compile errors,
    * tests/org/jfree/data/time/junit/TimePeriodValuesCollectionTests.java
    (EPSILON): New field,
    (testGetDomainBoundsWithoutInterval): Fixed compile errors,
    (testGetDomainBoundsWithInterval): Likewise.

2007-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/SimpleHistogramDataset.java
    (SimpleHistogramDataset): Check for null argument.

2007-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (getRangeAxisIndex): New method.

----------  JFREECHART 1.0.6 RELEASED ------------------------

2007-06-15  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (getSwtColorFromPool): Removed JDK 1.5 specific code.

2007-06-15  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Updated version number to 1.0.6,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (XYBarRenderer): Changed default value for drawBarOutline.

2007-06-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/AbstractPieLabelDistributor.java:
    New file,
    * source/org/jfree/chart/plot/PieLabelDistributor.java: Now extends
    AbstractPieLabelDistributor,
    * source/org/jfree/chart/plot/PieLabelRecord: Implemented Serializable,
    * source/org/jfree/chart/plot/PiePlot.java
    (labelDistributor): New field,
    (PiePlot(PieDataset)): Initialise new field,
    (getLabelDistributor): New method,
    (setLabelDistributor): New method.

2007-06-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/LookupPaintScale.java
    (PaintItem.value): Changed from Number to double,
    (PaintItem(Number, Paint)): Changed first parameter to double,
    (compareTo): Updated for change in value type,
    (equals): Likewise,
    (add(Number, Paint)): Deprecated,
    (add(double, Paint)): New method,
    (getPaint): Updated.

2007-06-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java
    (XYBoxAndWhiskerRenderer(double)): Replaced deprecated method call,
    (drawHorizontalItem): Call addEntity(),
    (drawVerticalDataItem): Likewise.

2007-06-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (drawItem): If dataset is not a StatisticalCategoryDataset, revert to
    the super class drawing behaviour.

2007-06-14  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/chart/renderer/xy/XYSmoothLineAndShapeRenderer.java:
    New class.

2007-06-14  David Gilbert  <david.gilbert@object-refinery.com>

        * source/org/jfree/chart/block/LineBorder.java
    (draw): Don't draw if area doesn't have positive dimensions,
    * source/org/jfree/chart/util/HexNumberFormat.java: New class.

2007-06-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDataset.java
    (add): Assign max outlier value to maxValue.

2007-06-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/DefaultDrawingSupplier.java
    (DEFAULT_FILL_PAINT_SEQUENCE): New field,
    (fillPaintSequence): Likewise,
    (fillPaintIndex): Likewise,
    (DefaultDrawingSupplier): Constructors updated for new field,
    (getNextFillPaint): New method,
    * source/org/jfree/chart/plot/DrawingSupplier.kava
    (getNextFillPaint): New method,
    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (autoPopulateSeriesPaint): New field,
    (autoPopulateSeriesFillPaint): Likewise,
    (autoPopulateSeriesOutlinePaint): Likewise,
    (autoPopulateSeriesStroke): Likewise,
    (autoPopulateSeriesOutlineStroke): Likewise,
    (autoPopulateSeriesShape): Likewise,
    (AbstractRenderer): Initialise new fields,
    (lookupSeriesPaint): Check autoPopulateField,
    (getAutoPopulateSeriesPaint): New method,
    (setAutoPopulateSeriesPaint): New method,
    (lookupSeriesFillPaint): New method,
    (getAutoPopulateSeriesFillPaint): New method,
    (setAutoPopulateSeriesFillPaint): New method,
    (lookupSeriesOutlinePaint): New method,
    (getAutoPopulateSeriesOutlinePaint): New method,
    (setAutoPopulateSeriesOutlinePaint): New method,
    (lookupSeriesStroke): New method,
    (getAutoPopulateSeriesStroke): New method,
    (setAutoPopulateSeriesStroke): New method,
    (lookupSeriesOutlineStroke): New method,
    (getAutoPopulateSeriesOutlineStroke): New method,
    (setAutoPopulateSeriesOutlineStroke): New method,
    (lookupSeriesShape): New method,
    (getAutoPopulateSeriesShape): New method,
    (setAutoPopulateSeriesShape): New method.

2007-06-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (drawItem): Check item visibility flag, and check that entity hotspot
    is contained in dataArea before adding an entity,
    (getLegendItem): Reduced indentation.

2007-06-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/ClusteredXYBarRenderer.java
    (findDomainBounds): New method override,
    (findDomainBoundsWithOffset): New utility method,
    (drawItem): Fixed to handle inverted axes,
    * tests/org/jfree/chart/renderer/xy/junit/ClusteredXYBarRendererTests.java
    (testFindDomainBounds): New test,
    (createSampleDataset1): New helper method.

2007-06-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/ClusteredXYBarRenderer.java
    (drawItem): Simplified chart entity generation,
    (equals): Reorganised.

2007-06-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createBarChart): Replaced deprecated method calls,
    (createWaterfallChart): Likewise,
    (createBoxAndWhiskerChart): Likewise.

2007-06-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    (CandlestickRenderer(double, boolean, XYToolTipGenerator)): Replaced
    call to deprecated setToolTipGenerator() method.

2007-06-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimePeriodValuesCollection.java
    (TimePeriodValuesCollection(TimePeriodValues)): Changed default value
    for this.domainIsPointsInTime,
    (getDomainBounds): Use includeInterval parameter correctly,
    * tests/org/jfree/data/time/junit/TimePeriodValuesCollectionTests.java
    (testGetDomainBoundsWithoutInterval): New method,
    (testGetDomainBoundsWithInterval): Likewise.

2007-06-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/QuarterDateFormat.java
    (GREEK_QUARTERS): New field,
    (quarterFirst): Likewise,
    (QuarterFormat(TimeZone, String[], boolean)): New constructor,
    (equals): Updated for new field,
    * tests/org/jfree/chart/axis/junit/QuarterDateFormatTests.java
    (testEquals): Added check for new field.

2007-06-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (drawItem): Take orientation into account when passing coordinates to
    addEntity(),
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (drawSecondaryPass): Likewise,
    * tests/org/jfree/chart/junit/TestUtilities.java: New file,
    * tests/org/jfree/chart/renderer/xy/junit/StandardXYItemRendererTests.java
    (testNoDisplayedItem): New method.

2007-06-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (drawSecondaryPass): Only add entity if data point is within the
    visible data area.

2007-06-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Plot.java
    (fillBackground(Graphics2D, Rectangle2D)): Delegate to new method,
    (fillBackground(Graphics2D, Rectangle2D, PlotOrientation)): New method,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (drawBackground): New method override,
    * source/org/jfree/chart/plot/XYPlot.java
    (drawBackground): Call new fillBackground() method.

2007-06-06  Henry Proudhon  <henry.proudhon@insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (getToolTipText): Fixed minor issues with tooltips. bug reported and fix proposed
    by Christoph Beck, bug 1726404 (HP);

2007-06-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (paintComponent): Fixed coordinates for drawing buffer image (DG);

2007-06-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (JFreeChart(String, Font, Plot, boolean)): Add change listener to
    legend, if created,
    * tests/org/jfree/chart/junit/JFreeChartTests.java
    (testLegendEvents): New test,
    (chartChanged): New method,
    (lastChartChangeEvent): New field.

2007-06-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (addItemEntity): Fixed deprecation warning,
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (drawHorizontalItem): Likewise,
    (drawVerticalItem): Likewise,
    * source/org/jfree/chart/renderer/category/GanttRenderer.java
    (drawTasks): Likewise,
    (drawTask): Likewise,
    * source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/category/IntervalBarRenderer.java
    (drawInterval): Likewise,
    * source/org/jfree/chart/renderer/category/LayeredBarRenderer.java
    (drawHorizontalItem): Likewise,
    (drawVerticalItem): Likewise,
    * source/org/jfree/chart/renderer/category/LevelRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java
    (drawItem): Likewise.

2007-06-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java
    (drawItem): Return early for non-visible items,
    (equals): Call super.equals() last.

2007-05-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/SubCategoryAxis.java
    (addSubCategory): Added argument check and event notification.

2007-05-25  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/renderer/xy/VectorRenderer.java:
    Moved to source/org/jfree/chart/renderer/xy/VectorRenderer.java
    * experimental/org/jfree/experimental/data/xy/Vector.java:
    Moved to source/org/jfree/data/xy/Vector.java,
    * experimental/org/jfree/experimental/data/xy/VectorDataItem.java:
    Moved to source/org/jfree/data/xy/VectorDataItem.java,
    * experimental/org/jfree/experimental/data/xy/VectorSeries.java:
    Moved to source/org/jfree/data/xy/VectorSeries.java,
    * experimental/org/jfree/experimental/data/xy/VectorSeriesCollection.java:
    Moved to source/org/jfree/data/xy/VectorSeriesCollection.java,
    * experimental/org/jfree/experimental/data/xy/VectorXYDataset.java:
    Moved to source/org/jfree/data/xy/VectorXYDataset.java,
    * experimental/org/jfree/experimental/data/xy/XYCoordinate.java:
    Moved to source/org/jfree/data/xy/XYCoordinate.java.

2007-05-25  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Added '-cvs' to version number, removed gjdoc,
    * experimental/org/jfree/experimental/data/xy/VectorSeries.java
    (remove): New method,
    (clear): Likewise.

2007-05-25  David Gilbert  <david.gilbert@object-refinery.com>

    Translations provided by Leonardo Alves Machado:
    * source/org/jfree/chart/LocalizationBundle_pt_BR.properties: New file,
    * source/org/jfree/chart/editor/LocalizationBundle_pt_BR.properties:
    Likewise.

2007-05-24  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/renderer/xy/VectorRenderer.java
    (findDomainBounds): Updated for method name changes,
    (findRangeBounds): Likewise,
    (drawItem): Likewise,
    * experimental/org/jfree/experimental/data/xy/Vector.java
    (getLength): New method,
    (getAngle): Likewise,
    * experimental/org/jfree/experimental/data/xy/VectorDataItem.java
    (getVector): New method,
    (getDeltaX): Renamed getVectorX(),
    (getDeltaY): Renamed getVectorY(),
    * experimental/org/jfree/experimental/data/xy/VectorSeries.java
    (getDeltaXValue): Renamed getVectorXValue(),
    (getDeltaYValue): Renamed getVectorYValue(),
    * experimental/org/jfree/experimental/data/xy/VectorSeriesCollection.java
    (removeSeries): New method,
    (removeAllSeries): Likewise,
    (indexOf): Likewise,
    (getVector): Likewise,
    (getDeltaXValue): Renamed getVectorXValue(),
    (getDeltaYValue): Renamed getVectorYValue(),
    * experimental/org/jfree/experimental/data/xy/VectorXYDataset.java
    (getDeltaXValue): Renamed getVectorXValue(),
    (getDeltaYValue): Renamed getVectorYValue(),
        (getDeltaX): Removed,
    (getDeltaY): Removed,
    (getVector): New method.

2007-05-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (render): Fixed bug for a series with zero items,
    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java
    (initialise): Disable visible items optimisation,
    * tests/org/jfree/chart/plot/junit/XYPlotTests.java
    (testDrawSeriesWithZeroItems): New test.

2007-05-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (updateUI): Update UI for popup menu if there is one.

2007-05-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartMouseEvent.java: API doc updates,
    * source/org/jfree/chart/ChartMouseListener.java: Likewise.

2007-05-19  Henry Proudhon <henry.proudhon@insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    Integrated a patch by Cédric Chabanois to remove resources leaks.
    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    Removed resource leaks by adding a resource pool thanks to a patch
    sent by Cédric Chabanois.

2007-05-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/SimpleHistogramDataset.java
    (clearObservations): New method,
    (removeAllBins): Likewise,
    * tests/org/jfree/data/statistics/junit/SimpleHistogramDatasetTests.java
    (testClearObservations): New method,
    (testRemoveAllBins): Likewise.

2007-05-19  Henry Proudhon <henry.proudhon@insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (paintControl): corrected bug with scaling when the drawing region
    is larger than maximum draw width/height.

2007-05-19  Henry Proudhon <henry.proudhon@insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (paintControl): check for null chart

2007-05-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java
    (dataset): New field,
    (seriesKey): Likewise,
    (getDataset): New method,
    (setDataset): Likewise,
    (getSeriesKey): Likewise,
    (setSeriesKey): Likewise,
    * source/org/jfree/chart/entity/CategoryItemEntity.java
    (dataset): No longer transient,
    (series): Deprecated,
    (category): Deprecated,
    (categoryIndex): Deprecated,
    (rowKey): New field,
    (columnKey): Likewise,
    (CategoryItemEntity(Shape, String, String, CategoryDataset, int, Object, int)):
    Deprecated,
    (CategoryItemEntity(Shape, String, String, CategoryDataset, Comparable, Comparable)):
    New constructor,
    (setDataset): Added argument check,
    (getRowKey): New method,
    (setRowKey): New method,
    (getColumnKey): New method,
    (setColumnKey): New method,
    (getSeries): Deprecated,
    (setSeries): Deprecated,
    (getCategory): Deprecated,
    (setCategory): Deprecated,
    (getCategoryIndex): Likewise,
    (setCategoryIndex): Likewise,
    (toString): Include new fields,
    (equals): Updated for new fields,
    * source/org/jfree/chart/entity/LegendItemEntity.java
    (dataset): New field,
    (seriesKey): New field,
    (getDataset): New method,
    (setDataset): New method,
    (getSeriesKey): New method,
    (setSeriesKey): New method,
    (getSeriesIndex): Deprecated,
    (setSeriesIndex): Deprecated,
    (equals): Updated for new fields,
    (toString): Likewise,
    * source/org/jfree/chart/plot/MeterPlot.java
    (getLegendItems): Set dataset for legend item,
    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (getLegendItems): Likewise,
    * source/org/jfree/chart/plot/PiePlot.java
    (getLegendItems): Likewise,
    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (getLegendItems): Likewise,
    * source/org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (getLegendItem): Set dataset and series key,
    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/CategoryStepRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/title/LegendItemBlockContainer.java
    (dataset): New field,
    (seriesKey): Likewise,
    (LegendItemBlockContainer(Arrangement, int, int)): Deprecated,
    (LegendItemBlockContainer(Arrangement, Dataset, Comparable)): New constructor,
    (getDataset): New method,
    (getSeriesKey): Likewise,
    (draw): Updated for new fields,
    * source/org/jfree/chart/title/LegendTitle.java
    (createLegendItemBlock): Replaced deprecated constructor,
    * tests/org/jfree/chart/entity/junit/CategoryItemEntityTests.java
    (testEquals): Updated,
    (testCloning): Reformatted,
    (testSerialization): Likewise,
    * tests/org/jfree/chart/entity/junit/LegendItemEntityTests.java
    (testEquals): Added checks for new fields,
    (testCloning): Reformatted,
    (testSerialization): Likewise.

2007-05-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (setPieChart(JFreeChart)): Added argument checks.

2007-05-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (getLegendItem): Set datasetIndex and seriesIndex,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (getLegendItem): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/StandardXYItemRendererTests.java
    (testGetLegendItemSeriesIndex): New test,
    * tests/org/jfree/chart/renderer/xy/junit/XYAreaRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/XYAreaRenderer2Tests.java
    (testGetLegendItemSeriesIndex): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/XYBarRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/XYBubbleRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/XYDifferenceRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/XYDotRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/XYLineAndShapeRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise,
    * tests/org/jfree/chart/renderer/xy/junit/YIntervalRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise.

2007-05-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (getLegendItem): Set datasetIndex and seriesIndex,
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (getLegendItem): Likewise,
    * tests/org/jfree/chart/renderer/category/junit/AreaRendererTests.java
    (testGetLegendItemSeriesIndex): New test,
    * tests/org/jfree/chart/renderer/category/junit/BoxAndWhiskerRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise,
    * tests/org/jfree/chart/renderer/category/junit/LevelRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise.

2007-05-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (getLegendItem): Set datasetIndex and seriesIndex,
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (getLegendItem): Likewise,
    * tests/org/jfree/chart/renderer/category/junit/BarRendererTests.java
    (testGetLegendItemSeriesIndex): New test,
    * tests/org/jfree/chart/renderer/category/junit/LineAndShapeRendererTests.java
    (testGetLegendItemSeriesIndex): Likewise.

2007-05-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (getSubtitles): Copy list,
    (setSubtitles): Likewise,
    (addSubtitle(int, Title)): New method,
    * tests/org/jfree/chart/junit/JFreeChartTests.java
    (testAddSubtitle): New test method,
    (testGetSubtitles): Likewise.

2007-05-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (getSubtitle): Fixed argument check,
    * tests/org/jfree/chart/junit/JFreeChartTests.java
    (testGetSubtitle): New test method.

2007-05-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Plot.java
    (outlineVisible): New field,
    (Plot): Initialise new field,
    (isOutlineVisible): New method,
    (setOutlineVisible): Likewise,
    (drawOutline): Check outlineVisible flag,
    (equals): Likewise.

2007-05-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (getLegendItem): Check for visibility,
    * tests/org/jfree/chart/renderer/category/junit/BarRendererTests.java
    (testGetLegendItem): New test method.

2007-05-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (getLegendItem): Check for visibility,
    * tests/org/jfree/chart/renderer/category/junit/BoxAndWhiskerRendererTests.java
    (testGetLegendItem): New test method.

2007-05-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (drawStackHorizontal): Check drawBarOutlines flag, and add shading
    to bar sides,
    (drawStackVertical): Likewise.

2007-05-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeriesCollection.java
    (indexOf): New method,
    * source/org/jfree/data/xy/XYSeriesCollection.java
    (indexOf): Likewise,
    * tests/org/jfree/data/junit/time/TimeSeriesCollectionTests.java
    (testIndexOf): New method,
    * tests/org/jfree/data/junit/xy/XYSeriesCollectionTests.java
    (testIndexOf): Likewise.

2007-05-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (render): Only process visible data items, if possible,
    * source/org/jfree/chart/renderer/RendererUtilities.java: New file,
    * source/org/jfree/chart/renderer/xy/DeviationRenderer.java:
    (initialise): Disable visible items optimisation,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (initialise): Likewise,
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java:
    (initialise): Likewise,
    * source/org/jfree/chart/renderer/xy/XYItemRendererState.java
    (processVisibleItemsOnly): New field,
    (XYItemRendererState): Initialise new field,
    (getProcessVisibleItemsOnly): New method,
    (setProcessVisibleItemsOnly): Likewise,
    * source/org/jfree/chart/renderer/xy/XYStepAreaRenderer.java
    (initialise): Disable visible items optimisation,
    * tests/org/jfree/chart/renderer/junit/RendererUtilitiesTests.java:
    New file.

2007-05-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (drawSeries): Fixed lookup for series paint and stroke,
    (getLegendItem): Likewise.

2007-05-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeriesCollection.java
    (getDomainOrder): New method override.

2007-05-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (previousStandardDate): Fixed boundary cases for
    MILLISECOND, SECOND and MONTH units,
    * tests/org/jfree/chart/axis/junit/DateAxisTests.java
    (testPreviousStandardDateYear): Removed,
    (testPreviousStandardDateMonth): Removed,
    (testPreviousStandardDateDay): Removed,
    (testPreviousStandardDateHour): Removed,
    (testPreviousStandardDateMinute): Removed,
    (testPreviousStandardDateSecond): Removed,
    (testPreviousStandardDateMillisecond): Removed,
    (testPreviousStandardDateYearA): New method,
    (testPreviousStandardDateYearB): Likewise,
    (testPreviousStandardDateMonthA): Likewise,
    (testPreviousStandardDateMonthB): Likewise,
    (testPreviousStandardDateDayA): Likewise,
    (testPreviousStandardDateDayB): Likewise,
    (testPreviousStandardDateHourA): Likewise,
    (testPreviousStandardDateHourB): Likewise,
    (testPreviousStandardDateMinuteA): Likewise,
    (testPreviousStandardDateMinuteB): Likewise,
    (testPreviousStandardDateSecondA): Likewise,
    (testPreviousStandardDateSecondB): Likewise,
    (testPreviousStandardDateMillisecondA): Likewise,
    (testPreviousStandardDateMillisecondB): Likewise.

2007-05-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/ThermometerPlot.java
    (subrangePaint): Made transient,
    (ThermometerPlot(ValueDataset)): Set axis field directly,
    (setRangeAxis): Added null argument check, and event
    notification,
    (setPadding): Added null argument check,
    (setUnits(String)): Deprecated,
    (setValueFont): Added null argument check,
    (setValuePaint): Likewise,
    (setValueFormat): Likewise,
    (setMercuryPaint): Likewise,
    (getShowValueLines): Deprecated,
    (setShowValueLines): Likewise,
    (datasetChanged): Check for null dataset,
    (writeObject): Handle subrange paint,
    (readObject): Likewise.

2007-05-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYLine3DRenderer.java
    (equals): New method override,
    (readObject): New method,
    (writeObject): New method.

2007-04-30  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/annotations/XYTitleAnnotation.java
    (equals): Fixed incorrect cast,
    * experimental/org/jfree/experimental/chart/annotations/junit/XYTitleAnnotationTests.java:
    New file.

2007-04-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DefaultPieDataset.java
    (insertValue(int, Comparable, double)): New method,
    (insertValue(int, Comparable, Double)): Likewise.

2007-04-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues.java
    (insertValues(int, Comparable, double)): New method,
    (insertValues(int, Comparable, Double)): Likewise,
    * tests/org/jfree/data/junit/DefaultKeyedValuesTests.java
    (testConstructor): New test method,
    (testGetItemCount): Likewise,
    (testGetKeys): Likewise,
    (testGetValue): Extended,
    (testAddValue): New test method,
    (testInsertValue): Likewise.

2007-04-23  David Gilbert  <david.gilbert@object-refinery.com>

    Patch from Richard West:
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (drawItemPass0): Reimplemented,
    (drawItemPass1): Likewise,
    (getPositiveArea): Removed,
    (getNegativeArea): Removed,
    (getIntersection): Removed,
    (isEitherSeriesDegenerate): New method,
    (areSeriesDisjoint): New method,
    (createPolygon): New method.

2007-04-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (positiveItemLabelPosition): Deprecated,
    (negativeItemLabelPosition): Likewise,
    (createEntities): Likewise,
    (getPositiveItemLabelPosition): Deprecated,
    (setPositiveItemLabelPosition(ItemLabelPosition)): Likewise,
    (setPositiveItemLabelPosition(ItemLabelPosition, boolean)): Likewise,
    (getNegativeItemLabelPosition): Deprecated,
    (setNegativeItemLabelPosition(ItemLabelPosition)): Likewise,
    (setNegativeItemLabelPosition(ItemLabelPosition, boolean)): Likewise,
    (getCreateEntities): Deprecated,
    (setCreateEntities(Boolean): Likewise,
    (setCreateEntities(Boolean, boolean)): Likewise,
    * source/org/jfree/chart/renderer/category/CategoryItemRenderer.java
    (getPositiveItemLabelPosition): Deprecated,
    (setPositiveItemLabelPosition(ItemLabelPosition)): Likewise,
    (setPositiveItemLabelPosition(ItemLabelPosition, boolean)): Likewise,
    (getNegativeItemLabelPosition): Deprecated,
    (setNegativeItemLabelPosition(ItemLabelPosition)): Likewise,
    (setNegativeItemLabelPosition(ItemLabelPosition, boolean)): Likewise,
    * source/org/jfree/chart/renderer/xy/XYItemRenderer.java
    (getPositiveItemLabelPosition): Deprecated,
    (setPositiveItemLabelPosition(ItemLabelPosition)): Likewise,
    (setPositiveItemLabelPosition(ItemLabelPosition, boolean)): Likewise,
    (getNegativeItemLabelPosition): Deprecated,
    (setNegativeItemLabelPosition(ItemLabelPosition)): Likewise,
    (setNegativeItemLabelPosition(ItemLabelPosition, boolean)): Likewise.

2007-04-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (itemLabelsVisible): Deprecated,
    (itemLabelFont): Likewise,
    (itemLabelPaint): Likewise,
    (setItemLabelsVisible(boolean)): Likewise,
    (setItemLabelsVisible(Boolean)): Likewise,
    (setItemLabelsVisible(Boolean, boolean)): Likewise,
    (getItemLabelFont): Likewise,
    (setItemLabelFont(Font)): Likewise,
    (setItemLabelFont(Font, boolean)): Likewise,
    (getItemLabelPaint): Likewise,
    (setItemLabelPaint(Paint)): Likewise,
    (setItemLabelPaint(Paint, boolean)): Likewise,
    * source/org/jfree/chart/renderer/category/CategoryItemRenderer.java
    (setItemLabelsVisible(boolean)): Deprecated,
    (setItemLabelsVisible(Boolean)): Likewise,
    (setItemLabelsVisible(Boolean, boolean)): Likewise,
    (getItemLabelFont): Likewise,
    (setItemLabelFont(Font)): Likewise,
    (getItemLabelPaint): Likewise,
    (setItemLabelPaint(Paint)): Likewise,
    * source/org/jfree/chart/renderer/xy/XYItemRenderer.java
    (setItemLabelsVisible(boolean)): Deprecated,
    (setItemLabelsVisible(Boolean)): Likewise,
    (setItemLabelsVisible(Boolean, boolean)): Likewise,
    (getItemLabelFont): Likewise,
    (setItemLabelFont(Font)): Likewise,
    (getItemLabelPaint): Likewise,
    (setItemLabelPaint(Paint)): Likewise.

2007-04-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (itemLabelGenerator): Deprecated,
    (toolTipGenerator): Likewise,
    (itemURLGenerator): Likewise,
    (setItemLabelGenerator): Likewise,
    (getToolTipGenerator): Likewise,
    (setToolTipGenerator): Likewise,
    (setItemURLGenerator): Deprecated and added event notification,
    (setSeriesItemURLGenerator): Added event notification,
    (setBaseItemURLGenerator): Likewise,
    * source/org/jfree/chart/renderer/category/CategoryItemRenderer.java
    (setItemLabelGenerator): Deprecated,
    (getToolTipGenerator): Likewise,
    (setToolTipGenerator): Likewise,
    (setItemURLGenerator): Likewise.

2007-04-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (itemLabelGenerator): Deprecated,
    (toolTipGenerator): Likewise,
    (getItemLabelGenerator): Likewise,
    (setItemLabelGenerator): Likewise,
    (getToolTipGenerator): Likewise,
    (setToolTipGenerator): Likewise,
    * source/org/jfree/chart/renderer/xy/XYItemRenderer.java
    (setItemLabelGenerator): Deprecated,
    (setToolTipGenerator): Likewise.

2007-04-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (paint): Deprecated,
    (fillPaint): Likewise,
    (outlinePaint): Likewise,
    (stroke): Likewise,
    (outlineStroke): Likewise,
    (shape): Likewise,
    (getItemPaint): Call new lookupSeriesPaint() method,
    (lookupSeriesPaint): New method,
    (setPaint(Paint)): Deprecated,
    (setPaint(Paint, boolean)): Likewise,
    (getSeriesPaint(int)): Reimplemented to return series
    paint only, not a lookup,
    (getItemFillPaint): Call new lookupSeriesFillPaint()
    method,
    (lookupSeriesFillPaint): New method,
    (getSeriesFillPaint(int)): Reimplemented to return
    series fill paint only, not a lookup,
    (setFillPaint(Paint)): Deprecated,
    (setFillPaint(Paint, boolean)): Likewise,
    (getItemOutlinePaint): Call new lookupSeriesOutlinePaint()
    method,
    (lookupSeriesOutlinePaint): New method,
    (getSeriesOutlinePaint(int)): Reimplemented to return series
    outline paint only, not a lookup,
    (setOutlinePaint(Paint)): Deprecated,
    (setOutlinePaint(Paint, boolean)): Likewise,
    (getItemStroke): Call new lookupSeriesOutlineStroke()
    method,
    (lookupSeriesStroke): New method,
    (setStroke(Stroke)): Deprecated,
    (setStroke(Stroke, boolean)): Deprecated,
    (getSeriesStroke(int)): Reimplemented to return series stroke
    only, not a lookup,
    (getItemOutlineStroke): Call new lookupSeriesOutlineStroke()
    method,
    (lookupSeriesOutlineStroke): New method,
    (setOutlineStroke(Stroke)): Deprecated,
    (setOutlineStroke(Stroke, boolean)): Deprecated,
    (getSeriesOutlineStroke(int)): Reimplemented to return series
    outline stroke, not a lookup,
    (getItemShape): Call new lookupSeriesShape() method,
    (lookupSeriesShape): New method,
    (setShape(Shape)): Deprecated,
    (setShape(Shape, notify)): Deprecated,
    (getSeriesShape(int)): Reimplemented to return series shape,
    not a lookup,
    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (getLegendItem): Updated for renderer changes,
    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/CategoryItemRenderer.java
    (setPaint): Deprecated,
    (setOutlinePaint): Deprecated,
    (setStroke): Deprecated,
    (setOutlineStroke): Deprecated,
    (setShape): Deprecated,
    * source/org/jfree/chart/renderer/category/CategoryStepRenderer.java
    (getLegendItem): Updated for renderer changes,
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (getLegendItem): Likewise,
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    (getLegendItem): Likewise,
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYItemRenderer.java
    (setPaint): Deprecated,
    (setOutlinePaint): Deprecated,
    (setStroke): Deprecated,
    (setOutlineStroke): Deprecated,
    (setShape): Deprecated,
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (getLegendItem): Likewise.

2007-04-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (sectionPaint): Deprecated,
    (sectionOutlinePaint): Likewise,
    (sectionOutlineStroke): Likewise,
    (getSectionPaint): Likewise,
    (setSectionPaint(Paint)): Likewise,
    (getSectionOutlinePaint): Likewise,
    (setSectionOutlinePaint(Paint)): Likewise,
    (getSectionOutlineStroke): Likewise,
    (setSectionOutlineStroke(Stroke)): Likewise,
    (zoom): Removed.

2007-04-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (seriesVisibleInLegend): Deprecated,
    (getSeriesVisibleInLegend): Likewise,
    (setSeriesVisibleInLegend(Boolean)): Likewise,
    (setSeriesVisibleInLegend(Boolean, boolean)): Likewise,
    * source/org/jfree/chart/renderer/category/CategoryItemRenderer.java
    (getSeriesVisibleInLegend): Likewise,
    (setSeriesVisibleInLegend(Boolean)): Likewise,
    (setSeriesVisibleInLegend(Boolean, boolean)): Likewise,
    * source/org/jfree/chart/renderer/xy/XYItemRenderer.java
    (getSeriesVisibleInLegend): Likewise,
    (setSeriesVisibleInLegend(Boolean)): Likewise,
    (setSeriesVisibleInLegend(Boolean, boolean)): Likewise.

2007-04-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (seriesVisible): Deprecated,
    (getSeriesVisible): Likewise,
    (setSeriesVisible(Boolean)): Likewise,
    (setSeriesVisible(Boolean, boolean)): Likewise,
    * source/org/jfree/chart/renderer/category/CategoryItemRenderer.java
    (getSeriesVisible): Likewise,
    (setSeriesVisible(Boolean)): Likewise,
    (setSeriesVisible(Boolean, boolean)): Likewise,
    * source/org/jfree/chart/renderer/xy/XYItemRenderer.java
    (getSeriesVisible): Likewise,
    (setSeriesVisible(Boolean)): Likewise,
    (setSeriesVisible(Boolean, boolean)): Likewise.

2007-04-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (setMinimumDate): Handle case where new minimum date is on or after
    the existing maximum date,
    (setMaximumDate): Handle case where new maximum date is on or before
    the existing minimum date,
    * tests/org/jfree/chart/axis/junit/DateAxisTests.java
    (testSetMaximumDate): Added new check,
    (testSetMinimumDate): Likewise.

2007-04-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/urls/StandardCategoryURLGenerator.java
    (generateURL): Use new URLUtilities class for encoding,
    * source/org/jfree/chart/urls/StandardPieURLGenerator.java
    (generateURL): Likewise,
    * source/org/jfree/chart/urls/TimeSeriesURLGenerator.java
    (generateURL): Likewise,
    * source/org/jfree/chart/urls/URLUtilities.java: New file,
    * tests/org/jfree/chart/urls/junit/StandardPieURLGeneratorTests.java
    (testURL): Added new check,
    * tests/org/jfree/chart/urls/junit/TimeSeriesURLGeneratorTests.java
    (testGenerateURL): New test method.

2007-04-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/urls/TimeSeriesURLGenerator.java
    (TimeSeriesURLGenerator(DateFormat, String, String, String)): Added
    null argument checks,
    (getDateFormat): New method,
    (getPrefix): New method,
    (getSeriesParameterName): New method,
    (getItemParameterName): New method,
    (equals): New method,
    * tests/org/jfree/chart/urls/junit/TimeSeriesURLGeneratorTests.java:
    New file,
    * tests/org/jfree/chart/urls/junit/UrlsPackageTests.java
    (suite): Added TimeSeriesURLGeneratorTests.

2007-04-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDataset.java
    (add): Check for null values,
    * tests/org/jfree/data/statistics/junit/DefaultBoxAndWhiskerCategoryDatasetTests.java
    (testCloning): New test method,
    (test1701822): Likewise.

2007-04-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (actionPerformed): Check for null zoomPoint,
    (restoreAutoDomainBounds): Likewise,
    (restoreAutoRangeBounds): Likewise,
    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    (findSubplot): Added null argument checks,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D)): If not in
    subplot, zoom for all subplots,
    (zoomRangeAxes(double, double, PlotRenderingInfo, Point2D)): Likewise,
    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (findSubplot): Added null argument checks,
    (zoomRangeAxes(double, PlotRenderingInfo, Point2D)): If not in
    subplot, zoom for all subplots,
    (zoomRangeAxes(double, double, PlotRenderingInfo, Point2D)): Likewise,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    (findSubplot): Added null argument checks,
    (zoomDomainAxes(double, PlotRenderingInfo, Point2D)): If not in
    subplot, zoom for all subplots,
    (zoomDomainAxes(double, double, PlotRenderingInfo, Point2D)): Likewise,
    * source/org/jfree/chart/plot/PlotRenderingInfo.java
    (getSubplotIndex): Added null argument check.

2007-04-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (getLegendItems): Check for null legend item label,
    * tests/org/jfree/chart/plot/junit/PiePlotTests.java
    (NullLegendLabelGenerator): New support class,
    (testDrawWithNullLegendLabels): New test method.

2007-04-07  Henry Proudhon  <henry.proudhon@insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java:
    Fixed redraw problem (no need to call forceRedraw() anymore).
    * swt/org/jfree/experimental/swt/SWTGraphics2D.java:
    Fixed some issues with disposing SWT ressources. Thanks to silent
    for pointing this out.

2007-04-04  Chris Boek  <chris.boek@gmail.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (previousStandardDate): Use time zone for Month,
    (refreshTicksHorizontal): Use time zone,
    (refreshTicksVertical): Likewise,
    * source/org/jfree/chart/axis/DateTickUnit.java
    (addToDate(Date, TimeZone)): New method,
    (rollDate(Date, TimeZone)): New method,
    * source/org/jfree/data/time/Hour.java
    (Hour(Date, TimeZone)): Peg to zone,
    * source/org/jfree/data/time/Millisecond.java
    (Millisecond(Date, TimeZone)): Peg to zone,
    * source/org/jfree/data/time/Month.java
    (Month(Date, TimeZone)): Peg to zone.

2007-04-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Plot.java
    (drawBackgroundImage): Changed from protected to public.

2007-04-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer3D.java
    (drawBackground): Use background alpha, and delegate background
    image drawing to the plot,
    * source/org/jfree/chart/renderer/category/LineRenderer3D.java
    (drawBackground): Likewise.

2007-03-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues2D.java
    (removeValue): Remove column values by key not index,
    * tests/org/jfree/data/junit/DefaultKeyedValues2DTests.java
    (testRemoveValueBug1690654): New test method.

----------  JFREECHART 1.0.5 RELEASED ------------------------

2007-03-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (draw): Draw shared axis last,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    (draw): Likewise.

2007-03-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYErrorRenderer.java
    (drawItem): Check item visibility.

2007-03-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (drawDomainLine): New method,
    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (getItemShapeFilled): Do full lookup,
    (getShapesFilled): New method,
    (setShapesFilled): Fire change event,
    (getSeriesShapesFilled): Only look up per-series settings,
    (setSeriesShapesFilled): Fire change event,
    (getLegendItem): Call getItemShapeFilled for shape fill status.

2007-03-23  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Updated library version numbers,
    * source/org/jfree/chart/plot/XYPlot.java
    (domainZeroBaselineVisible): New field,
    (domainZeroBaselineStroke): Likewise,
    (domainZeroBaselinePaint): Likewise,
    (XYPlot): Initialise new field,
    (isDomainZeroBaselineVisible): New method,
    (setDomainZeroBaselineVisible): Likewise,
    (getDomainZeroBaselineStroke): Likewise,
    (setDomainZeroBaselineStroke): Likewise,
    (getDomainZeroBaselinePaint): Likewise,
    (setDomainZeroBaselinePaint): Likewise,
    (draw): Added drawing code for domain zero baseline,
    (render): Added check for null renderer,
    (drawZeroDomainBaseline): New method,
    (equals): Test new fields,
    (writeObject): Handle new fields,
    (readObject): Likewise.

2007-03-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java
    (setShapePaint): Fire change event,
    (setShapeStroke): Likewise.

2007-03-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (getItemLabelGenerator(int, int)): Do lookup,
    (getSeriesItemLabelGenerator(int)): Lookup only the series generator,
    (getItemLabelGenerator): New method,
    (getToolTipGenerator(int, int)): Do lookup,
    (getToolTipGenerator): New method,
    (getSeriesToolTipGenerator): Lookup only the series generator.

2007-03-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (fireChangeEvent): Fire new event every time.

2007-03-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot3D.java
    (setDepthFactor): Fire PlotChangeEvent,
    (equals): New method override,
    * tests/org/jfree/chart/plot/junit/PiePlot3DTests.java
    (testEquals): New test.

2007-03-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/LogarithmicAxis.java
    (autoAdjustRange): Use new defaultAutoRange attribute,
    * source/org/jfree/chart/axis/NumberAxis.java
    (autoAdjustRange): Likewise,
    * source/org/jfree/chart/axis/PeriodAxis.java
    (autoAdjustRange): Likewise,
    * source/org/jfree/chart/axis/ValueAxis.java
    (DEFAULT_LOWER_BOUND): Deprecated,
    (DEFAULT_UPPER_BOUND): Likewise,
    (defaultAutoRange): New field,
    (ValueAxis(String, TickUnitSource)): Initialise new field,
    (getDefaultAutoRange): New method,
    (setDefaultAutoRange): New method,
    (equals): Check new defaultAutoRange field.

2007-03-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/AxisLocation.java
    (getOpposite): New method.

2007-03-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (getAntiAlias): Simplified,
    (getTextAntiAlias): New method,
    (setTextAntiAlias(boolean)): New method,
    (setTextAntiAlias(Object)): New method.

2007-03-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (getDataItem(RegularTimePeriod)): Simplified.

2007-03-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/ExtendedCategoryAxis.java
    (sublabelPaint): Marked as transient,
    (setSubLabelFont): Check for null argument, fire change event,
    (setSubLabelPaint): Likewise,
    (equals): New method override,
    (clone): Likewise,
    (writeObject): New method,
    (readObject): New method,
    * tests/org/jfree/chart/axis/junit/AxisPackageTests.java
    (suite): Added ExtendedCategoryAxisTests,
    * tests/org/jfree/chart/axis/junit/ExtendedCategoryAxisTests.java:
    New file.

2007-03-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PolarPlot.java
    (angleLabelPaint): Marked as transient,
    (writeObject): Handle angleLabelPaint field,
    (readObject): Likewise,
    * tests/org/jfree/chart/plot/junit/PolarPlotTests.java
    (testSerialization): Added checks for paint fields.

2007-03-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MeterPlot.java
    (tickPaint): Marked as transient,
    (tickLabelPaint): Likewise,
    (writeObject): Handle new transient fields,
    (readObject): Likewise,
    * tests/org/jfree/chart/plot/junit/MeterPlotTests.java
    (testSerialization): Added checks for paint fields.

2007-03-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateTickUnit.java
    (units): New private field,
    (toString): New method override.

2007-03-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CompassPlot.java
    (roseHighlightPaint): Marked transient,
    (rosePaint): Likewise,
    (roseCenterPaint): Likewise,
    (setDrawBorder): Notify listeners,
    (writeObject): New method,
    (readObject): New method,
    * tests/org/jfree/chart/plot/junit/CompassPlotTests.java
    (testSerialization): Check paint fields with GradientPaint.

2007-03-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/GanttRenderer.java
    (completePaint): Marked transient,
    (incompletePaint): Likewise,
    (equals): Implemented,
    (writeObject): New method,
    (readObject): Likewise,
    * tests/org/jfree/chart/renderer/category/junit/GanttRendererTests.java
    (testEquals): Extended,
    (testSerialization): Updated to check gradient paint.

2007-03-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (JFreeChart(String, Font, Plot, boolean)): Update for renamed method,
    * source/org/jfree/chart/block/AbstractBlock.java
    (border): Renamed frame,
    (AbstractBlock): Updated for renamed field,
    (getBorder): Likewise,
    (setBorder(BlockBorder)): Updated for renamed method,
    (setBorder(double, double, double, double)): Likewise,
    (getBlockFrame): Renamed getFrame(),
    (setBlockFrame): Renamed setFrame(),
    (getContentXOffset): Updated for renamed field,
    (getContentYOffset): Likewise,
    (trimToContentWidth): Likewise,
    (trimToContentHeight): Likewise,
    (calculateTotalWidth): Likewise,
    (calculateTotalHeight): Likewise,
    (trimBorder): Likewise,
    (drawBorder): Likewise,
    (equals): Likewise,
    (clone): Likewise,
    * source/org/jfree/chart/title/LegendTitle.java
    (draw): Updated for renamed method.

2007-03-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartUtilities.java
    (saveChartAsPNG(File, JFreeChart, int, int, ChartRenderingInfo)): Wrap
    writeChartAsPNG in try-finally,
    (saveChartAsPNG(File, JFreeChart, int, int, ChartRenderingInfo,
    boolean, int)): Likewise,
    (saveChartAsJPEG(File, JFreeChart, int, int, ChartRenderingInfo)):
    Likewise,
    (saveChartAsJPEG(File, float, JFreeChart, int, int,
    ChartRenderingInfo)): Likewise.

2007-03-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (JFreeChart(String, Plot, Font, boolean)): Changed initial legend
    border,
    * source/org/jfree/chart/block/AbstractBlock.java: implemented
    Cloneable,
    (border): Changed type to BlockFrame,
    (getBorder): Deprecated,
    (setBorder): Deprecated,
    (getBlockFrame): New method,
    (setBlockFrame): New method,
    (equals): Check id field,
    (clone): Implemented,
    * source/org/jfree/chart/block/BlockBorder.java: Implemented BlockFrame
    interface,
    * source/org/jfree/chart/block/BlockFrame.java: New file,
    * source/org/jfree/chart/block/ColorBlock.java
    (paint): Marked transient,
    (ColorBlock): Added null argument check,
    (getPaint): New method,
    (equals): New method,
    (writeObject): New method,
    (readObject): New method,
    * source/org/jfree/chart/block/LineBorder.java: New file,
    * source/org/jfree/chart/title/LegendTitle.java
    (draw): Updated for changes to AbstractBlock border,
    * tests/org/jfree/chart/block/junit/AbstractBlockTests.java: New file,
    * tests/org/jfree/chart/block/junit/BlockBorderTests.java: Reformatted,
    * tests/org/jfree/chart/block/junit/BlockPackageTests.java: Added new
    tests,
    * tests/org/jfree/chart/block/junit/ColorBlockTests.java: New file,
    * tests/org/jfree/chart/block/junit/EmptyBlockTests.java: Reformatted,
    * tests/org/jfree/chart/block/junit/LineBorderTests.java: New file.

2007-03-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/block/LabelBlock.java
    (paint): Mark as transient,
    (equals): Minor simplification,
    (readObject): New method,
    (writeObject): Likewise,
    * tests/org/jfree/chart/block/junit/LabelBlockTests.java
    (testSerialization): Test with GradientPaint.

2007-03-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYBarRenderer.java
    (renderAsPercentages): New field,
    (StackedXYBarRenderer()): Delegate to another constructor,
    (StackedXYBarRenderer(double)): Initialise item label settings,
    (getRenderAsPercentages): New method,
    (setRenderAsPercetanges): Likewise,
    (getPassCount): New method override,
    (findRangeBounds): Handle renderAsPercentages,
    (drawItem): Divide into two passes, handle renderAsPercentages and
    item label drawing,
    (equals): Check renderAsPercentages,
    (hashCode): New method override,
    * source/org/jfree/data/general/DatasetUtilities.java
    (calculateStackTotal): New method,
    * tests/org/jfree/chart/renderer/xy/junit/StackedXYBarRendererTests.java
    (testEquals): Check new field,
    (testHashCode): Likewise.

2007-03-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/DeviationRenderer.java
    (drawItem): Removed calls to Java 1.6 methods.

2007-03-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (clone): Reimplemented,
    * tests/org/jfree/chart/renderer/junit/DefaultPolarItemRendererTests.java
    (testCloning): Added independence check.

2007-03-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (setPlotDiscontinuous): New method,
    (equals): Check additional fields,
    (clone): Reimplemented,
    * tests/org/jfree/chart/renderer/xy/junit/StandardXYItemRendererTests.java
    (testEquals): Check additional fields,
    (testCloning): Check independence.

2007-03-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (draw): Moved annotation drawing up to point where clipping still
    applies.

2007-03-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (DEFAULT_CROSSHAIR_VISIBLE): New field,
    (DEFAULT_CROSSHAIR_STROKE): Likewise,
    (DEFAULT_CROSSHAIR_PAINT): Likewise,
    (CategoryPlot(CategoryDataset, CategoryAxis, ValueAxis, CategoryItemRenderer)):
    Initialise crosshair fields,
    (setRangeCrosshairStroke): Check for null stroke,
    (setRangeCrosshairPaint): Check for null paint,
    (draw): Call new drawRangeCrosshair() method,
    (drawRangeCrosshair): New method,
    * source/org/jfree/chart/plot/XYPlot.java
    (setRangeCrosshairStroke): Added null argument check,
    (setRangeCrosshairPaint): Likewise.

2007-03-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java
    (drawItem): Handle horizontal plot orientation.

2007-03-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/LookupPaintScale.java
    (clone): Clone the lookup table,
    * source/org/jfree/chart/renderer/xy/XYBlockRenderer.java
    (clone): Clone the paint scale,
    * tests/org/jfree/chart/renderer/junit/LookupPaintScaleTests.java
    (testCloning): Check independence,
    * tests/org/jfree/chart/renderer/xy/junit/XYBlockRendererTests.java
    (testCloning): Check independence.

2007-03-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/DefaultIntervalCategoryDataset.java
    (getSeriesIndex): Reimplemented,
    (getColumnIndex): Reimplemented,
    (getRowIndex): Delegate to getSeriesIndex(),
    (getColumnCount): Reimplemented,
    (getRowCount): Likewise,
    (getSeries): Deprecated,
    (getCategories): Deprecated,
    (getItemCount): Deprecated.

2007-03-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (drawItemPass1): Fix entity generation.

2007-03-08  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/plot/dial/DialPlot.java
    (hashCode): Fixed,
    * experimental/org/jfree/experimental/chart/plot/dial/DialTextAnnotation.java
    (hashCode): Fixed,
    * experimental/org/jfree/experimental/chart/plot/dial/SimpleDialFrame.java
    (hashCode): Fixed,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialFrame.java
    (hashCode): Fixed,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialRange.java
    (hashCode): Fixed.

2007-03-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/gantt/TaskSeriesCollection.java
    (remove): Fix argument check,
    * source/org/jfree/data/time/TimePeriodValuesCollection.java
    (getSeries): Likewise,
    * source/org/jfree/data/xy/DefaultTableXYDataset.java
    (getSeries): Likewise,
    * source/org/jfree/data/xy/XYSeriesCollection.java
    (removeSeries): Likewise,
    * tests/org/jfree/data/gantt/junit/TaskSeriesCollectionTests.java
    (testRemove): New test method,
    * tests/org/jfree/data/time/junit/TimePeriodValuesCollectionTests.java
    (testGetSeries): Likewise,
    * tests/org/jfree/data/xy/junit/DefaultTableXYDatasetTests.java
    (testGetSeries): Likewise,
    * tests/org/jfree/data/xy/junit/XYSeriesCollectionTests.java
    (testGetSeries): Likewise,
    (testRemoveSeries): Likewise.

2007-03-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/DefaultIntervalCategoryDataset.java
    (getValue(Comparable, Comparable)): Check keys,
    (getStartValue(Comparable, Comparable)): Likewise,
    (getEndValue(Comparable, Comparable)): Likewise,
    (setStartValue): Correct index range check,
    (setEndValue): Likewise,
    (equals): New method override,
    (clone): Likewise,
    (equal): New private method,
    (clone(Number[][])): Likewise,
    * tests/org/jfree/data/category/junit/DefaultIntervalCategoryDatasetTests.java: New file,
    * tests/org/jfree/data/category/junit/DataCategoryPackageTests.java:
    (suite): Added DefaultIntervalCategoryDatasetTests.

2007-03-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/DefaultCategoryDataset.java
    (clone): New method override,
    * tests/org/jfree/data/category/junit/DefaultCategoryDatasetTests.java
    (testCloning): New method.

2007-03-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/LookupPaintScale.java
    (PaintItem): Implements Comparable,
    (PaintItem.compareTo): New method,
    (LookupPaintScale(double, double, Paint)): Initialise bounds,
    (add): Reimplemented to ensure ordered list,
    (getPaint): Check bounds and return default paint if value is outside,
    * tests/org/jfree/chart/renderer/junit/LookupPaintScaleTests.java
    (EPSILON): New field,
    (testConstructor1): New method,
    (testConstructor2): Likewise,
    (testGeneral): Likewise.

2007-03-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (drawCategoryLabels): Fix offset.

2007-03-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/AbstractXYAnnotation.java
    (hashCode): Implemented,
    * source/org/jfree/chart/annotations/CategoryLineAnnotation.java
    (hashCode): Reimplemented,
    * source/org/jfree/chart/annotations/CategoryPointerAnnotation.java
    (hashCode): Likewise,
    * source/org/jfree/chart/annotations/CategoryTextAnnotation.java
    (hashCode): Implemented,
    * source/org/jfree/chart/annotations/XYPointerAnnotation.java
    (hashCode): Likewise,
    * source/org/jfree/chart/annotations/XYShapeAnnotation.java
    (hashCode): Likewise.

2007-03-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/HashUtilities.java
    (hashCodeForDoubleArray): Accumulate result,
    * tests/org/jfree/chart/junit/ChartPackageTests.java
    (suite): Add HashUtilitiesTests,
    * tests/org/jfree/chart/junit/HashUtilitiesTests.java: New file.

2007-03-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYTextAnnotation.java
    (setText): Added null argument check,
    (setFont): Likewise,
    (setPaint): Likewise,
    (setTextAnchor): Likewise,
    (setRotationAnchor): Likewise,
    (hashCode): Reimplemented.

2007-03-05  Sergei Ivanov  <sergei_ivanov@users.sourceforge.net>

    * source/org/jfree/chart/ChartPanel.java
    (paintComponent): Redraw the zoom rectangle and dispose the Graphics2D
    instance,
    (mouseDragged): Factor out zoom rectangle drawing,
    (mouseReleased): Likewise,
    (mouseMoved): Pass Graphics2D to drawAxisTrace methods,
    (drawZoomRectangle): New method,
    (drawHorizontalAxisTrace): Added Graphics2D parameter,
    (drawVerticalAxisTrace): Likewise,
    (displayPopupMenu): Fixed logical AND typo.

2007-03-05  Sergei Ivanov  <sergei_ivanov@users.sourceforge.net>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (drawItem): Reworked bar calculation to fix bug when rendering
    against LogarithmicAxis.

2007-03-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    (useOutlinePaint): New field,
    (CandlestickRenderer(double, boolean, XYToolTipGenerator)): Initialise
    new field,
    (drawVolume): Deprecated,
    (getDrawVolume): New method,
    (getUseOutlinePaint): Likewise,
    (setUseOutlinePaint): Likewise,
    (drawItem): Use outline paint if flag is set,
    (equals): Test useOutlinePaint flag,
    * tests/org/jfree/chart/renderer/xy/junit/CandlestickRendererTests.java
    (testEquals): Added check for useOutlinePaint flag.

2007-03-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MeterPlot.java
    (draw): Restore clip correctly,
    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (draw): Likewise.

2007-03-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (drawRangeGridlines): Check for null renderer,
    * tests/org/jfree/chart/plot/junit/XYPlotTests.java
    (testDrawRangeGridlines): New test method.

2007-03-02  Sergei Ivanov  <sergei_ivanov@users.sourceforge.net>

    * source/org/jfree/chart/axis/LogarithmicAxis.java
    (switchedPow10): New method,
    (adjustedLog10): Modified for clarity,
    (adjustedPow10): New method,
    (autoAdjustRange): Reformatting only,
    (valueToJava2D): Likewise,
    (java2dToValue): Use new methods,
    (zoomRange): New method override,
    * tests/org/jfree/chart/axis/junit/LogarithmicAxisTests.java
    (MyLogarithmicAxis): New inner class,
    (EPSILON): New constant,
    (axis): New field,
    (setUp): New method,
    (testAdjustedLog10): Likewise,
    (checkLogPowRoundTrip): Likewise,
    (testSwitchedLog10): Likewise,
    (checkSwitchedLogPowRoundTrip): Likewise,
    (testJava2DToValue): Likewise,
    (testValueToJava2D): Likewise,
    (checkPointsToJava2D): Likewise,
    (checkPointsToValue): Likewise,
    (main): Likewise.

2007-03-02  Sergei Ivanov  <sergei_ivanov@users.sourceforge.net>

    * source/org/jfree/chart/plot/XYPlot.java
    (draw): Updated crosshair drawing to take account of orientation
    correctly (see bug 1671645).

2007-03-01  Sergei Ivanov  <sergei_ivanov@users.sourceforge.net>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (drawRangeMarker): Fixed drawing of interval markers,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (drawDomainMarker): Likewise,
    (drawRangeMarker): Likewise.

2007-02-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (event): New field,
    (setSeriesVisible(Boolean, boolean)): Call fireChangeEvent() to notify,
    (setSeriesVisible(int, Boolean, boolean)): Likewise,
    (setBaseSeriesVisible(boolean, boolean)): Likewise,
    (setSeriesVisibleInLegend(Boolean, boolean)): Likewise,
    (setSeriesVisibleInLegend(int, Boolean, boolean)): Likewise,
    (setBaseSeriesVisibleInLegend(boolean, boolean)): Likewise,
    (setPaint(Paint, boolean)): Likewise,
    (setSeriesPaint(int, Paint, boolean)): Likewise,
    (setBasePaint(Paint, boolean)): Likewise,
    (setFillPaint(Paint, boolean)): Likewise,
    (setSeriesFillPaint(int, Paint, boolean)): Likewise,
    (setBaseFillPaint(Paint, boolean)): Likewise,
    (setOutlinePaint(Paint, boolean)): Likewise,
    (setSeriesOutlinePaint(int, Paint, boolean)): Likewise,
    (setBaseOutlinePaint(Paint, boolean)): Likewise,
    (setStroke(Stroke, boolean)): Likewise,
    (setSeriesStroke(int, Stroke, boolean)): Likewise,
    (setBaseStroke(Stroke, boolean)): Likewise,
    (setOutlineStroke(Stroke, boolean)): Likewise,
    (setSeriesOutlineStroke(int, Stroke, boolean)): Likewise,
    (setBaseOutlineStroke(Stroke, boolean)): Likewise,
    (setShape(Shape, boolean)): Likewise,
    (setSeriesShape(int, Shape, boolean)): Likewise,
    (setBaseShape(Shape, boolean)): Likewise,
    (setItemLabelsVisible(Boolean, boolean)): Likewise,
    (setSeriesItemLabelsVisible(int, Boolean, boolean)): Likewise,
    (setBaseItemLabelsVisible(Boolean, boolean)): Likewise,
    (setItemLabelFont(Font, boolean)): Likewise,
    (setSeriesItemLabelFont(int, Font, boolean)): Likewise,
    (setBaseItemLabelFont(Font, boolean)): Likewise,
    (setItemLabelPaint(Paint, boolean)): Likewise,
    (setSeriesItemLabelPaint(int, Paint, boolean)): Likewise,
    (setBaseItemLabelPaint(Paint, boolean)): Likewise,
    (setPositiveItemLabelPosition(ItemLabelPosition, boolean)): Likewise,
    (setSeriesPositiveItemLabelPosition(int, ItemLabelPosition, boolean)):
    Likewise,
    (setBasePositiveItemLabelPosition(ItemLabelPosition, boolean)):
    Likewise,
    (setNegativeItemLabelPosition(ItemLabelPosition, boolean)): Likewise,
    (setSeriesNegativeItemLabelPosition(int, ItemLabelPosition, boolean)):
    Likewise,
    (setBaseNegativeItemLabelPosition(ItemLabelPosition, boolean)):
    Likewise,
    (setItemLabelAnchorOffset): Likewise,
    (setCreateEntities(Boolean, boolean)): Likewise,
    (setSeriesCreateEntities(int, Boolean, boolean)): Likewise,
    (setBaseSeriesCreateEntities(Boolean, boolean)): Likewise,
    (fireChangeEvent): New method,
    (clone): Initialise event listener list and set event to null.

2007-02-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/SymbolAxis.java
    (refreshTicksVertical): Pull check for tickLabelsOverlapping outside
    first check.

2007-02-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (setRangeAxisLocation(int, AxisLocation, boolean)): Fixed
    copy-and-paste error.

2007-02-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/DeviationRenderer.java: New file,
    * tests/org/jfree/chart/renderer/xy/junit/DeviationRendererTests.java:
    New file,
    * tests/org/jfree/chart/renderer/xy/junit/RendererXYPackageTests.java
    (suite): Add new tests.

2007-02-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (setDomainAxisLocation(AxisLocation)): Delegate,
    (setDomainAxisLocation(AxisLocation, boolean)): Likewise,
    (setDomainAxisLocation(int, AxisLocation)): Likewise,
    (setDomainAxisLocation(int, AxisLocation, boolean)): New method,
    (setRangeAxisLocation(AxisLocation)): Delegate,
    (setRangeAxisLocation(AxisLocation, boolean)): Likewise,
    (setRangeAxisLocation(int, AxisLocation)): Likewise,
    (setRangeAxisLocation(int, AxisLocation, boolean)): New method.

2007-02-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (setDomainAxisLocation(AxisLocation, boolean)): Delegate argument
    check,
    (setDomainAxisLocation(int, AxisLocation)): Delegate to new method,
    (setDomainAxisLocation(int, AxisLocation, boolean)): New method,
    (setRangeAxisLocation(int, AxisLocation, boolean)): Added argument
    check,
    (draw): Removed redundant code.

2007-02-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues2D.java: Updated API docs,
    * source/org/jfree/data/category/DefaultCategoryDataset.java: Likewise,
    * tests/org/jfree/data/category/junit/DefaultCategoryDatasetTests.java:
    (testGetValue2): New method,
    (testAddValue): Likewise,
    (testRemoveValue): Likewise,
    * tests/org/jfree/data/junit/DefaultKeyedValues2DTests.java
    (testRowCount): New method,
    (testColumnCount): Likewise,
    (testGetValue2): Likewise,
    (testGetRowKey): Likewise,
    (testGetColumnKey): Likewise,
    (testRemoveValue): Likewise,
    (testRemoveRow): Likewise.

2007-02-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (createState): New method,
    (initialise): Call createState(),
    * source/org/jfree/chart/renderer/category/CategoryStepRenderer.java
    (State): New class,
    (line): Removed field,
    (getLegendItem): New method override,
    (createState): Likewise,
    (drawLine): Added State parameter,
    (drawItem): Updated calls to drawLine(), added entities,
    (equals): Minor rearrangement,
    * tests/org/jfree/chart/renderer/category/junit/CategoryStepRendererTests.java
    (testCloning): Minor updates,
    (testSerialization): Likewise.

2007-02-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (clone): Reimplemented,
    (equals): Added checks for useFillPaint and drawSeriesLineAsPath,
    * tests/org/jfree/chart/renderer/xy/junit/XYLineAndShapeRendererTests.java
    (testEquals): Check additional fields,
    (testCloning): Check for independence.

2007-02-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/YIntervalSeries.java
    (getYHighValue): New method,
    (getYLowValue): Likewise,
    * source/org/jfree/data/xy/YIntervalSeriesCollection.java
    (getX): Call method in YIntervalSeries to get result,
    (getYValue): New method override,
    (getStartYValue): Likewise,
    (getEndYValue): Likewise,
    (getY): Call method in YIntervalSeries to get result,
    (getStartY): Likewise,
    (getEndY): Likewise.

2007-02-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (clone): Fix cloning of a number of fields,
    (equals): Check additional fields,
    * tests/org/jfree/chart/renderer/xy/junit/YIntervalRendererTests.java
    (testEquals): Extended,
    (testCloning): Check independence of clone.

2007-02-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/MultipleXYSeriesLabelGenerator.java
    (clone): Reimplemented,
    (equals): Likewise,
    * tests/org/jfree/chart/labels/junit/LabelsPackageTests.java
    (suite): Added MultipleXYSeriesLabelGeneratorTests,
    * tests/org/jfree/chart/labels/junit/MultipleXYSeriesLabelGeneratorTests.java:
    New file.

2007-02-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractRenderer.java
    (clone): handle some more fields correctly,
    * tests/org/jfree/chart/renderer/junit/AbstractRendererTests.java
    (testCloning): New method.

2007-02-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (clone): Make a copy of legendArea;
    * tests/org/jfree/chart/renderer/xy/junit/XYAreaRendererTests.java
    (testCloning): Check independence.

2007-02-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/RingPlot.java
    (setSectionDepth): Added event notification.

2007-02-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYStepAreaRenderer.java
    (equals): New method override,
    * tests/org/jfree/chart/renderer/xy/junit/XYStepAreaRendererTests.java
    (testEquals): Added more checks.

2007-02-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYIntervalSeriesCollection.java
    (clone): Implemented,
    * tests/org/jfree/data/xy/junit/XYIntervalSeriesCollectionTests.java
    (testCloning): Check independence,
    (testSerializable): Likewise,
    * tests/org/jfree/data/xy/junit/XYIntervalSeriesTests.java
    (testValues): New test.

2007-02-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYIntervalSeries.java
    (getXLowValue): New method,
    (getXHighValue): Likewise,
    (getYLowValue): Likewise,
    (getYHighValue): Likewise,
    * source/org/jfree/data/xy/XYIntervalSeriesCollection.java
    (getX): Simplified,
    (getStartXValue): New method override,
    (getEndXValue): Likewise,
    (getYValue): Likewise,
    (getStartYValue): Likewise,
    (getEndYValue): Likewise,
    (getY): Simplified,
    (getStartX): Likewise,
    (getEndX): Likewise,
    (getStartY): Likewise,
    (getEndY): Likewise.

----------  JFREECHART 1.0.4 RELEASED ------------------------

2007-02-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (getLegendItem): Check drawBarOutline flag,
    (clone): Make a copy of the legendBar shape,
    * tests/org/jfree/chart/renderer/xy/junit/XYBarRendererTests.java
    (testCloning): Added independence check.

2007-02-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (draw): Check renderer index against dataset count,
    (drawDomainMarkers): Likewise,
    (drawRangeMarkers): Likewise,
    * tests/org/jfree/chart/plot/junit/CategoryPlotTests.java
    (test1654215): New test,
    * tests/org/jfree/chart/plot/junit/XYPlotTests.java:
    (test1654215): New test.

2007-02-07  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/chart/swt/demo/SWTBarChartDemo1.java
    (main): Set offscreen buffer flag to true.

2007-02-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PolarPlot.java
    (setAngleLabelPaint): Check for null argument,
    (equals): Check cornerTextItems list,
    (clone): Clone the cornerTextItems list,
    (translateValueThetaRadiusToJava2D): Don't let value go below axis
    minimum,
    * tests/org/jfree/chart/plot/junit/PolarPlotTests.java
    (testEquals): Added check for corner text items,
    (testCloning): Added independence checks.

2007-02-07  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/chart/swt/editor/SWTAxisEditor.java
    (SWTAxisEditor(Composite, Axis, int)): Check for null axis label.

2007-02-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (draw): Draw shared axis after subplots,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java
    (draw): Likewise.

2007-02-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CrosshairState.java
    (domainAxisIndex): New field,
    (rangeAxisIndex): New fields,
    (updateCrosshairPoint(double, double, double, double,
    PlotOrientation)): Deprecated,
    (updateCrosshairPoint(double, double, int, int, double, double,
    PlotOrientation)): New method,
    (updateCrosshairX(double)): Deprecated,
    (updateCrosshairX(double, int)): New method,
    (updateCrosshairY(double)): Deprecated,
    (updateCrosshairY(double, int)): New method,
    (getDomainAxisIndex): New method,
    (getRangeAxisIndex): New method,
    * source/org/jfree/chart/plot/XYPlot.java
    (draw): Updated to store axis indices in CrosshairState, then draw
    crosshairs using new methods,
    (drawDomainCrosshair): New method,
    (drawRangeCrosshair): New method,
    (getDomainAxisIndex): Changed from protected to public,
    (getRangeAxisIndex): Likewise,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (updateCrosshairValues(CrosshairState, double, double, double, double,
    PlotOrientation): Deprecated,
    (updateCrosshairValues(CrosshairState, double, double, int, int,
    double, double, PlotOrientation): New method,
    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java
    (drawItem): Call revised updateCrosshairValues() method,
    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYDotRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYStepAreaRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYStepRenderer.java
    (drawItem): Likewise.

2007-02-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartUtilities.java: API doc updates,
    * source/org/jfree/chart/entity/ChartEntity.java: Likewise,
    * source/org/jfree/chart/imagemap/ImageMapUtilities.java: Likewise.

2007-02-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (getPlotValue): Changed to protected.

2007-02-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (drawItemPass1): Added extra call to updateCrosshairValues().

2007-02-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (addRangeMarker): Register plot as a listener with the marker,
    * tests/org/jfree/chart/plot/junit/CategoryPlotTests.java
    (testAddDomainMarker): New test,
    (testAddRangeMarker): Likewise,
    * tests/org/jfree/chart/plot/junit/XYPlotTests.java
    (testAddDomainMarker): New test,
    (testAddRangeMarker): Likewise.

2007-02-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (draw): Draw axes before first polygon,
    (drawRadarPoly): Remove axis drawing code.

2007-02-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (axisLinePaint): New field,
    (axisLineStroke): New field,
    (SpiderWebPlot(CategoryDataset, TableOrder)): Initialise new fields,
    (getAxisLinePaint): New method,
    (setAxisLinePaint): Likewise,
    (getAxisLineStroke): Likewise,
    (setAxisLineStroke): Likewise,
    (drawRadarPoly): Fixed problems with paint and stroke on axis lines,
    (equals): Updated for new fields,
    (clone): New method override,
    (writeObject): Updated for new fields,
    (readObject): Likewise,
    * tests/org/jfree/chart/plot/junit/SpiderWebPlotTests.java
    (testEquals): Added checks for new fields,
    (testCloning): Added independence checks.

2007-02-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (setArtifactPaint): Check for null, generate event,
    (setItemMargin): Generate event,
    * source/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java
    (setArtifactPaint): Check for null, generate event,
    (drawHorizontalItem): Partially implemented (no outliers yet).

2007-02-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java
    (drawItem): Fixed crosshair y-value.

2007-02-02  David Gilbert  <david.gilbert@object-refinery.com>

    * experiments/org/jfree/experimental/chart/renderer/xy/VectorRenderer.java
    (drawItem): Fixed calls to JDK 1.6-only methods;
    (equals): Check additional fields.

2007-02-02  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/annotations/XYTitleAnnotation.java:
    New file,
    * experimental/org/jfree/experimental/chart/demo/XYTitleAnnotationDemo1.java:
    New file,
    * experimental/org/jfree/experimental/chart/util/XYCoordinateType.java:
    New file.

2007-02-02  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Updated version numbers,
    * ant/build-swt.xml: Likewise.

2007-02-02  David Gilbert  <david.gilbert@object-refinery.com>

    * NEWS: updated,
    * source/org/jfree/chart/resources/JFreeChartResources.java
    (CONTENTS): Updated version number and date.

2007-02-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/StandardXYItemLabelGenerator.java:
    (StandardXYItemLabelGenerator(String, NumberFormat, DateFormat)): Made
    public,
    * source/org/jfree/chart/labels/StandardXYToolTipGenerator.java:
    (StandardXYToolTIpGenerator(String, NumberFormat, DateFormat)):
    Likewise.

2007-02-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (setUseYInterval): Only notify if flag changes,
    * source/org/jfree/chart/renderer/xy/XYBlockRenderer.java
    (getPaintScale): New method.

2007-01-31  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo1.java:
    Removed and added to JFreeChart demo collection,
    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo2.java:
    Likewise,
    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo3.java:
    Likewise.

2007-01-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ClipPath.java: Deprecated,
    * source/org/jfree/chart/axis/ColorBar.java: Likewise,
    * source/org/jfree/chart/editor/PaletteChooserPanel.java: Likewise,
    * source/org/jfree/chart/editor/PaletteSample.java: Likewise,
    * source/org/jfree/chart/plot/ColorPalette.java: Likewise,
    * source/org/jfree/chart/plot/ContourPlot.java: Likewise,
    * source/org/jfree/chart/plot/ContourPlotUtilities.java: Likewise,
    * source/org/jfree/chart/plot/ContourValuePlot.java: Likewise,
    * source/org/jfree/chart/plot/GreyPalette.java: Likewise,
    * source/org/jfree/chart/plot/RainbowPalette.java: Likewise,
    * source/org/jfree/data/contour/ContourDataset.java: Likewise,
    * source/org/jfree/data/contour/DefaultContourDataset.java: Likewise,
    * source/org/jfree/data/contour/NonGridContourDataset.java: Likewise,
    * source/org/jfree/data/contour/package.html: Updated.

2007-01-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBlockRenderer.java: Moved from
    experimental,
    * experimental/org/jfree/experimental/chart/renderer/xy/XYBlockRenderer.java:
    Moved to main API,
    * experimental/org/jfree/experimental/chart/renderer/xy/junit/XYBlockRendererTests.java:
    Likewise,
    * tests/org/jfree/chart/renderer/junit/RendererPackageTests.java
    (suite): Added new tests,
    * tests/org/jfree/chart/renderer/xy/junit/RendererXYPackageTests.java
    (suite): Added XYBlockRendererTests,
    * tests/org/jfree/chart/renderer/xy/junit/XYBlockRendererTests.java:
    New file,
    * tests/org/jfree/chart/title/junit/TitlePackageTests.java
    (suite): Added new tests.

2007-01-31  David Gilbert  <david.gilbert@object-refinery.com>

    * org/jfree/chart/renderer/GrayPaintScale.java: Moved from
    experimental,
    * org/jfree/chart/renderer/LookupPaintScale.java: Likewise,
    * org/jfree/chart/renderer/PaintScale.java: Likewise,
    * org/jfree/chart/title/PaintScaleLegend.java: Likewise,
    * experimental/org/jfree/experimental/chart/renderer/GrayPaintScale.java:
    Moved to main API,
    * experimental/org/jfree/experimental/chart/renderer/LookupPaintScale.java:
    Likewise,
    * experimental/org/jfree/experimental/chart/renderer/PaintScale.java:
    Likewise,
    * experimental/org/jfree/experimental/chart/title/PaintScaleLegend.java:
    Likewise,
    * experimental/org/jfree/experimental/chart/renderer/junit/GrayPaintScaleTests.java:
    Likewise,
    * experimental/org/jfree/experimental/chart/renderer/junit/LookupPaintScaleTests.java:
    Likewise,
    * experimental/org/jfree/experimental/chart/title/junit/PaintScaleLegendTests.java:
    Likewise,
    * tests/org/jfree/chart/renderer/junit/GrayPaintScaleTests.java:
    Moved from experimental,
    * tests/org/jfree/chart/renderer/junit/LookupPaintScaleTests.java:
    Moved from experimental,
    * tests/org/jfree/chart/title/junit/PaintScaleLegendTests.java:
    Moved from experimental.

2007-01-31  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/renderer/GrayPaintScale.java:
    (min): Renamed lowerBound;
    (max): Renamed upperBound;
    (GrayPaintScale): Updated for renamed fields,
    (getLowerBound): New method,
    (getUpperBound): New method,
    (getPaint): Updated for renamed fields,
    (equals): Likewise,
    * experimental/org/jfree/experimental/chart/renderer/LookupPaintScale.java:
    (PaintItem): Implemented Serializable,
    (PaintItem.paint): Marked transient,
    (PaintItem.equals): New method,
    (PaintItem.writeObject): Likewise,
    (PaintItem.readObject): Likewise,
    (lowerBound): New field,
    (upperBound): New field,
    (defaultPaint): Marked transient,
    (LookupPaintScale()): Delegate to other constructor,
    (LookupPaintScale(double, double, Paint): New constructor,
    (getDefaultPaint): New method,
    (getLowerBound): New method,
    (getUpperBound): New method,
    (equals): Check new fields,
    (writeObject): New method,
    (readObject): New method,
    * experimental/org/jfree/experimental/chart/renderer/PaintScale.java:
    (getLowerBound): New method,
    (getUpperBound): Likewise,
    * experimental/org/jfree/experimental/chart/renderer/junit/LookupPaintScaleTests.java
    (testEquals): Check more fields,
    (testCloning): Added new check,
    (testSerialization): Likewise.

2007-01-31  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/title/PaintScaleLegend.java
    (arrange): Implemented arrangement for no constraints.

2007-01-31  Henry Proudhon  <henry.proudhon@insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java:
    Fixed some issues with the trace lines, fixed cross hair not being
    drawn, added getter and setter methods for the trace lines.
    * swt/org/jfree/experimental/chart/swt/demo/SWTTimeSeries.java:
    New class to test the cross hair.
    * swt/org/jfree/experimental/swt/SWTGraphics2D.java:
    Moved the dummy JPanel to SWTUtils.java, implemented the drawLine
    method.
    * swt/org/jfree/experimental/swt/SWTUtils.java: Moved the dummy JPanel
    from SWTGraphics2D.java, added a new convert method for mouse events.

2007-01-30  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/demo/VectorPlotDemo1.java:
    New file,
    * experimental/org/jfree/experimental/chart/renderer/xy/VectorRenderer.java:
    New file,
    * experimental/org/jfree/experimental/chart/renderer/xy/junit/VectorRendererTests.java:
    New file.

2007-01-30  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/data/xy/Vector.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/VectorDataItem.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/VectorSeries.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/VectorSeriesCollection.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/VectorXYDataset.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/XYCoordinate.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/junit/VectorDataItemTests.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/junit/VectorSeriesCollectionTests.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/junit/VectorSeriesTests.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/junit/VectorTests.java:
    New file,
    * experimental/org/jfree/experimental/data/xy/junit/XYCoordinateTests.java:
    New file.

2007-01-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DefaultValueDataset.java
    (DefaultValueDataset(Number)): Call super() explicitly,
    (equals): Tidied up.

2007-01-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYBarDataset.java
    (getXValue): New method override,
    (getYValue): Likewise,
    (getStartXValue): Likewise,
    (getEndXValue): Likewise,
    (getStartYValue): Likewise,
    (getEndYValue): Likewise.

2007-01-30  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/xy/junit/XYSeriesTests.java
    (testToArray): Fixed code that won't compile with Java 1.4,
    (testToArrayExample): Likewise.

2007-01-29  Henry Proudhon  <henry.proudhon@insa-lyon.fr>

    * swt/org/jfree/experimental/swt/SWTGraphics2D.java
    (fillRect): switch between foregroung and background colors to correct
    bug in FastScatterPlotDemo.

2007-01-26  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/chart/JFreeChartTestSuite.java
    (suite): Added OHLCPackageTests.

2007-01-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultXYDataset.java:
    Implemented PublicCloneable,
    * source/org/jfree/data/xy/XYBarDataset.java
    (getUnderlyingDataset): New method,
    (getBarWidth): Likewise,
    (setBarWidth): Likewise,
    (equals): New method override,
    (clone): Likewise,
    * tests/org/jfree/data/xy/junit/DataXYPackageTests.java
    (suite): Added new XYBarDatasetTests,
    * tests/org/jfree/data/xy/junit/XYBarDatasetTests.java: New class.

2007-01-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/AbstractXYItemLabelGenerator.java
    (AbstractXYItemLabelGenerator(String, NumberFormat, DateFormat)):
    New constructor,
    (clone): Clone date formatters,
    * source/org/jfree/chart/labels/StandardXYItemLabelGenerator.java
    (StandardXYItemLabelGenerator(String, NumberFormat, DateFormat)):
    New constructor,
    * source/org/jfree/chart/labels/StandardXYToolTipGenerator.java
    (StandardXYToolTipGenerator(String, NumberFormat, DateFormat)):
    New constructor,
    * tests/org/jfree/chart/labels/junit/StandardXYItemLabelGeneratorTests.java:
    (testCloning): Added independence checks.

2007-01-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (equals): New method override,
    * tests/org/jfree/chart/renderer/xy/junit/XYBubbleRendererTests.java
    (testEquals): Strengthened test.

2007-01-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (roundXCoordinates): New field,
    (XYDifferenceRenderer()): Initialise roundXCoordinates,
    (getRoundXCoordinates): New method,
    (setRoundXCoordinates): Likewise,
    (drawItemPass0): Perform optional rounding of x-coordinates in Java2D
    space,
    (equals): Check roundXCoordinates field,
    (clone): Clone the legendLine shape,
    * tests/org/jfree/chart/renderer/xy/junit/XYDifferenceRendererTests.java
    (testEquals): Added check for roundXCoordinates field,
    (testCloning): Check for clone independence.

2007-01-23  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo1.java:
    (createChart): Tweak settings on chart,
    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo2.java:
    (createChart): Likewise,
    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo3.java:
    (createChart): Likewise,
    * experimental/org/jfree/experimental/chart/title/PaintScaleLegend.java:
    (stripOutlineVisible): New field,
    (backgroundPaint): Don't initialise here,
    (PaintScaleLegend): Update initialisation,
    (isStripOutlineVisible): New method,
    (setStripOutlineVisible): Likewise,
    (getBackgroundPaint): Likewise,
    (setBackgroundPaint): Likewise,
    (SUBDIVISIONS): New private field,
    (draw): Use SUBDIVISIONS,
    (equals): Updated for new fields,
    * experimental/org/jfree/experimental/chart/title/junit/PaintScaleLegendTests.java:
    (testEquals): Test new fields.

2007-01-22  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo1.java:
    (createChart): Added PaintScaleLegend,
    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo2.java:
    (createChart): Likewise,
    * experimental/org/jfree/experimental/chart/demo/XYBlockChartDemo3.java:
    (createChart): Likewise,
    * experimental/org/jfree/experimental/chart/title/PaintScaleLegend.java:
    New class,
    * experimental/org/jfree/experimental/chart/title/junit/PaintScaleLegendTests.java:
    New test class.

2007-01-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (nextStandardDate): Use time zone for calendar.

2007-01-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (drawStackHorizontal): Handle inverted axis,
    (createHorizontalBlock): New method,
    (drawStackVertical): Handle inverted axis,
    (createVerticalBlock): New method.

2007-01-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (createStackedValueList): On null value, continue don't break,
    * tests/org/jfree/chart/renderer/category/junit/StackedBarRenderer3DTests.java:
    Added new test methods.

2007-01-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues2D.java
    (getValue(Comparable, Comparable)): Handle case where row doesn't
    explicitly define a value for a valid column key,
    * tests/org/jfree/data/junit/DefaultKeyedValues2DTests.java
    (testSparsePopulation): New test method.

2007-01-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createBoxAndWhiskerChart(String, String, String,
    BoxAndWhiskerCategoryDataset, boolean): New method,
    * source/org/jfree/chart/JFreeChart.java
    (JFreeChartInfo()): Added new contributor.

2007-01-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/DefaultIntervalCategoryDataset.java:
    Removed @author tag and reformatted source code,
    * source/org/jfree/data/category/IntervalCategoryDataset.java: Likewise,
    * source/org/jfree/data/contour/ContourDataset.java: Likewise,
    * source/org/jfree/data/contour/DefaultContourDataset.java: Likewise.

2007-01-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer3D.java
    (drawDomainGridline): Use correct value for x2,
    * source/org/jfree/chart/renderer/category/LineRenderer3D.java
    (setWallPaint): Check for null argument,
    (drawDomainGridline): Use correct value for x2.

2007-01-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/ColorPalette.java: Removed @author tag
    and reformatted source code,
    * source/org/jfree/chart/plot/CompassPlot.java: Likewise,
    * source/org/jfree/chart/plot/ContourPlot.java: Likewise,
    * source/org/jfree/chart/plot/ContourPlotUtilities.java: Likewise,
    * source/org/jfree/chart/plot/ContourValuePlot.java: Likewise,
    * source/org/jfree/chart/plot/GreyPalette.java: Likewise,
    * source/org/jfree/chart/plot/JThermometer.java: Likewise,
    * source/org/jfree/chart/plot/PolarPlot.java: Likewise,
    * source/org/jfree/chart/plot/RainbowPalette.java: Likewise,
    * source/org/jfree/chart/plot/ThermometerPlot.java: Likewise.

2007-01-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (prefetchSectionPaints): Check for paint settings in underlying
    PiePlot.

2007-01-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/PaintMap.java
    (PaintMap()): Use HashMap instead of TreeMap,
    (readObject): Likewise,
    * tests/org/jfree/chart/junit/PaintMapTests.java
    (testKeysOfDifferentClasses): New test method.

2007-01-16  David Gilbert  <david.gilbert@object-refinery.com>

    * swt/org/jfree/experimental/swt/SWTUtils.java
    (toAwtFont): Call getHeight() rather than accessing height field
    directly.

2007-01-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CompassPlot.java: Updated API docs.

2007-01-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (createStackedValueList): New method,
    (drawItem): Reimplemented,
    (drawStackHorizontal): New method,
    (drawStackVertical): New method.

2007-01-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/imagemap/DynamicDriveToolTipTagFragmentGenerator.java:
    Removed @author tag from API docs,
    * source/org/jfree/chart/imagemap/ImageMapUtilities: Likewise,
    * source/org/jfree/chart/imagemap/OverLIBToolTipTagFragmentGenerator.java:
    Likewise,
    * source/org/jfree/chart/imagemap/StandardToolTipTagFragmentGenerator.java:
    Likewise,
    * source/org/jfree/chart/imagemap/StandardURLTagFragmentGenerator.java:
    Likewise,
    * source/org/jfree/chart/imagemap/ToolTipTagFragmentGenerator.java:
    Likewise.

2007-01-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/TextAnnotation.java
    (setText): Added argument check,
    (setFont): Likewise,
    (setPaint): Likewise,
    (setTextAnchor): Likewise,
    (hashCode): Reimplemented.

2007-01-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (getTimeZone): New method,
    (setTimeZone): Likewise.

2007-01-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (setWeight): Notify listeners,
    (setRangeZeroBaselinePaint): Check for null argument,
    (drawRangeMarkers): Use axis for dataset/renderer.

2007-01-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYSeries.java
    (toArray): New method,
    * tests/org/jfree/data/xy/junit/XYSeriesTests.java
    (testToArray): New test,
    (testToArrayExample): Likewise.

2007-01-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Plot.java
    (setNoDataMessage): Notify listeners,
    (setNoDataMessageFont): Check for null, and notify listeners,
    (setNoDataMessagePaint): Likewise,
    plus lots of small API doc updates.

2007-01-10  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml
    (compile-tests): New target,
    (test): Likewise,
    * source/org/jfree/chart/labels/StandardPieSectionLabelGenerator.java
    (equals): Include attributedLabels in the test,
    * tests/org/jfree/chart/axis/junit/NumberAxisTests.java
    (testSetRangeType): Comment out temporarily.

2007-01-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Week.java
    (next): Don't go past maximum week in year.

2007-01-10  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/chart/annotations/junit/XYImageAnnotationTests.java
    (testSerialization): Commented out failing test,
    * tests/org/jfree/chart/axis/junit/NumberAxisTests.java
    (testCloning): Print stack trace,
    (testSerialization): Likewise,
    (testSetRangeType): New test,
    (testSetLowerBound): New test,
    * tests/org/jfree/chart/plot/junit/XYPlotTests.java
    (testGetDatasetCount): Commented out failing test.

2006-12-27  Thomas Morgner  <taqua@users.sourceforge.net>

    * source/org/jfree/chart/servlet/ChartDeleter.java: Implemented
    Serializable.

2006-12-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartUtilities.java: API doc updates and
    source reformatting.

2006-12-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java
    (fillPaintTransformer): New field,
    (LegendItem): Initialise fillPaintTransformer field,
    (getFillPaintTransformer): New method,
    (setFillPaintTransformer): Likewise,
    (equals): Check fillPaintTransformer attribute,
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (getLegendItem): Use gradientPaintTransformer if available,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/title/LegendGraphic.java
    (fillPaintTransformer): New field,
    (LegendGraphic): Initialise fillPaintTransformer,
    (getFillPaintTransformer): New method,
    (setFillPaintTransformer): Likewise,
    (draw): Added support for GradientPaint,
    (equals): Check fillPaintTransformer field,
    (hashCode): Implemented,
    (clone): Clone mutable fields,
    * source/org/jfree/chart/title/LegendTitle.java
    (createLegendItemBlock): Set gradientPaintTransformer,
    * tests/org/jfree/chart/junit/LegendItemTests.java
    (testEquals): Extended for new field,
    * tests/org/jfree/chart/title/junit/LegendGraphicTests.java
    (testEquals): Extended for new field,
    (testCloning): Added check for independence,
    (testCloning2): New method.

2006-12-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/ClusteredXYBarRenderer.java
    (drawItem): Add support for GradientPaint.

2006-12-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/NumberAxis.java
    (estimateMaximumTickLabelWidth): Use format override if set.

2006-12-11  Henry Proudhon <henry.proudhon AT insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (MouseUp event) fix popup menu location, patch sent by Fabrizio Giustina.

2006-12-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Minute.java
    (previous): Fix bug for first minute in hour,
    * tests/org/jfree/data/time/junit/MinuteTests.java
    (test1611872): New method.

2006-12-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (equals): Check additional fields,
    * tests/org/jfree/chart/renderer/category/junit/AbstractCategoryItemRendererTests.java
    (testEquals): New test.

2006-12-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer3D.java
    (equals): New method override,
    * tests/org/jfree/chart/renderer/category/junit/BarRenderer3DTests.java
    (testEquals): Check all fields.

2006-12-06  Henry Proudhon <henry.proudhon AT insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (displayToolTips): New field,
    (ChartComposite): modified event listener accordingly,
    (setDisplayToolTips): New method,
    (getToolTipText): New method (more or less copied from ChartPanel).

2006-12-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYBarRenderer.java
    (drawItem): Handle GradientPaint,
    * tests/org/jfree/chart/renderer/xy/junit/StackedXYBarRendererTests.java
    (testSerialization): Check handling of GradientPaint.

2006-12-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (initialise): Calculate clip bounds from correct axis.

2006-12-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/ohlc/OHLC.java: New file,
    * source/org/jfree/data/time/ohlc/OHLCItem.java: New file,
    * source/org/jfree/data/time/ohlc/OHLCSeries.java: New file,
    * source/org/jfree/data/time/ohlc/OHLCSeriesCollection.java: New file,
    * source/org/jfree/data/time/ohlc/package.html: New file,
    * tests/org/jfree/data/time/ohlc/junit/OHLCItemTests.java: New file,
    * tests/org/jfree/data/time/ohlc/junit/OHLCPackageTests.java: New file,
    * tests/org/jfree/data/time/ohlc/junit/OHLCSeriesCollectionTests.java:
    New tests,
    * tests/org/jfree/data/time/ohlc/junit/OHLCSeriesTests.java: New file,
    * tests/org/jfree/data/time/ohlc/junit/OHLCTests.java: New file.

2006-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LineRenderer3D.java
    (equals): New method override,
    (writeObject): New method,
    (readObject): New method,
    * tests/org/jfree/chart/renderer/category/junit/LineRenderer3DTests.java
    (suite): Use correct class name,
    (testEquals): Extended.

2006-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotation/XYImageAnnotation.java
    (anchor): New field,
    (XYImageAnnotation(double, double, Image)): Delegated,
    (XYImageAnnotation(double, double, Image, RectangleAnchor)): New
    constructor,
    (getX): New method,
    (getY): New method,
    (getImage): New method,
    (getImageAnchor): New method,
    (draw): Adjust image position,
    (equals): Check anchor field,
    * tests/org/jfree/chart/annotation/junit/XYImageAnnotationTests.java
    (testEquals): Extended,
    (testHashCode): Simplified,
    (testCloning): Reformatted,
    (testSerialization): Likewise.

2006-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java:
    (getLegendItem): Check that series is visible,
    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (getLegendItem): Check that series is visible,
    (drawItem): Return early if the item is not visible,
    * source/org/jfree/chart/renderer/category/CategoryStepRenderer.java
    (drawItem): Return early if the item is not visible.

2006-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PlotRenderingInfo.java
    (clone): Implemented properly,
    * tests/org/jfree/chart/plot/junit/PlotRenderingInfoTests.java
    (testEquals): Extended,
    (testCloning): Likewise.

2006-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartRenderingInfo.java
    (equals): Test entities,
    (clone): Implemented properly,
    * tests/org/jfree/chart/junit/ChartRenderingInfoTests.java
    (testEquals): Extended,
    (testClone): Check for independence.

2006-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/entity/StandardEntityCollection.java
    (clone): Implemented properly,
    * tests/org/jfree/chart/entity/junit/StandardEntityCollectionTests.java
    (testEquals): Extended,
    (testCloning): Likewise.

2006-11-30  Henry Proudhon <henry.proudhon AT insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (ChartComposite): Modified mouse and paint listener to improve zoom
    handling,
    (getPointInRectangle, zoom, scale, getScreenDataArea): Signature
    methods have been modified (Rectangle2D -> Rectangle).

2006-11-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2.java
    (getRoundXCoordinates): New method,
    (setRoundXCoordinates): New method,
    (equals): New method override,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    (plotLines): Removed field,
    (setOutline): Notify listeners,
    (getPlotLines): Deprecated redundant method,
    (equals): New method override,
    (clone): Clone the legend shape,
    * tests/org/jfree/chart/renderer/xy/junit/StackedXYAreaRenderer2Tests.java
    (testEquals): Extended,
    * tests/org/jfree/chart/renderer/xy/junit/XYAreaRenderer2Tests.java
    (testEquals): Extended,
    (testCloning): Likewise.

2006-11-29  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (draw): Set clip earlier to stop markers exceeding plot bounds.

2006-11-29  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createXYBarChart): Use time based tool tips if DateAxis is requested.

2006-11-28  Henry Proudhon <henry.proudhon AT insa-lyon.fr>

    * swt/org/jfree/experimental/chart/swt/ChartComposite.java
    (horizontalAxisTrace): New field,
    (verticalAxisTrace): New field,
    (verticalTraceLineX): New field,
    (horizontalTraceLineY): New field,
    (ChartComposite): Implemented trace line painting.

2006-11-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultIntervalXYDataset.java
    (hashCode): New method override,
    (clone): Likewise,
    * source/org/jfree/data/xy/DefaultXYDataset.java
    (hashCode): Likewise,
    * source/org/jfree/data/xy/DefaultXYZDataset.java
    (hashCode): Likewise,
    * tests/org/jfree/data/xy/junit/DefaultIntervalXYDatasetTests.java
    (testCloning2): New method,
    * tests/org/jfree/data/xy/junit/DefaultOHLCDatasetTests.java
    (testEquals): Added more checks.

2006-11-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultHighLowDataset.java
    (DefaultHighLowDataset): Added argument checks,
    (equals): New method override,
    * tests/org/jfree/data/xy/junit/DefaultHighLowDatasetTests.java: New
    file,
    * tests/org/jfree/data/xy/junit/DataXYPackageTests.java
    (suite): Added DefaultHighLowDatasetTests.

2006-11-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/MatrixSeriesCollection.java
    (clone): New method override,
    * source/org/jfree/data/xy/XIntervalSeriesCollection.java
    (clone): New method override,
    * source/org/jfree/data/xy/XYSeriesCollection.java
    (clone): New method override,
    * source/org/jfree/data/xy/YIntervalSeriesCollection.java
    (clone): New method override,
    * tests/org/jfree/data/xy/junit/DataXYPackageTests.java
    (suite): Added new MatrixSeriesCollectionTests,
    * tests/org/jfree/data/xy/junit/MatrixSeriesCollectionTests.java: New
    file,
    * tests/org/jfree/data/xy/junit/XIntervalSeriesCollectionTests.java
    (testCloning): Check independence,
    * tests/org/jfree/data/xy/junit/XYSeriesCollectionTests.java
    (testCloning): Check independence,
    * tests/org/jfree/data/xy/junit/YIntervalSeriesCollectionTests.java
    (testCloning): Check independence.

2006-11-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/MatrixSeries.java
    (equals): Test values,
    * tests/org/jfree/data/xy/junit/MatrixSeriesTests.java:
    (testEquals): Added more checks.

2006-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/StandardXYSeriesLabelGenerator.java
    (equals): Fixed,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (setLegendItemLabelGenerator): Notify listeners,
    (setLegendItemToolTipGenerator): Likewise,
    (setLegendITemURLGenerator): Likewise,
    (clone): Clone generators,
    * tests/org/jfree/chart/labels/junit/LabelsPackageTests.java
    (suite): Added new test,
    * tests/org/jfree/chart/labels/junit
    /StandardXYSeriesLabelGeneratorTests.java: New file,
    * tests/org/jfree/chart/renderer/xy/junit
    /AbstractXYItemRendererTests.java
    (testCloning_LegendItemLabelGenerator): New test method,
    (testCloning_LegendItemToolTipGenerator): New test method,
    (testCloning_LegendItemURLGenerator): New test method.

2006-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (clone): Clone the legend label generators,
    (setLegendItemLabelGenerator): Notify listeners,
    (setLegendItemToolTipGenerator): Notify listeners,
    (setLegendItemURLGenerator): Notify listeners,
    * tests/org/jfree/chart/renderer/category/junit/AbstractCategoryITemRendererTests.java
    (testCloning_LegendItemLabelGenerator): New test method,
    (testCloning_LegendItemToolTipGenerator): New test method,
    (testCloning_LegendItemURLGenerator): New test method.

2006-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (clone): Fix URL generator cloning,
    * source/org/jfree/chart/urls/PieURLGenerator.java: Updated API docs,
    * source/org/jfree/chart/urls/StandardPieURLGenerator.java
    (StandardPieURLGenerator()): Delegated,
    (StandardPieURLGenerator(String)): Likewise,
    (StandardPieURLGenerator(String, String)): Likewise,
    (StandardPieURLGenerator(String, String, String)): Added argument
    checks,
    (equals): Reimplemented,
    * tests/org/jfree/chart/plot/junit/PiePlotTests.java
    (testCloning_URLGenerator): New test method,
    (testCloning_LegendLabelURLGenerator): Fixed test,
    * tests/org/jfree/chart/urls/junit/StandardPieURLGeneratorTests.java
    (testEquals): New test method.

2006-11-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (legendLabelURLGenerator): New field,
    (PiePlot(PieDataset)): Initialise new field,
    (getLegendLabelURLGenerator): New method,
    (setLegendLabelURLGenerator): New method,
    (getLegendItems): Populate URL if generator is available,
    (equals): Added tests for new/missing fields,
    (clone): Added cloning for new/missing fields,
    * tests/org/jfree/chart/plot/junit/PiePlotTests.java
    (testEquals): Extended for additional fields,
    (testCloning_LegendItemShape): New test method,
    (testCloning_LegendLabelGenerator): New test method,
    (testCloning_LegendLabelToolTipGenerator): New test method,
    (testCloning_LegendLabelURLGenerator): New test method.

2006-11-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (setDomainGridlineStroke): Check for null argument,
    (setDomainGridlinePaint): Likewise,
    (setRangeGridlinePaint): Likewise.

2006-11-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/util/RelativeDateFormat.java
    (RelativeDateFormat(long)): Initialise fields needed by equals(),
    (setDaySuffix): Check for null argument,
    (setHourSuffix): Likewise,
    (setMinuteSuffix): Likewise,
    (setSecondSuffix): Likewise,
    (equals): Check additional fields,
    (hashCode): Overridden,
    * tests/org/jfree/chart/util/junit/RelativeDateFormatTests.java:
    New file,
    * tests/org/jfree/chart/util/junit/UtilPackageTests.java: New file.

2006-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (equals): Check quadrant fields,
    (clone): Clone quadrant field,
    * tests/org/jfree/chart/plot/junit/XYPlotTests.java
    (testEquals): Added checks for quadrant fields,
    (testCloning_QuadrantOrigin): New test method,
    (testCloning_QuadrantPaint): New test method.

2006-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java: Added API doc cross
    references.

2006-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (setColumnRenderingOrder): Added argument check, event notification,
    and updated API docs,
    (setRowRenderingOrder): Likewise.

2006-11-20  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml
    (initialise): Updated JFreeChart version, restructured iText
    definitions,
    (fill-distribution): Updated iText reference, simplified copy for
    build.xml and added copy for build-swt.xml file.

----------  JFREECHART 1.0.3 RELEASED ------------------------

2006-11-17  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/plot/dial/AbstractDialLayer.java
    (visible): New field,
    (AbstractDialLayer): Initialise new field,
    (isVisible): New method,
    (setVisible): New method,
    * experimental/org/jfree/experimental/chart/plot/dial/DialLayer.java
    (isVisible): New method,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPlot.java
    (draw): Check layer visibility before drawing,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialFrame.java
    (getOuterWindow): Adjust margins,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialScale.java
    (tickLabelsVisible): New field,
    (firstTickLabelVisible): New field,
    (StandardDialScale): Initialise new fields,
    (getTickLabelsVisible): New method,
    (setTickLabelsVisible): New method,
    (getFirstTickLabelVisible): New method,
    (setFirstTickLabelVisible): New method,
    (draw): Check tick label visibility,
    * experimental/org/jfree/experimental/chart/demo/DialDemo1.java
    (DialDemo1): Updated JSlider,
    * experimental/org/jfree/experimental/chart/demo/DialDemo2.java
    (DialDemo2): Updated chart title,
    * experimental/org/jfree/experimental/chart/demo/DialDemo3.java:
    Reimplemented,
    * experimental/org/jfree/experimental/chart/demo/DialDemo4.java:
    Reimplemented,
    * experimental/org/jfree/experimental/chart/demo/DialDemo5.java:
    New file.

2006-11-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/util/RelativeDateFormat.java: New file,
    * source/org/jfree/chart/util/package.html: New file.

2006-11-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2.java
    (roundXCoordinates): New field,
    (drawItem): Add optional rounding of x-coordinates.

2006-11-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/BoxAndWhiskerCalculator.java
    (calculateBoxAndWhiskerStatistics(List)): Delegate to new method,
    (calculateBoxAndWhiskerStatistics(List, boolean)): New method,
    (calculateQ1): Check null argument,
    (calculateQ3): Likewise,
    * source/org/jfree/data/statistics/BoxAndWhiskerItem.java
    (toString): New method override,
    * source/org/jfree/data/statistics/Statistics.java
    (calculateMean(Number[])): Delegate to new method,
    (calculateMean(Number[], boolean)): New method,
    (calculateMean(Collection): Delegate to new method,
    (calculateMean(Collection, boolean): New method,
    (getStdDev): Added null argument checks,
    (getLinearFit): Likewise,
    (getSlope): Likewise,
    * tests/org/jfree/data/statistics/junit/BoxAndWhiskerCalculatorTests.java
    (testCalculateBoxAndWhiskerStatistics): New test method,
    (testCalculateQ1): Add check for null argument,
    (testCalculateQ3): Likewise,
    (test1593149): New test method,
    * tests/org/jfree/data/statistics/junit/StatisticsTests.java
    (testCalculateMean_Array): New test method,
    (testCalculateMean_Collection): New test method,
    (EPSILON): New constant,
    (testCalculateMedian): New test method,
    (testGetStdDev): New test method.

2006-11-14  Henry Proudhon  <henry.proudhon@insa-lyon.fr>

    * swt/README: New file,
    * ant/build-swt.xml: New file.

2006-11-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/ThermometerPlot.java
    (draw): Use margin.

2006-11-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/SegmentedTimeline.java
    (toTimelineValue): Iterate through exception segments to avoid
    potential stack overflow.

2006-11-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/FastScatterPlot.java
    (FastScatterPlot()): Use default axes,
    (FastScatterPlot(double[][], ValueAxis, ValueAxis)): Throw
    IllegalArgumentException if domainAxis or rangeAxis is null,
    (setDomainAxis): New method,
    (setRangeAxis): New method,
    (setDomainGridlineStroke): Don't allow null argument,
    (setDomainGridlinePaint): Likewise,
    (setRangeGridlineStroke): Likewise,
    (setRangeGridlinePaint): Likewise,
    (draw): Removed unnecessary null checks,
    (drawDomainGridlines): Likewise,
    (drawRangeGridlines): Likewise,
    * source/org/jfree/chart/plot/FastScatterPlot.java
    (testDrawWithNullInfo): New test method.

2006-11-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java
    (StackedXYAreaRendererState): Initialise line attribute,
    * tests/org/jfree/chart/renderer/xy/junit/StackedXYAreaRendererTests.java
    (testBug1593156): New test method.

2006-11-07  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/demo/DialDemo1.java
    (DialDemo1): Updated for API change,
    * experimental/org/jfree/experimental/chart/demo/DialDemo2.java:
    New file replaces old one (which is renamed DialDemo3.java),
    * experimental/org/jfree/experimental/chart/demo/DialDemo3.java:
    Replaced with former DialDemo2.java,
    * experimental/org/jfree/experimental/chart/demo/DialDemo4.java:
    Renamed DialDemo3 --> DialDemo4,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPlot.java
    (datasetToScaleMap): New field,
    (DialPlot): Initialise new field,
    (addScale): Added index parameter,
    (getScale): New method,
    (mapDatasetToScale): New method,
    (getScaleForDataset): Reimplemented,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPointer.java
    (DialPointer(int)): New constructor,
    (getDatasetIndex): New method,
    (setDatasetIndex): New method,
    (Pin(int)): New constructor,
    (Pointer(int)): New constructor,
    * experimental/org/jfree/experimental/chart/plot/dial/DialValueIndicator.java
    (datasetIndex): New field,
    (paint): Made transient to fix serialization,
    (backgroundPaint): Likewise,
    (outlineStroke): Likewise,
    (outlinePaint): Likewise,
    (DialValueIndicator): Modified constructor arguments,
    (getDatasetIndex): New method,
    (setDatasetIndex): Likewise,
    (getAngle): Likewise,
    (setAngle): Likewise,
    (getFrameAnchor): Likewise,
    (setFrameAnchor): Likewise,
    (getTemplateValue): Likewise,
    (setTemplateValue): Likewise,
    (getNumberFormat): Likewise,
    (setNumberFormat): Likewise,
    (getFont): Likewise,
    (setFont): Likewise,
    (getPaint): Likewise,
    (setPaint): Likewise,
    (getBackgroundPaint): Likewise,
    (setBackgroundPaint): Likewise,
    (getOutlineStroke): Likewise,
    (setOutlineStroke): Likewise,
    (getOutlinePaint): Likewise,
    (setOutlinePaint): Likewise,
    (getInsets): Likewise,
    (setInsets): Likewise,
    (getValueAnchor): Likewise,
    (setValueAnchor): Likewise,
    (getTextAnchor): Likewise,
    (setTextAnchor): Likewise,
    (draw): Fetch value from the appropriate dataset,
    (equals): Implemented properly,
    (hashCode): New method,
    (writeObject): New method,
    (readObject): New method,
    * experimental/org/jfree/experimental/chart/plot/dial/junit/DialValueIndicatorTests.java
    (testEquals): Check all fields,
    (testHashcode): Updated for new constructor API,
    (testCloning): Likewise,
    (testSerialization): Likewise.

2006-11-06  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/plot/dial/AbstractDialLayer.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialBackground.java:
    Now extends AbstractDialLayer,
    (setPaint): Notify listeners,
    (setGradientPaintTransformer): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/DialCap.java:
    Now extends AbstractDialLayer,
    (setRadius): Notify listeners,
    (setFillPaint): Likewise,
    (setOutlinePaint): Likewise,
    (setOutlineStroke): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/DialLayer.java:
    (addChangeListener): New method,
    (removeChangeListener): New method,
    (hasListener): New method,
    * experimental/org/jfree/experimental/chart/plot/dial/DialLayerChangeEvent.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialLayerChangeListener.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPlot.java:
    Implemented DialLayerChangeListener,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPointer.java:
    Now extends AbstractDialLayer,
    (setRadius): Notify listeners,
    (setPaint): Likewise,
    (setStroke): Likewise,
    (setWidthRadius): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/DialTextAnnotation.java:
    Now extends AbstractDialLayer,
    (setAngle): Notify listeners,
    (setRadius): Likewise,
    (setFont): Likewise,
    (setPaint): Likewise,
    (setLabel): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/DialValueIndicator.java:
    Now extends AbstractDialLayer,
    (setRadius): Notify listeners,
    * experimental/org/jfree/experimental/chart/plot/dial/SimpleDialFrame.java:
    (setRadius): Notify listeners,
    (setBackgroundPaint): Likewise,
    (setForegroundPaint): Likewise,
    (setStroke): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialFrame.java:
    (setBackgroundPaint): Notify listeners,
    (setForegroundPaint): Likewise,
    (setStroke): Likewise,
    (setInnerRadius): Likewise,
    (setOuterRadius): Likewise,
    (setStartAngle): Likewise,
    (setExtent): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialRange.java:
    (setLowerBound): Notify listeners,
    (setUpperBound): Likewise,
    (setIncrement): Likewise,
    (setPaint): Likewise,
    (setInnerRadius): Likewise,
    (setOuterRadius): Likewise,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialScale.java:
    (setStartAngle): Notify listeners,
    (setExtent): Likewise,
    (setTickRadius): Likewise,
    (setMajorTickIncrement): Likewise,
    (setMajorTickLength): Likewise,
    (setMajorTickPaint): Likewise,
    (setMajorTickStroke): Likewise,
    (setMinorTickCount): Likewise,
    (setMinorTickLength): Likewise,
    (setTickLabelOffset): Likewise,
    (setTickLabelFont): Likewise,
    (setTickLabelPaint): Likewise.

2006-11-06  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Updated for reorganised source directories.

2006-11-03  David Gilbert  <david.gilbert@object-refinery.com>

    * experimental/org/jfree/experimental/chart/plot/dial/DialBackground.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialCap.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialFrame.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialLayer.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPlot.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialPointer.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialScale.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialTextAnnotation.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/DialValueIndicator.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/SimpleDialFrame.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialFrame.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialRange.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialScale.java: New file,
    * experimental/org/jfree/experimental/chart/plot/dial/StandardDialScale.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/DialBackgroundTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/DialCapTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/DialPackageTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/DialPlotTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/DialTextAnnotationTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/DialValueIndicatorTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/SimpleDialFrameTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/StandardDialFrameTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/StandardDialRangeTests.java: New file,
    * tests/org/jfree/experimental/chart/plot/dial/junit/StandardDialScaleTests.java: New file.

2006-11-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/HashcodeUtilities.java: New file,
    * source/org/jfree/chart/annotation/XYPolygonAnnotation.java
    (hashCode): Use new utility class,
    (hashCodeForPaint): Removed,
    (hashCodeForDoubleArray): Likewise.

2006-11-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultIntervalXYDataset.java
    (addSeries): Remove old series if there is one with the same key as
    the new series,
    * source/org/jfree/data/xy/DefaultXYDataset.java
    (addSeries): Likewise,
    * source/org/jfree/data/xy/DefaultXYZDataset.java
    (addSeries): Likewise,
    * tests/org/jfree/data/xy/junit/DataXYPackageTests.java
    (suite): Added DefaultIntervalXYDatasetTests,
    * tests/org/jfree/data/xy/junit/DefaultIntervalXYDatasetTests.java
    (testAddSeries): New test,
    * tests/org/jfree/data/xy/junit/DefaultXYDatasetTests.java
    (testAddSeries): Likewise,
    * tests/org/jfree/data/xy/junit/DefaultXYZDatasetTests.java
    (testAddSeries): Likewise.

2006-10-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (refreshTicks): Fetch categories for all datasets that map to this
    axis;
    * source/org/jfree/chart/plot/CategoryPlot.java
    (getDomainAxisIndex): New method,
    (datasetsMappedToDomainIndex): New method,
    (getCategoriesForAxis): New method,
    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java
    (getCategoriesForAxis): New method.

2006-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYErrorRenderer.java: New file,
    * tests/org/jfree/chart/renderer/xy/junit/XYErrorRendererTests.java:
    New file,
    * tests/org/jfree/chart/renderer/xy/junit/RendererXYPackageTests.java
    (suite): Added XYErrorRendererTests.

2006-10-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryMarker.java
    (CategoryMarker(Comparable, Paint, Stroke)): Set default alpha to 1.0f,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (drawDomainMarker): Draw marker outlines,
    (drawRangeMarker): Likewise.

2006-10-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java:
    (drawDomainMarker): Use marker alpha setting,
    (drawRangeMarker): Likewise,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java:
    (drawDomainMarker): Use marker alpha setting,
    (drawRangeMarker): Likewise.

2006-10-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYShapeAnnotation.java
    (draw): Calculate transform on shape bounds.

2006-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java:
    (setDomainCrosshairStroke): Check null argument,
    (setDomainCrosshairPaint): Likewise,
    plus various API doc updates.

2006-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java:
    (drawRangeMarker): Added code to draw outlines.

2006-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/resources/JFreeChartResources.java
    (CONTENTS): Updated version number to 1.0.3.

2006-10-23  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Updated version number to 1.0.3,
    * source/org/jfree/data/xy/DefaultIntervalXYDataset.java: New file,
    * tests/org/jfree/data/xy/junit/DefaultIntervalXYDatasetTests.java:
    New file.

2006-10-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XIntervalSeries.java
    (getX): Added cast;
    (getYValue): Likewise,
    (getDataItem): Changed return value,
    * source/org/jfree/data/xy/XIntervalSeriesCollection.java
    (getX): Added cast,
    (getY): Likewise,
    (getStartX): Likewise,
    (getEndX): Likewise,
    * source/org/jfree/data/xy/XYIntervalSeries.java
    (getX): Added cast;
    (getYValue): Likewise,
    (getDataItem): Changed return value,
    * source/org/jfree/data/xy/XYIntervalSeriesCollection.java
    (getX): Added cast,
    (getY): Likewise,
    (getStartX): Likewise,
    (getEndX): Likewise,
    * source/org/jfree/data/xy/YIntervalSeries.java
    (getX): Added cast;
    (getYValue): Likewise,
    (getDataItem): Changed return value,
    * source/org/jfree/data/xy/YIntervalSeriesCollection.java
    (getX): Added cast,
    (getY): Likewise,
    (getStartX): Likewise,
    (getEndX): Likewise,
    * tests/org/jfree/data/DataPackageTests.java
    (suite): Added new tests,
    * tests/org/jfree/data/xy/DataXYPackageTests.java
    (suite): Added new tests.

2006-10-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/ComparableObjectItem.java: New file,
    * source/org/jfree/data/ComparableObjectSeries.java: Likewise,
    * source/org/jfree/data/xy/XIntervalDataItem.java: Likewise,
    * source/org/jfree/data/xy/XIntervalSeries.java: Likewise,
    * source/org/jfree/data/xy/XIntervalSeriesCollection.java: Likewise,
    * source/org/jfree/data/xy/XYInterval.java: Likewise,
    * source/org/jfree/data/xy/XYIntervalDataItem.java: Likewise,
    * source/org/jfree/data/xy/XYIntervalSeries.java: Likewise,
    * source/org/jfree/data/xy/XYIntervalSeriesCollection.java: Likewise,
    * source/org/jfree/data/xy/YInterval.java: Likewise,
    * source/org/jfree/data/xy/YIntervalDataItem.java: Likewise,
    * source/org/jfree/data/xy/YIntervalSeries.java: Likewise,
    * source/org/jfree/data/xy/YIntervalSeriesCollection.java: Likewise,
    * source/org/jfree/data/xy/YWithXInterval: Likewise,
    * tests/org/jfree/data/junit/ComparableObjectItemTests.java: New file,
    * tests/org/jfree/data/junit/ComparableObjectSeriesTests.java: New file,
    * tests/org/jfree/data/xy/junit/XIntervalDataItemTests.java: New file,
    * tests/org/jfree/data/xy/junit/XIntervalSeriesCollectionTests.java: New file,
    * tests/org/jfree/data/xy/junit/XIntervalSeriesTests.java: New file,
    * tests/org/jfree/data/xy/junit/XYIntervalDataItemTests.java: New file,
    * tests/org/jfree/data/xy/junit/XYIntervalSeriesCollectionTests.java: New file,
    * tests/org/jfree/data/xy/junit/XYIntervalSeriesTests.java: New file,
    * tests/org/jfree/data/xy/junit/XYIntervalTests.java: New file,
    * tests/org/jfree/data/xy/junit/YIntervalDataItemTests.java: New file,
    * tests/org/jfree/data/xy/junit/YIntervalSeriesCollectionTests.java: New file,
    * tests/org/jfree/data/xy/junit/YIntervalSeriesTests.java: New file,
    * tests/org/jfree/data/xy/junit/YIntervalTests.java: New file,
    * tests/org/jfree/data/xy/junit/YWithXIntervalTests.java: New file.

2006-10-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/jdbc/JDBCXYDataset.java:
    (getLegendItemCount): Deprecated,
    (getLegendItemLabels): Deprecated.

2006-10-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CrosshairState.java
    (getCrosshairDistance): New method,
    (getAnchor): New method,
    (getAnchorX): New method,
    (setAnchorX): New method,
    (getAnchorY): New method,
    (setAnchorY): New method,
    * source/org/jfree/chart/plot/XYPlot.java
    (draw): Initialise the anchor coordinates.

2006-10-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java:
    (drawHorizontalItem): Check for null box,
    (drawVerticalItem): Likewise,
    * tests/org/jfree/chart/renderer/category/junit/BoxAndWhiskerRendererTests.java
    (testBug1572478Vertical): New method,
    (testBug1572478Horizontal): Likewise.

2006-10-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java:
    Source reformatting and API doc updates.

2006-10-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/RingPlot.java
    (sectionDepth): New field,
    (RingPlot(PieDataset)): Initialise sectionDepth field,
    (getSectionDepth): New method,
    (setSectionDepth): Likewise,
    (initialise): New method override to specify three passes,
    (drawItem): Use sectionDepth, draw separators in pass 3,
    (equals): Include sectionDepth in test,
    * tests/org/jfree/chart/plot/junit/RingPlotTests.java
    (testEquals): Updated,
    (testCloning): Likewise,
    (testSerialization): Likewise.

2006-10-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/experimental/**:
    Removed, files transferred to a new source directory,
    * experimental/org/jfree/experimental/**:
    Added, see previous item.

2006-10-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedAreaRenderer.java
    (renderAsPercentages): New field,
    (StackedAreaRenderer(boolean)): New constructor,
    (getRenderAsPercentages): New method,
    (setRenderAsPercentages): Likewise,
    (getPassCount): New method override,
    (findRangeBounds): Handle renderAsPercentages,
    (drawItem): Add support for renderAsPercentages and item labels,
    (getPreviousHeight): Handle renderAsPercentages,
    (equals): New method override,
    * tests/org/jfree/chart/renderer/category/junit/StackedAreaRendererTests.java
    (testEquals): Updated for renderAsPercentages flag.

2006-10-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (equals): New method override,
    * tests/org/jfree/chart/renderer/category/junit/AreaRendererTests.java
    (testEquals): Added new checks.

2006-10-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYStepRenderer.java
    (drawItem): Fixed step for horizontal orientation.

2006-10-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/LegendItemBlockContainer.java
    (toolTipText): New field,
    (urlText): Likewise,
    (getToolTipText): New method,
    (setToolTipText): Likewise,
    (getURLText): Likewise,
    (setURLText): Likewise,
    (draw): Add tool tip text and URL text to the legend item entity,
    * source/org/jfree/chart/title/LegendTitle.java
    (createLegendItemBlock): Set the tool tip and URL text in the block.

2006-10-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/PeriodAxis.java
    (calendar): New field,
    (PeriodAxis(String, RegularTimePeriod, RegularTimePeriod, TimeZone)):
    Initialize calendar,
    (setTimeZone) Reset calendar,
    (getRange): Replaced deprecated method calls,
    (drawTickMarksHorizontal): Likewise,
    (drawTickLabels): Likewise,
    (valueToJava2D): Likewise,
    (java2DToValue): Likewise,
    * source/org/jfree/data/time/Day.java
    (firstMillisecond): New field,
    (lastMillisecond): New field,
    (Day(int, int, int)): Peg milliseconds to default time zone,
    (Day(SerialDate)): Likewise,
    (Day(Date, TimeZone)): Peg milliseconds to specified milliseconds,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    * source/org/jfree/data/time/FixedMillisecond.java
    (peg): New method,
    * source/org/jfree/data/time/Hour.java
    (hour): Changed type,
    (firstMillisecond): New field,
    (lastMillisecond): New field,
    (Hour(int, Day)): Peg milliseconds to default time zone,
    (Hour(Date, TimeZone)): Peg milliseconds to specified time zone,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    * source/org/jfree/data/time/Millisecond.java
    (day): New field,
    (hour): New field,
    (minute): New field,
    (second): Changed type,
    (firstMillisecond): New field,
    (Millisecond(int, Second)): Reimplemented,
    (Millisecond(Date, TimeZone)): Likewise,
    (getSecond): Likewise,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    (next): Updated for modified fields,
    (getSerialIndex): Reimplemented,
    (equals): Likewise,
    (hashCode): Updated for new fields,
    (getFirstMillisecond(Calendar)): Reimplemented,
    (getLastMillisecond(Calendar)): Likewise,
    * source/org/jfree/data/time/Minute.java
    (day): New field,
    (hour): Changed type,
    (minute): Likewise,
    (firstMillisecond): New field,
    (lastMillisecond): New field,
    (Minute(int, Hour)): Reimplemented,
    (Minute(Date, TimeZone)): Likewise,
    (getDay): New method,
    (getHour): Reimplemented,
    (getHourValue): New method,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    (previous): Updated for changed field types,
    (next): Likewise,
    (getSerialIndex): Reimplemented,
    (getFirstMillisecond(Calendar)): Updated for changed field types,
    (getLastMillisecond(Calendar)): Likewise,
    (equals): Likewise,
    (hashCode): Likewise,
    * source/org/jfree/data/time/Month.java
    (year): Changed type,
    (firstMillisecond): New field,
    (lastMillisecond): New field,
    (Month(int, int)): Reimplemented,
    (Month(int, Year)): Likewise,
    (Month(Date, TimeZone)): Likewise,
    (getYear): Updated for changed field type,
    (getYearValue): Likewise,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    (previous): Updated for changed field types,
    (next): Likewise,
    (getSerialIndex): Likewise,
    (equals): Likewise,
    (hashCode): Likewise,
    (compareTo): Likewise,
    (getFirstMillisecond(Calendar)): Reimplemented,
    (getLastMillisecond(Calendar)): Likewise,
    * source/org/jfree/data/time/Quarter.java
    (year): Changed type,
    (quarter): Likewise,
    (firstMillisecond): New field,
    (lastMillisecond): New field,
    (Quarter(int, int)): Reimplemented,
    (Quarter(int, Year)): Likewise,
    (Quarter(Date, TimeZone)): Likewise,
    (getYear): Reimplemented,
    (getYearValue): New method,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    (previous): Updated for changed field types,
    (next): Likewise,
    (getSerialIndex): Likewise,
    (equals): Likewise,
    (hashCode): Likewise,
    (compareTo): Likewise,
    (getFirstMillisecond(Calendar)): Reimplemented,
    (getLastMillisecond(Calendar)): Likewise,
    * source/org/jfree/data/time/RegularTimePeriod.java
    (WORKING_CALENDAR): Deprecated,
    (peg): New method,
    (getFirstMillisecond()): Made abstract,
    (getFirstMillisecond(TimeZone)): Deprecated,
    (getLastMillisecond()): Made abstract,
    (getLastMillisecond(TimeZone)): Deprecated,
    (getMiddleMillisecond(TimeZone)): Likewise,
    * source/org/jfree/data/time/Second.java
    (day): New field,
    (hour): New field,
    (minute): Changed type,
    (second): Changed type,
    (firstMillisecond): New field,
    (Second(int, Minute)): Reimplemented,
    (Second(Date, TimeZone)): Reimplemented,
    (getMinute): Updated for field type changes,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    (previous): Updated for changed field types,
    (next): Likewise,
    (getSerialIndex): Likewise,
    (getFirstMillisecond(Calendar)): Reimplemented,
    (getLastMillisecond(Calendar)): Likewise,
    (equals): Likewise,
    (hashCode): Likewise,
    (compareTo): Updated for field type changes,
    * source/org/jfree/data/time/Week.java
    (year): Changed type,
    (week): Likewise,
    (firstMillisecond): New field,
    (lastMillisecond): New field,
    (Week(int, int)): Reimplemented,
    (Week(int, Year)): Likewise,
    (Week(Date, TimeZone)): Likewise,
    (getYear): Updated for field type changes,
    (getYearValue): Likewise,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    (previous): Updated for changed field types,
    (next): Likewise,
    (getSerialIndex): Likewise,
    (getFirstMillisecond(Calendar)): Reimplemented,
    (getLastMillisecond(Calendar)): Likewise,
    (equals): Likewise,
    (hashCode): Likewise,
    (compareTo): Updated for field type changes,
    * source/org/jfree/data/time/Year.java
    (year): Changed field type,
    (firstMillisecond): New field,
    (lastMillisecond): New field,
    (Year(int)): Peg to default time zone,
    (Year(Date, TimeZone)): Peg to specified time zone,
    (getFirstMillisecond): New method override,
    (getLastMillisecond): Likewise,
    (peg): New method,
    (getFirstMillisecond(Calendar)): Reimplemented,
    (getLastMillisecond(Calendar)): Likewise.

2006-10-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultXYZDataset.java: Fixed API doc
    warnings.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Day.java: API doc updates,
    * source/org/jfree/data/time/Hour.java: Likewise,
    * source/org/jfree/data/time/Millisecond.java: Likewise,
    * source/org/jfree/data/time/Minute.java: Likewise,
    * source/org/jfree/data/time/Month.java: Likewise,
    * source/org/jfree/data/time/Quarter.java: Likewise,
    * source/org/jfree/data/time/Second.java: Likewise,
    * source/org/jfree/data/time/Week.java: Likewise,
    * source/org/jfree/data/time/Year.java: Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/MillisecondTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testGetSerialIndex): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/SecondTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testGetSerialIndex): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/MinuteTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testGetSerialIndex): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/HourTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testGetSerialIndex): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/DayTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/WeekTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testGetSerialIndex): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/MonthTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testGetSerialIndex): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/QuarterTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testGetSerialIndex): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * tests/org/jfree/data/time/junit/YearTests.java
    (testGetFirstMillisecond): New test,
    (testGetFirstMillisecondWithTimeZone): Likewise,
    (testGetFirstMillisecondWithCalendar): Likewise,
    (testGetLastMillisecond): Likewise,
    (testGetLastMillisecondWithTimeZone): Likewise,
    (testGetLastMillisecondWithCalendar): Likewise,
    (testGetSerialIndex): Likewise,
    (testNext): Likewise,
    (testGetStart): Likewise,
    (testGetEnd): Likewise.

2006-10-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultXYDataset.java: Fixed API doc
    warnings.

2006-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/CategoryPointerAnnotation.java:
    Fixed Javadoc warnings,
    * source/org/jfree/chart/entity/CategoryLabelEntity.java: Likewise,
    * source/org/jfree/chart/event/MarkerChangeListener.java: Likewise,
    * source/org/jfree/chart/plot/PiePlot.java: Likewise.

2006-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (getSectionKey): Replace call to JRE 1.5 method.

2006-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/DayTests.java
    (testGetSerialIndex): New method.

2006-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimePeriodValue.java
    (TimePeriodValue(TimePeriod, Number)): Added null argument check,
    (clone): Print stack trace in event of exception,
    * source/org/jfree/data/time/TimePeriodValues.java
    (add(TimePeriodValue)): Fire series change event,
    (equals): Guard against null pointer exceptions,
    * source/org/jfree/data/time/TimePeriodValuesCollection.java
    (getDomainIsPointsInTime): Deprecated,
    (setDomainIsPointsInTime): Likewise,
    * source/org/jfree/data/time/junit/TimePeriodValuesCollectionTests.java:
    (testEquals): Check for domain and range description fields,
    (testAdd): New method,
    (MySeriesChangeListener): New test support class.

2006-10-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/CategoryPointerAnnotation.java:
    New file,
    * source/org/jfree/chart/annotations/XYPointerAnnotation.java
    (setArrowPaint): Check for null argument,
    * source/org/jfree/chart/annotations/junit/AnnotationsPackageTests.java
    (suite): Added CategoryPointerAnnotationTests,
    * source/org/jfree/chart/annotations/junit/CategoryPointerAnnotationTests.java:
    New file.

2006-10-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (drawCategoryLabels): Updated label entity generation,
    * source/org/jfree/chart/entity/CategoryLabelEntity.java: New class.

2006-09-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (draw): Replaced call to deprecated method.

2006-09-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/DefaultPieDataset.java
    (sortByKeys): New method,
    (sortByValues): New method.

2006-09-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createPieChart): Updated for deprecated code,
    * source/org/jfree/chart/PaintMap.java: New class,
    * source/org/jfree/chart/StrokeMap.java: Likewise,
    * source/org/jfree/chart/junit/PaintMapTests.java: Likewise,
    * source/org/jfree/chart/junit/StrokeMapTests.java: Likewise,
    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (draw): Updated for deprecated code,
    * source/org/jfree/chart/plot/PiePlot.java
    (sectionPaintMap): Changed name and type from PaintList to PaintMap,
    (sectionOutlinePaintMap): Likewise,
    (sectionOutlineStrokeMap): Likewise,
    (explodePercentages): Changed type from ObjectList to Map,
    (PiePlot(PieDataset)): Update initialisation for field name changes,
    (lookupSectionPaint): Changed argument type,
    (getSectionKey): New method,
    (getSectionPaint(Comparable)): Likewise,
    (setSectionPaint(Comparable, Paint)): Likewise,
    (getSectionPaint(int)): Deprecated,
    (setSectionPaint(int, Paint)): Likewise,
    (lookupSectionOutlinePaint): Changed argument type,
    (getSectionOutlinePaint(Comparable)): Likewise,
    (setSectionOutlinePaint(Comparable, Paint)): Likewise,
    (getSectionOutlinePaint(int)): Deprecated,
    (setSectionOutlinePaint(int, Paint)): Likewise,
    (lookupSectionOutlineStroke): Changed argument type,
    (getSectionOutlineStroke(Comparable)): Likewise,
    (setSectionOutlineStroke(Comparable, Stroke)): Likewise,
    (getSectionOutlineStroke(int)): Deprecated,
    (setSectionOutlineStroke(int, Stroke)): Likewise,
    (getExplodePercent(Comparable)): New method,
    (setExplodePercent(Comparable, double)): Likewise,
    (getExplodePercent(int)): Deprecated,
    (setExplodePercent(int, double)): Deprecated,
    (getMaximumExplodePercent): Modified to only check visible sections,
    (drawItem): Updated for deprecated code,
    (getLegendItems): Likewise,
    (equals): Updated for renamed fields,
    * source/org/jfree/chart/plot/PiePlot3D.java
    (draw): Updated for deprecated code,
    * source/org/jfree/chart/plot/RingPlot.java
    (drawItem): Likewise.

2006-09-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (PiePlot(PieDataset)): Initialise baseSectionPaint to a non-null value,
    (lookupSectionPaint(int)): New method,
    (lookupSectionPaint(int, boolean)): Likewise,
    (getSectionPaint(int)): Reimplemented without lookup,
    (lookupSectionOutlinePaint(int)): New method,
    (lookupSectionOutlinePaint(int, boolean)): Likewise,
    (getSectionOutlinePaint(int)): Reimplemented without lookup,
    (lookupSectionOutlineStroke(int)): New method,
    (lookupSectionOutlineStroke(int, boolean)): Likewise,
    (getSectionOutlineStroke(int)): Reimplemented without lookup,
    (drawItem): Use new lookup methods,
    (getLegendItems): Likewise,
    * source/org/jfree/chart/plot/PiePlot3D.java
    (draw): Use new lookup methods,
    * source/org/jfree/chart/plot/RingPlot.java
    (drawItem): Use new lookup methods,
    * source/org/jfree/chart/plot/junit/PiePlotTests.java
    (testGetBaseSectionPaint): New method.

2006-09-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (previousStandardDate): Handle tick mark position properly,
    * source/org/jfree/chart/axis/junit/DateAxisTests.java
    (MyDateAxis): New class,
    (testPreviousStandardDateYear): New method,
    (testPreviousStandardDateMonth): New method,
    (testPreviousStandardDateDay): New method,
    (testPreviousStandardDateHour): New method,
    (testPreviousStandardDateMinute): New method.

2006-09-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java:
    (StatisticalLineAndShapeRenderer(boolean, boolean)): Use arguments,
    * source/org/jfree/chart/renderer/category/junit/StatisticalLineAndShapeRendererTests.java:
    (test1562759): New method.

2006-09-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (drawItem): Don't use hard-coded outline paint and stroke.

2006-09-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/servlet/ServletUtilities.java
    (sendTempFile(File, HttpServletResponse, String)): Specify English
    locale for response header date format.

2006-09-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (mouseClicked): Return early if chart is null,
    (mouseMoved): Check for null chart.

2006-09-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainCategoryPlot.java:
    Updated API docs and reformatted some source code,
    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java: Likewise,
    * source/org/jfree/chart/plot/CombinedRangeCategoryPlot.java: Likewise,
    * source/org/jfree/chart/plot/CombinedRangeXYPlot.java: Likewise,
    * source/org/jfree/chart/plot/XYPlot.java: Likewise.

2006-09-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/HistogramDataset.java
    (addSeries): Check for binIndex that is too large,
    * source/org/jfree/data/statistics/junit/HistogramDatasetTests.java
    (test1553088): New method.

2006-09-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/event/MarkerChangeEvent.java: New file,
    * source/org/jfree/chart/event/MarkerChangeListener.java: New file,
    * source/org/jfree/chart/plot/CategoryMarker.java
    (setKey): New method,
    (setDrawAsLine): Notify listeners,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (addDomainMarker): Register plot as a listener with the new marker,
    (clearDomainMarkers()): Deregister plot as a listener with each marker,
    (clearDomainMarkers(int)): Likewise,
    (addRangeMarker): Register plot as a listener with the new marker,
    (clearRangeMarkers()): Deregister plot as a listener with each marker,
    (clearRangeMarkers(int)): Likewise,
    * source/org/jfree/chart/plot/IntervalMarker.java
    (setStartValue): New method,
    (setEndValue): New method,
    (setGradientPaintTransformer): Notify listeners,
    * source/org/jfree/chart/plot/Marker.java
    (listeners): New field,
    (Marker): Initialise listeners field,
    (setPaint): Notify listeners,
    (setStroke): Likewise,
    (setOutlinePaint): Likewise,
    (setOutlineStroke): Likewise,
    (setAlpha): Likewise,
    (setLabel): Likewise,
    (setLabelFont): Likewise,
    (setLabelPaint): Likewise,
    (setLabelAnchor): Likewise,
    (setLabelOffset): Likewise,
    (setLabelOffsetType): Likewise,
    (setLabelTextAnchor): Likewise,
    (addChangeListener): New method,
    (removeChangeListener): New method,
    (notifyListeners): New method,
    (getListeners): New method,
    * source/org/jfree/chart/plot/Plot.java
    (markerChanged): New method,
    * source/org/jfree/chart/plot/ValueMarker.java
    (setValue): New method,
    * source/org/jfree/chart/plot/XYPlot.java
    (addDomainMarker): Register plot as a listener with the new marker,
    (clearDomainMarkers()): Deregister plot as a listener with each marker,
    (clearDomainMarkers(int)): Likewise,
    (addRangeMarker): Register plot as a listener with the new marker,
    (clearRangeMarkers()): Deregister plot as a listener with each marker,
    (clearRangeMarkers(int)): Likewise,
    * source/org/jfree/chart/plot/junit/CategoryMarkerTests.java:
    (lastEvent): New field,
    (markerChanged): New method,
    (testGetSetKey): Likewise,
    (testGetSetDrawAsLine): Likewise,
    * source/org/jfree/chart/plot/junit/IntervalMarkerTests.java:
    (lastEvent): New field,
    (markerChanged): New method,
    (testGetSetStartValue): New method,
    (testGetSetEndValue): New method,
    * source/org/jfree/chart/plot/junit/MarkerTests.java: New file,
    * source/org/jfree/chart/plot/junit/PlotPackageTests.java
    (suite): Added MarkerTests.class,
    * source/org/jfree/chart/plot/junit/ValueMarkerTests.java:
    (lastEvent): New field,
    (markerChanged): New method,
    (testGetSetValue): Likewise.

2006-09-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (actionPerformed): Updated for method name change,
    (attemptEditChartProperties): Renamed doEditChartProperties() and
    made public.

2006-09-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/NumberAxis.java
    (autoAdjustRange): Check for lower == upper after applying auto range
    minimum size and adjust if necessary.

2006-09-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (removeAgedItems(boolean)): Check for greater than maxItemAge,
    (removeAgedItems(long, boolean): Reimplemented,
    * source/org/jfree/data/time/junit/TimeSeriesTests.java
    (testRemoveAgedItems): New method,
    (testRemoveAgedItems2): New method.

2006-08-29  Henry Proudhon  <henry.proudhon AT insa-lyon.fr>

    * source/org/jfree/experiment/swt/SWTUtils.java
    (Az): New field,
    (toSwtFontData): Refined font size calculation,
    (toAwtFont): Likewise.

----------  JFREECHART 1.0.2 RELEASED ------------------------

2006-08-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (JFreeChartInfo.getLogo): Load image from jar file in a way that works
    for Java Web Start also.

2006-08-25  David Gilbert  <david.gilbert@object-refinery.com>

    * README.txt: Provide link to iText,
    * ant/build.xml: Restore 'compile-experimental' to 'all', but exclude
    SWT classes.

2006-08-25  David Gilbert  <david.gilbert@object-refinery.com>

    * NEWS: Updated for release,
    * README.txt: Likewise,
    * ant/build.xml: Removed 'compile-experimental' from 'all'.

2006-08-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/experimental/chart/axis/LogAxis.java: New file,
    * source/org/jfree/experimental/chart/demo/LogAxisDemo1.java: New file.

2006-08-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/experimental/chart/swt/editor/SWTAxisEditor.java:
    Made package private,
    * source/org/jfree/experimental/chart/swt/editor/SWTNumberAxisEditor.java:
    Likewise,
    * source/org/jfree/experimental/chart/swt/editor/SWTOtherEditor.java:
    Likewise,
    * source/org/jfree/experimental/chart/swt/editor/SWTPlotAppearanceEditor.java:
    Likewise,
    * source/org/jfree/experimental/chart/swt/editor/SWTPlotEditor.java:
    Likewise,
    * source/org/jfree/experimental/chart/swt/editor/SWTStrokeCanvas.java:
    Likewise,
    * source/org/jfree/experimental/chart/swt/editor/SWTTitleEditor.java: Likewise.

2006-08-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/experimental/chart/swt/ChartComposite.java
    (attemptEditChartProperties): Implemented,
    * source/org/jfree/experimental/chart/swt/editor/SWTAxisEditor.java:
    New file,
    * source/org/jfree/experimental/chart/swt/editor/SWTChartEditor.java:
    New file,
    * source/org/jfree/experimental/chart/swt/editor/SWTNumberAxisEditor.java:
    New file,
    * source/org/jfree/experimental/chart/swt/editor/SWTOtherEditor.java:
    New file,
    * source/org/jfree/experimental/chart/swt/editor/SWTPlotAppearanceEditor.java:
    New file,
    * source/org/jfree/experimental/chart/swt/editor/SWTPlotEditor.java:
    New file,
    * source/org/jfree/experimental/chart/swt/editor/SWTStrokeCanvas.java:
    New file,
    * source/org/jfree/experimental/chart/swt/editor/SWTTitleEditor.java:
    New file,
    * source/org/jfree/experimental/swt/SWTPaintCanvas.java: New file.

2006-08-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (drawItem): Added crosshair support, and modified dataset calls to
    use only double primitives.

2006-08-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/experimental/chart/demo/XYBlockChartDemo2.java
    (createDataset): Rewritten to fix compile errors,
    * source/org/jfree/experimental/chart/demo/XYBlockChartDemo3.java
    (setValue): New method,
    (createDataset): Rewritten to fix compile errors.

2006-08-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/experimental/chart/swt/ChartComposite.java:
    New file,
    * source/org/jfree/experimental/chart/swt/demo/SWTBarChartDemo1.java:
    New file,
    * source/org/jfree/experimental/chart/swt/demo/SWTMultipleAxisDemo1.java:
    New file,
    * source/org/jfree/experimental/chart/swt/demo/SWTPieChartDemo1.java:
    New file,
    * source/org/jfree/experimental/swt/SWTGraphics2D.java: New file,
    * source/org/jfree/experimental/swt/SWTUtils.java: New file.

2006-08-23  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Added 'compile-experimental' target,
    * source/org/jfree/experimental/chart/demo/XYBlockChartDemo1.java:
    New file,
    * source/org/jfree/experimental/chart/demo/XYBlockChartDemo2.java:
    New file,
    * source/org/jfree/experimental/chart/demo/XYBlockChartDemo3.java:
    New file,
    * source/org/jfree/experimental/chart/renderer/GrayPaintScale.java:
    New file,
    * source/org/jfree/experimental/chart/renderer/LookupPaintScale.java:
    New file,
    * source/org/jfree/experimental/chart/renderer/PaintScale.java:
    New file,
    * source/org/jfree/experimental/chart/renderer/junit/GrayPaintScaleTests.java:
    New file,
    * source/org/jfree/experimental/chart/renderer/junit/LookupPaintScaleTests.java:
    New file,
    * source/org/jfree/experimental/chart/renderer/xy/XYBlockRenderer.java:
    New file,
    * source/org/jfree/experimental/chart/renderer/xy/junit/XYBlockRendererTests.java:
    New file.

2006-08-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CombinedDomainXYPlot.java
    (setFixedRangeAxisSpace): New method override.

2006-08-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createStackedXYAreaChart): Use StackedXYAreaRenderer2 instead of
    StackedXYAreaRenderer, for better handling of negative values,
    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java:
    Updated API docs.

2006-08-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2.java
    (findRangeBounds): Handle null and empty datasets correctly,
    * source/org/jfree/chart/renderer/xy/junit/StackedXYAreaRenderer2Tests.java:
    (testDrawWithEmptyDataset): New test,
    (testFindRangeBounds): Added checks for null and empty datasets.

2006-08-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (drawCategoryLabels(Graphics2D, Rectangle2D, RectangleEdge, AxisState,
    PlotRenderingInfo)): Deprecated,
    (drawCategoryLabels(Graphics2D, Rectangle2D, Rectangle2D,
    RectangleEdge, AxisState, PlotRenderingInfo)): New method,
    * source/org/jfree/chart/axis/CategoryAxis3D.java
    (draw): Call new drawCategoryLabels() method,
    * source/org/jfree/chart/axis/SubCategoryAxis.java
    (draw): Likewise,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (getDatasetCount): New method.

2006-08-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LayeredBarRenderer.java
    (calculateBarWidth): Respect maximumBarWidth setting.

2006-08-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/junit/CandlestickRendererTests.java
    (testFindRangeBounds): New method,
    * source/org/jfree/chart/renderer/xy/junit/HighLowRendererTests.java
    (testFindRangeBounds): New method.

2006-08-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    (equals): Check additional fields,
    * source/org/jfree/chart/renderer/xy/junit/CandlestickRendererTests.java
    (testEquals): Extended to check all fields.

2006-08-04  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Added source="1.3" target="1.3" to compile.

2006-08-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (calculateBarL0L1}: Changed clipping slightly.

2006-08-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (clone): New method,
    (equals): Likewise,
    * source/org/jfree/chart/renderer/junit/DefaultPolarItemRendererTests.java:
    New test class,
    * source/org/jfree/chart/renderer/junit/RendererPackageTests.java
    (suite): Added DefaultPolarItemRendererTests.

2006-08-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/block/AbstractBlock.java
    (getContentXOffset): Added API docs,
    (getContentYOffset): Likewise.

2006-08-04  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotation/CategoryLineAnnotation.java
    (CategoryLineAnnotation): Fixed API doc warnings.

2006-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYBarDataset.java: API doc updates,
    * source/org/jfree/data/xy/XYDataset.java: Likewise,
    * source/org/jfree/data/xy/XYSeriesCollection.java: Likewise.

2006-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/junit/CategoryToPieDatasetTests.java
    (testGetIndex): New test method.

2006-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/DefaultStatisticalCategoryDataset.java
    (getRangeBounds): Minor fix to previous patch.

2006-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/DefaultStatisticalCategoryDataset.java
    (minimumRangeValueIncStdDev): New field,
    (maximumRangeValueIncStdDev): Likewise,
    (DefaultStatisticalCategoryDataset): Updated initialization code,
    (add): Modified code to update ranges,
    (getRangeBounds): Create the range as required,
    * source/org/jfree/data/statistics/junit/DefaultStatisticalCategoryDatasetTests.java
    (testGetRangeBounds): New test method.

2006-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/HistogramDataset.java
    (addSeries): Improved precision of bin boundary calculation,
    * source/org/jfree/data/statistics/junit/HistogramDatasetTests.java
    (testAddSeries): New method,
    (testBinBoundaries): New method.

2006-08-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/HistogramDataset.java:
    API doc updates.

2006-08-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYBoxAnnotation.java: API doc
    correction and source code reformatting.

2006-08-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/needle/ArrowNeedle.java: Minor API doc
    updates,
    * source/org/jfree/chart/needle/LineNeedle.java: Likewise,
    * source/org/jfree/chart/needle/LongNeedle.java: Likewise,
    * source/org/jfree/chart/needle/MiddlePinNeedle.java: Likewise,
    * source/org/jfree/chart/needle/PinNeedle.java: Likewise,
    * source/org/jfree/chart/needle/PlumNeedle.java: Likewise,
    * source/org/jfree/chart/needle/PointerNeedle.java: Likewise,
    * source/org/jfree/chart/needle/ShipNeedle.java: Likewise,
    * source/org/jfree/chart/needle/WindNeedle.java: Likewise.

2006-08-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (equals): Handle null tool tip and URL generators,
    * source/org/jfree/chart/plot/junit/SpiderWebPlot.java
    (testEquals): Extended to check tooltip and URL generators.

2006-08-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/DrawableLegendItem.java: Deprecated class.

2006-08-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (restoreAutoRangeBounds): Check for instance of Zoomable rather than
    ValueAxisPlot.

2006-08-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/DefaultDrawingSupplier.java: Reformatted
    and updated API docs.

2006-08-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues.java
    (getIndex): Check for null argument,
    * source/org/jfree/data/general/DefaultPieDataset.java
    (getKey(int)): Throw IndexOutOfBounds if key exceeds getItemCount()
    - 1,
    * source/org/jfree/data/general/junit/DefaultPieDatasetTests.java
    (testGetKey): New method,
    (testGetIndex): New method,
    * source/org/jfree/data/junit/DefaultKeyedValuesTests.java
    (testGetIndex): Added check for null argument.

2006-07-31  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/DefaultKeyedValues.java
    (clear): New method,
    * source/org/jfree/data/general/DefaultPieDataset.java
    (clear): Likewise,
    * source/org/jfree/data/general/junit/DefaultPieDatasetTests.java
    (lastEvent): New field,
    (datasetChanged): New method,
    (testClear): New method,
    * source/org/jfree/data/junit/DefaultKeyedValuesTests.java
    (testClear): New method.

2006-07-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYSeries.java
    (add(Number, Number, boolean)): Removed redundant argument check.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/junit/NumberAxisTests.java
    (testAutoRange4): New method.

2006-07-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/CategoryToPieDataset.java
    (serialVersionUID): New field,
    (CategoryToPieDataset): Handle null source,
    (getUnderlyingDataset): New method,
    (getExtractType): New method,
    (getExtractIndex): New method,
    (getValue): Check index bounds,
    (getKey): Check index bounds,
    (getIndex): Handle null source,
    (getKeys): Likewise,
    (getValue): Handle unrecognised key,
    (equals): New method override,
    * source/org/jfree/data/category/junit/CategoryToPieDatasetTests.java:
    New file,
    * source/org/jfree/data/category/junit/DataCategoryPackageTests.java
    (suite): Added new test.

2006-07-25  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Use JCommon 1.0.5,
    * source/org/jfree/chart/axis/DateAxis.java: Fixed API doc warning,
    * source/org/jfree/chart/labels/StandardCategoryItemLabelGenerator.java:
    Likewise,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java: Likewise,
    * source/org/jfree/data/general/Series.java: Likewise,
    * source/org/jfree/data/time/TimeSeries.java: Likewise.

2006-07-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/resources/JFreeChartResources.java
    (CONTENTS): Updated version number,
    * source/overview.html: Updated link,
    * ant/build.xml: Updated version number.

2006-07-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/demo/TimeSeriesDemo1.java
    (createDataset): Removed call to deprecated method.

2006-07-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java
    (datasetIndex): New field,
    (series): Likewise,
    (getDatasetIndex): New method,
    (setDatasetIndex): Likewise,
    (getSeriesIndex): Likewise,
    (setSeriesIndex): Likewise,
    (equals): Updated for new fields,
    * source/org/jfree/chart/block/BlockContainer.java
    (draw): Transform drawing area directly,
    * source/org/jfree/chart/block/CenterArrangement.java
    (arrangeNN): Set bounds for contained block,
    * source/org/jfree/chart/block/LabelBlock.java
    (arrange): Removed unused code,
    (draw): Correct entity area calculation,
    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (getLegendItem): Set dataset and series indices,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/title/LegendItemBlockContainer.java: New file,
    * source/org/jfree/chart/title/LegendTitle.java
    (createLegendItemBlock): Use new LegendItemBlockContainer class.

2006-07-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/encoders/SunJPEGEncoderAdapter.java
    (quality): Changed default to 0.95f,
    (setQuality): Added argument check,
    (encode(BufferedImage, OutputStream)): Set quality before writing
    image to output stream.

2006-07-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYPointerAnnotation.java
    (draw): Swap coordinates for PlotOrientation.HORIZONTAL.

2006-07-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    (drawHorizontalItem): Added item label drawing,
    (drawVerticalItem): Likewise.

2006-07-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultWindDataset.java
    (DefaultWindDataset(List, Object[][][]): Added argument checks,
    (getItemCount): Likewise,
    (getSeriesKey): Likewise,
    (equals): New method override,
    (WindDataItem): Implements Serializable,
    (WindDateItem.equals): New method override,
    * source/org/jfree/data/xy/WindDataset.java: API doc updates,
    * source/org/jfree/data/xy/junit/DataXYPackageTests.java
    (suite): Added DefaultWindDatasetTests,
    * source/org/jfree/data/xy/junit/DefaultWindDatasetTests.java:
    New file.

2006-07-12  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultXYZDataset.java: New file,
    * source/org/jfree/data/xy/junit/DataXYPackageTests.java
    (suite): Add new test class,
    * source/org/jfree/data/xy/junit/DefaultXYZDatasetTests.java: New file.

2006-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYDotRenderer.java
    (dotWidth): New field,
    (dotHeight): New field,
    (XYDotRenderer): Initialize new fields,
    (getDotWidth): New method,
    (setDotWidth): Likewise,
    (getDotHeight): New method,
    (setDotHeight): New method,
    (drawItem): Use variable dot size,
    (equals): Check new field values,
    * source/org/jfree/chart/renderer/xy/junit/XYDotRendererTests.java
    (testEquals): Extended test to cover new fields,
    (testHashCode): Likewise.

2006-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYPolygonAnnotation.java
    (XYPolygonAnnotation(double[], Stroke, Paint, Paint)): Added argument
    checks, and cloned incoming array,
    (getPolygonCoordinates): New method,
    (getFillPaint): New method,
    (getOutlinePaint): New method,
    (getOutlineStroke): New method,
    (draw): Return if the polygon has less than two vertices,
    (equals): Fixed bug with GradientPaint,
    (hashCode): Implemented,
    (hashCodeForPaint): New utility method,
    (hashCodeForDoubleArray): Likewise,
    * source/org/jfree/chart/annotations/junit/AnnotationsPackageTests.java:
    (suite): Added XYPolygonAnnotationTests,
    * source/org/jfree/chart/annotations/junit/XYPolygonAnnotationTest.java:
    New file.

2006-07-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java:
    Source reformatting.

2006-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/AbstractSeriesDataset.java: API doc
    updates,
    * source/org/jfree/data/general/SeriesDataset.java: Likewise.

2006-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/DefaultXYDataset.java: New file,
    * source/org/jfree/data/xy/junit/DataXYPackageTests.java:
    (suite): Included new class DefaultXYDatasetTests,
    * source/org/jfree/data/xy/junit/DefaultXYDatasetTests.java: New file.

2006-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/CyclicXYItemRenderer.java
    (drawItem):  Swapped all calls to dataset methods returning Number
    instances, to corresponding methods that return doubles.

2006-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYStepAreaRenderer.java
    (drawItem):  Swapped all calls to dataset methods returning Number
    instances, to corresponding methods that return doubles.

2006-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/HighLowRenderer.java
    (drawItem): Swapped all calls to dataset methods returning Number
    instances, to corresponding methods that return doubles.

2006-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/urls/TimeSeriesURLGenerator.java:
    (generateURL): Swapped getX() --> getXValue() (DG);

2006-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java:
    Reformatted.

2006-07-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/CandlestickRenderer.java
    (drawItem): Swapped all calls to dataset methods returning Number
    instances, to corresponding methods that return doubles.

2006-07-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Marker.java: Reformatting and API doc
    updates.

2006-06-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Plot.java
    (backgroundImageAlpha): New field,
    (getBackgroundImageAlpha): New method,
    (setBackgroundImageAlpha): New method,
    (drawBackgroundImage): Use new alpha field,
    * source/org/jfree/chart/plot/junit/PlotTests.java
    (testEquals): Added check for new field.

2006-06-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/ClusteredXYBarRenderer.java
    (drawItem): Check orientation when adjusting for margin, call new
    drawItemLabel() method in superclass.

2006-06-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (positiveItemLabelPositionFallback): New field,
    (negativeItemLabelPositionFallback): Likewise,
    (getPositiveItemLabelPositionFallback): New method,
    (setPositiveItemLabelPositionFallback): Likewise,
    (getNegativeItemLabelPositionFallback): Likewise,
    (setNegativeItemLabelPositionFallback): Likewise,
    (drawItem): Call new drawItemLabel() method,
    (drawItemLabel): New method,
    (calculateLabelAnchorPoint): New method,
    (isInternalAnchor): New method,
    (equals): Updated for new fields,
    * source/org/jfree/chart/renderer/xy/junit/XYBarRendererTests.java
    (testEquals): Extended to cover new fields,
    (testSerialization2): New test.

2006-06-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYStepRenderer.java
    (drawItem): Handle item labels.

2006-06-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (State.seriesIndex): New field,
    (State.getSeriesIndex): New method,
    (State.setSeriesIndex): New method,
    (initialise): Set seriesIndex field,
    (drawItem): Don't return until seriesPath has a chance to be updated
    and/or drawn, if it is being used.

2006-06-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (drawRadarPoly): Check for null info,
    * source/org/jfree/chart/plot/junit/SpiderWebPlotTests.java
    (testDrawWithNullInfo): New method.

2006-06-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/junit/WeekTests.java
    (testBug1498805): New method.

2006-05-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (drawItem): Check for both line and shape not visible, and do nothing
    in that case (fix for bug 1494936).

2006-05-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java:
    (delete(RegularTimePeriod)): Do nothing for unknown time period,
    (delete(int, int)): Added argument check,
    (createCopy(int, int)): Added argument checks,
    (createCopy(RegularTimePeriod, RegularTimePeriod)): Added argument
    checks, and special handling for range containing no observations,
    * source/org/jfree/data/time/junit/TimeSeriesTests.java:
    (testDelete2): Added new cases,
    (testCreateCopy1): Reformatted,
    (testCreateCopy2): New test,
    (testGetIndex): Likewise,
    (testGetDataItem1): Likewise,
    (testGetDataItem2): Likewise.

2006-05-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/Series.java: Updated API docs.

2006-05-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java
    (drawHorizontalItem): Add entity for bar,
    (drawVerticalItem): Add entity for bar.

2006-05-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/AbstractCategoryItemLabelGenerator.java
    (AbstractCategoryItemLabelGenerator(String, NumberFormat, NumberFormat)):
    New constructor,
    * source/org/jfree/chart/labels/StandardCategoryItemLabelGenerator.java
    (StandardCategoryItemLabelGenerator(String, NumberFormat, NumberFormat)):
    New constructor,
    (equals): New method,
    * source/org/jfree/chart/labels/StandardCategorySeriesLabelGenerator.java
    (equals): Added check for formatPattern,
    * source/org/jfree/chart/labels/StandardCategoryToolTipGenerator.java
    (StandardCategoryToolTipGenerator(String, NumberFormat, NumberFormat)):
    New constructor,
    (equals): New method,
    * source/org/jfree/chart/labels/junit/StandardCategoryItemLabelGeneratorTests.java
    (testEquals1481087): New test,
    * source/org/jfree/chart/labels/junit/StandardCategorySeriesLabelGeneratorTests.java:
    New file,
    * source/org/jfree/chart/labels/junit/StandardCategoryToolTipGeneratorTests.java
    (testEquals1481087): New test.

2006-05-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/junit/LabelsPackageTests.java
    (suite): Updated test class name,
    * source/org/jfree/chart/labels/junit/StandardPieItemLabelGeneratorTests.java:
    Removed,
    * source/org/jfree/chart/labels/junit/StandardPieToolTipGeneratorTests.java:
    Added (renamed file).

2006-05-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/AbstractPieItemLabelGenerator.java
    (clone): Clone the percentFormat field, fixes bug 1480978,
    * source/org/jfree/chart/labels/StandardPieSectionLabelGenerator.java
    (DEFAULT_SECTION_LABEL_FORMAT): Changed to "{0}",
    (StandardPieSectionLabelGenerator()): Use DEFAULT_SECTION_LABEL_FORMAT,
    * source/org/jfree/chart/labels/StandardPieToolTipGenerator.java:
    Reformatted,
    * source/org/jfree/chart/labels/junit/StandardPieItemLabelGeneratorTests.java
    (testCloning): Extended test to cover bug 1480978.

2006-04-19  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java
    (equals): Call super.equals();
    * source/org/jfree/chart/axis/junit/DateAxisTests.java
    (testEquals): Added more checks,
    (test1472942): New test method.

2006-04-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java:
    (drawItem): Handle horizontal orientation correctly.

2006-04-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (aggregatedItemsKey): New field,
    (aggregatedItemsPaint): Likewise,
    (sectionPaints): Likewise,
    (MultiplePiePlot(CategoryDataset)): Initialise new fields,
    (getAggregatedItemsKey): New method,
    (setAggregatedItemsKey): Likewise,
    (getAggregatedItemsPaint): Likewise,
    (setAggregatedItemsPaint): Likewise,
    (draw): Call prefetchSectionPaints(), use new field for
    aggregatedItemsKey, and update section colors in pie plot before
    drawing,
    (prefetchSectionPaints): New utility method,
    (getLegendItems): Call prefetchSectionPaints(), and add item for
    aggregatedItems if these are being used,
    (equals): Added tests for new fields,
    (writeObject): Added serialization support for new fields,
    (readObject): Likewise,
    * source/org/jfree/chart/plot/junit/MultiplePiePlotTests.java
    (testEquals): Extended to cover new fields,
    (testSerialization): Modified to cover a failing case.

2006-04-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Week.java
    (Week(Date, TimeZone)): Handle the case where the first few days of the
    year are part of the last week of the preceding year - see bug report
    1448828,
    * source/org/jfree/data/time/junit/WeekTests.java
    (testBug1448828): New test method.

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (toolTipGenerator): New field,
    (urlGenerator): Likewise,
    (getToolTipGenerator): New method,
    (setToolTipGenerator): Likewise,
    (getURLGenerator): Likewise,
    (setURLGenerator): Likewise,
    (drawRadarPoly): Populate entity collection, if not null,
    (equals): Updated for new fields.

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (drawRadarPoly): Check for value >= to zero, not > zero (see patch
    1462727).

2006-04-05  David Gilbert  <david.gilbert@object-refinery.com>

    Patch 1459313 by Max Herfort:

    * source/org/jfree/chart/renderer/category/StackedBarRenderer3D.java
    (renderAsPercentages): New field,
    (StackedBarRenderer3D()): Delegate to new constructor,
    (StackedBarRenderer3D(boolean)): New constructor,
    (StackedBarRenderer3D(double, double, boolean)): Likewise,
    (getRenderAsPercentages): New method,
    (setRenderAsPercentages): Likewise,
    (findRangeBounds): Check renderAsPercentages flag and return an
    appropriate range,
    (drawItem): Check renderAsPercentages flag and draw items accordingly,
    (equals): Overridden to account for renderAsPercentages flag,
    * NEWS: Added notes about this patch.

2006-03-08  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/jdbc/JDBCCategoryDataset.java
    (executeQuery(Connection, String)): Fixed update loop (bug 1445748).

2006-03-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/AbstractCategoryItemRenderer.java
    (getLegendItems): Check seriesVisibleInLegend flag before creating each
    legend item.

2006-02-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (drawRightLabels): Fixed distribution of labels,
    * NEWS: Added bug fix entry for 1440415.

2006-02-28  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml
    (compile): Remove manifest specification;
    * NEWS: Added bug fix entry.

2006-02-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYPointerAnnotation.java
    (equals): Reimplemented,
    * source/org/jfree/chart/annotations/junit/XYPointerAnnotationTests.java
    (testEquals): Updated to cover bug report 1415160.

2006-02-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/NumberAxis.java
    (equals): Added check for rangeType field,
    * source/org/jfree/chart/axis/junit/NumberAxisTests.java
    (testEquals()): Extended to check rangeType field,
    * NEWS: Added note of bug fix for 1435461.

2006-02-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/DateAxis.java: Updated API docs,
    * source/org/jfree/chart/axis/NumberAxis.java: Likewise.

----------  JFREECHART 1.0.1 RELEASED ------------------------

2006-01-27  David Gilbert  <david.gilbert@object-refinery.com>

    * NEWS: Updated for 1.0.1 release,
    * ant/build.xml: Updated version number,
    * source/org/jfree/chart/JFreeChart.java: Reformatted,
    * source/org/jfree/chart/resources/JFreeChartResources.java:
    (CONTENTS): Updated version number.

2006-01-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/AbstractXYItemLabelGenerator.java
    (createItemArray): Updated API docs,
    * source/org/jfree/chart/labels/BubbleXYItemLabelGenerator.java: New
    file,
    * source/org/jfree/chart/labels/StandardXYZItemLabelGenerator.java:
    Removed,
    * source/org/jfree/chart/labels/XYZItemLabelGenerator.java: Likewise,
    * source/org/jfree/chart/labels/junit/BubbleXYItemLabelGeneratorTests.java:
    New tests,
    * source/org/jfree/chart/labels/junit/LabelsPackageTests.java
    (suite): Renamed test,
    * source/org/jfree/chart/labels/junit/StandardXYItemLabelGeneratorTests.java:
    New file,
    * source/org/jfree/chart/labels/junit/StandardXYLabelGeneratorTests.java:
    Removed.

2006-01-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/CategoryPlot.java
    (getDomainGridlinePosition): Updated API docs,
    (setDomainGridlinePosition): Check for null argument,
    (getDomainGridlineStroke): Updated API docs,
    (setDomainGridlineStroke): Check for null argument,
    (getDomainGridlinePaint): Updated API docs,
    (setDomainGridlinePaint): Check for null argument,
    (getRangeGridlineStroke): Updated API docs,
    (setRangeGridlineStroke): Check for null argument,
    (getRangeGridlinePaint): Updated API docs,
    (setRangeGridlinePaint): Check for null argument.

2006-01-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/XYPlot.java
    (getAnnotations): New method,
    * source/org/jfree/chart/plot/junit/XYPlotTests.java
    (testRemoveAnnotation): New test.

2006-01-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/annotations/XYTextAnnotation.java
    (equals): Check x and y attributes (fixes bug 1415480).

2006-01-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (drawItem): Check item label visible flag.

2006-01-26  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createScatterPlot): Corrected API documentation.

2006-01-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LevelRenderer.java
    (getMaxItemWidth): Deprecated,
    (setMaxItemWidth): Likewise,
    (getMaximumItemWidth): New method,
    (setMaximumItemWidth): Likewise.

2006-01-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/GanttRenderer.java
    (GanttRenderer()): Set includeBaseInRange to false,
    * source/org/jfree/data/gantt/TaskSeriesCollection.java
    (getSeries(Comparable)): New method,
    (getSeries(int)): Likewise,
    * source/org/jfree/data/gantt/junit/TaskSeriesCollectionTests.java
    (testGetSeries): New tests.

2006-01-18  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/NumberAxis3D.java
    (draw): Check plot is a CategoryPlot before casting (fixes bug
    1408904).

2006-01-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/CategoryAxis.java
    (drawCategoryLabels): Fixed null pointer exception (see bug report
    1403043).

2006-01-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/xy/XYSeries.java
    (update(int, Number)): Deprecated (renamed updateByIndex),
    (updateByIndex): New method,
    * NEWS: Updated API changes.

2006-01-11  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (includeBaseInRange): New flag,
    (BarRenderer): Initialise new flag,
    (getIncludeBaseInRange): New accessor method,
    (setIncludeBaseInRange): Likewise,
    (calculateBarL0L1): Simplified code to fix bug 1401856,
    (findRangeBounds): New override method,
    * source/org/jfree/chart/plot/CategoryPlot.java
    (rendererChanged): Call configureRangeAxes(), because the renderer
    can affect the axis range,
    * source/org/jfree/data/Range.java
    (combine): Reformatted,
    (expandToInclude): New method,
    (expand): Reformatted,
    (shift): Likewise,
    (shiftWithNoZeroCrossing): Added API docs.
    * source/org/jfree/chart/axis/junit/NumberAxisTests.java
    (testAutoRange2): Fixed failing test,
    (testAutoRange3): Likewise,
    * NEWS: Added recent updates.

2006-01-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/servlet/ServletUtilities.java: Updated API
    docs and reformatted source code.

2006-01-09  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (drawLabels): Changed code that checks ignoreNullValues and
    ignoreZeroValues flags,
    (getLegendItems): Increment section count even when section is ignored.
    Fixes bug 1400442.

2005-12-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (SpiderWebPlot(CategoryDataset)): Delegate to another constructor,
    (SpiderWebPlot(CategoryDataset, TableOrder)): Copied code from previous
    constructor,
    (getPlotType): Updated description,
    (setInteriorGap): Reformatted,
    (draw): Likewise,
    (drawRadarPoly): Likewise,
    (drawLabel): Likewise.

2005-12-20  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/RingPlot.java
    (drawItem): fix entity shape (bug 1386328).

2005-12-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeriesCollection.java
    (domainIsPointsInTime): Deprecated, no longer required,
    (getDomainIsPointsInTime): Likewise,
    (setDomainIsPointsInTime): Likewise,
    (getSeries): Reformatted,
    (removeAllSeries): Likewise,
    (getX): Likewise,
    (getStartX): Likewise,
    (getEndX): Likewise,
    (getDomainBounds): Don't use domainIsPointsInTime.

2005-12-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/StandardXYZItemLabelGenerator.java:
    New class,
    * source/org/jfree/chart/labels/XYZItemLabelGenerator.java:
    New interface,
    * source/org/jfree/chart/renderer/AbstractRenderer.java: Reformatting,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java:
    Likewise,
    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (XYBubbleRenderer(int)): Check argument,
    (getScaleType): API docs,
    (drawItem): Added code to draw item labels,
    (getLegendItem): Reformatted.

2005-12-13  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/TextTitle.java
    (TextTitle(String)): Reformatted,
    (TextTitle(String, Font)): Reformatted,
    (arrange): Reformatted,
    (arrangeRR): Account for rotated title in left or right positions,
    fixes bug 1379331,
    (hashCode): Reformatted.

2005-12-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java:
    Reformatted.

2005-12-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java
    (attributedLabel): Made transient,
    (writeObject): Write out attributedLabel,
    (readObject): Read in attributedLabel,
    * source/org/jfree/chart/junit/LegendItemTests.java
    (testSerialization2): New test,
    * NEWS: Noted bug fix.

2005-12-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Quarter.java
    (Quarter(int, Year)): Fix bug (1377239) in argument checking,
    * source/org/jfree/data/time/junit/QuarterTests.java
    (testConstructor): New test,
    * NEWS: Noted bug fix.

2005-12-06  David Gilbert  <david.gilbert@object-refinery.com>

    * NEWS: New file,
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (getLegendItem): Changed Color.BLACK to Color.black (fixes bug report
    1374222).

2005-12-05  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java:
    Reformatted.

----------  JFREECHART 1.0.0 RELEASED ------------------------

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * README.txt: Update for 1.0.0 release,
    * source/org/jfree/chart/resources/JFreeChartResources.java
    (CONTENTS): Updated version number.

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (chartChanged): Don't update domainZoomable and rangeZoomable.

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer.java
    (drawItem): Access entity collection via convenience method,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYStepAreaRenderer.java
    (drawItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYStepRenderer.java
    (drawItem): Likewise.

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PiePlot.java
    (drawItem): Access entity collection via convenience method,
    * source/org/jfree/chart/plot/RingPlot.java
    (drawItem): Likewise.

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/junit/StackedXYAreaRendererTests.java
    (drawWithNullInfo): New test,
    * source/org/jfree/chart/renderer/xy/junit/XYAreaRendererTests.java
    (drawWithNullInfo): New test,
    * source/org/jfree/chart/renderer/xy/junit/XYAreaRenderer2Tests.java
    (drawWithNullInfo): New test,
    * source/org/jfree/chart/renderer/xy/junit/XYStepAreaRendererTests.java
    (drawWithNullInfo): New test,
    * source/org/jfree/chart/renderer/xy/junit/XYStepRendererTests.java
    (drawWithNullInfo): New test.

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java:
    Reformatting,
    * source/org/jfree/chart/renderer/category/StatisticalLineAndShaperenderer.java
    (drawItem): Fixed null pointer exception,
    * source/org/jfree/chart/renderer/category/junit/StatisticalBarRendererTests.java
    (testDrawWithNullInfo): New test,
    * source/org/jfree/chart/renderer/category/junit/StatisticalLineAndShapeRenderer.java
    (testDrawWithNullInfo): New test.

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java
    (drawItem): Fixed null pointer exception.

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LevelRenderer.java
    (drawItem): Fixed null pointer exception,
    * source/org/jfree/chart/renderer/category/junit/LevelRendererTests.java
    (testDrawWithNullInfo): New test.

2005-12-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LayeredBarRenderer.java
    (drawHorizontalItem): Fixed null pointer exception,
    (drawVerticalItem): Fixed null pointer exception,
    * source/org/jfree/chart/renderer/category/junit/LayeredBarRendererTests.java
    (testDrawWithNullInfo): New test.

2005-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (add(TimeSeriesDataItem)): Delegate to new method,
    (add(TimeSeriesDataItem, boolean)): New method,
    (add(RegularTimePeriod, double)): Delegate to new method,
    (add(RegularTimePeriod, double, boolean)): New method,
    (add(RegularTimePeriod, Double)): Delegate to new method,
    (add(RegularTimePeriod, Double, boolean)): New method.

2005-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/IntervalBarRenderer.java
    (drawItem): Call getEntityCollection directly on 'state',
    * source/org/jfree/chart/renderer/category/junit/IntervalBarRendererTests.java
    (testDrawWithNullInfo): New test.

2005-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java
    (drawItem): Call getEntityCollection directly on 'state',
    * source/org/jfree/chart/renderer/category/junit/BoxAndWhiskerRendererTests.java
    (testDrawWithNullInfo): Construct chart properly,
    * source/org/jfree/chart/renderer/category/junit/GroupedStackedBarRendererTests.java
    (testDrawWithNullInfo): New test,
    * source/org/jfree/data/statistics/BoxAndWhiskerItem.java
    (getOutliers): Check for null list.

2005-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * gjdoc/run-gjdoc: Updated version number,
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (drawHorizontalItem): Fixed null pointer exception,
    (drawVerticalItem): Likewise,
    * source/org/jfree/chart/renderer/category/junit/BoxAndWhiskerRendererTests.java
    (testDrawWithNullInfo): New test.

2005-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (getLegendItem): Use drawBarOutline flag for legend graphic,
    * source/org/jfree/chart/renderer/category/GanttRenderer.java
    (drawTasks): Check drawBarOutline flag,
    (drawTask): Likewise.

2005-12-01  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml
    (initialise): Updated version number,
    * gjdoc/run-gjdoc: Updated package list,
    * source/org/jfree/chart/junit/GanttChartTests.java
    (testDrawWithNullInfo): Reformatted,
    (testDrawWithNullInfo2): New test,
    * source/org/jfree/chart/renderer/category/GanttRenderer.java
    (drawTasks): Fix NullPointerException,
    (drawTask): Likewise.

2005-11-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYItemRenderer.java
    (getLegendItemLabelGenerator): Added method to interface,
    (setLegendItemLabelGenerator): Likewise.

2005-11-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/labels/StandardPieSectionLabelGenerator.java
    (getAttributedLabel): Change argument name to 'section',
    (setAttributedLabel): Likewise.

2005-11-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createSignalChart): Removed,
    * source/org/jfree/chart/renderer/xy/SignalRenderer.java: Removed,
    * source/org/jfree/chart/renderer/xy/junit/SignalRendererTests.java:
    Removed,
    * source/org/jfree/data/general/SubSeriesDataset.java
    (getType): Removed,
    (getLevel): Removed,
    * source/org/jfree/data/xy/SignalsDataset.java: Removed.

2005-11-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartRenderingInfo.java
    (plotArea): Removed,
    (ChartRenderingInfo(EntityCollection)): Updated for removed field,
    (getPlotArea): Removed,
    (setPlotArea): Removed,
    (clear): Updated for removed field,
    (equals): Likewise,
    (writeObject): Likewise,
    (readObject): Likewise,
    * source/org/jfree/chart/junit/ChartRenderingInfoTests.java
    (testEquals): Updated for removed field,
    (testSerialization): Likewise.

2005-11-28  David Gilbert  <david.gilbert@object-refinery.com>

    * README.txt: Updated for 1.0.0-rc3 release,
    * ant/build.xml: Copy across Maven file.

2005-11-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/editor/ChartEditorFactory.java: New file,
    * source/org/jfree/chart/editor/ChartEditorManager.java
    (factory): New field,
    (getChartEditorFactory): New method,
    (setChartEditorFactory): New method,
    (getChartEditor): Updated to use factory.

2005-11-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (maximumItemAge): Changed type from int to long,
    (TimeSeries(String, String, String, Class)): Change initialisation of
    maximumItemAge field,
    (getMaximumItemAge): Changed return type to long,
    (setMaximumItemAge): Changed argument type to long.

2005-11-28  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LegendItem.java:
    (LegendItem(String, AttributedString, String, String, String, Shape,
    Paint)): Removed AttributedString argument,
    (LegendItem(String, AttributedString, String, String, String, Shape,
    Paint, Stroke, Paint)): Likewise,
    (LegendItem(String, AttributedString, String, String, String, Shape,
    Stroke, Paint)): Likewise,
    (LegendItem(String, AttributedString, String, String, String, boolean,
    Shape, boolean, Paint, boolean, Paint, Stroke, boolean, Shape, Stroke,
    Paint)): Likewise,
    (LegendItem(AttributedString, String, String, String, Shape, Paint)):
    New constructor,
    (LegendItem(AttributedString, String, String, String, Shape, Paint,
    Stroke, Paint)): Likewise,
    (LegendItem(AttributedString, String, String, String, Shape, Stroke,
    Paint)): Likewise,
    (LegendItem(AttributedString, String, String, String, boolean,
    Shape, boolean, Paint, boolean, Paint, Stroke, boolean, Shape, Stroke,
    Paint)): Likewise,
    (characterIteratorToString): New method,
    * source/org/jfree/chart/junit/LegendItemCollectionTests.java
    (testEquals): Updated for change to LegendItem constructor,
    (testSerialization): Likewise,
    (testCloning): Likewise,
    * source/org/jfree/chart/junit/LegendItemTests.java
    (testEquals): Updated for change to LegendItem constructor,
    (testSerialization): Likewise,
    (testCloning): Likewise,
    * source/org/jfree/chart/plot/MeterPlot.java
    (getLegendItems): Update for change to LegendItem constructor,
    * source/org/jfree/chart/plot/MultiplePiePlot.java
    (getLegendItems): Likewise,
    * source/org/jfree/chart/plot/PiePlot.java
    (getLegendItems): Likewise,
    * source/org/jfree/chart/plot/SpiderWebPlot.java
    (getLegendItems): Likewise,
    * source/org/jfree/chart/renderer/DefaultPolarItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/WaferMapRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/AreaRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/BarRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/BoxAndWhiskerRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/StandardXYItemRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYAreaRenderer2.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYBubbleRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYDifferenceRenderer.java
    (getLegendItem): Likewise,
    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (getLegendItem): Likewise.

2005-11-28  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml
    (initialise): Update JFreeChart version number,
    (compile): Copy over property files in org.jfree.chart.editor,
    * source/org/jfree/chart/resources/JFreeChartResources.java
    (CONTENTS): Updated JFreeChart version number.

2005-11-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartMouseListener.java: Now extends EventListener,
    * source/org/jfree/chart/ChartPanel.java
    (chartMouseListeners): Use EventListenerList,
    (ChartPanel(JFreeChart, int, int, int, int, int, int, boolean, boolean,
    boolean, boolean, boolean, boolean)): Initialise chartMouseListeners,
    (mouseClicked): Use EventListenerList,
    (mouseMoved): Likewise,
    (addChartMouseListener): Likewise,
    (removeChartMouseListener): Likewise,
    (getListeners): New override,
    * source/org/jfree/chart/junit/ChartPanelTests.java:
    (testGetListeners): New test,
    (chartMouseClicked): New method,
    (chartMouseMoved): New method.

2005-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (attemptEditChartProperties): Use ChartEditorManager to get
    ChartEditor,
    * source/org/jfree/chart/axis/ColorBar.java: Update imports for moved
    classes,
    * source/org/jfree/chart/axis/junit/ColorBarTests.java: Likewise,
    * source/org/jfree/chart/editor/ChartEditor.java: New file,
    * source/org/jfree/chart/editor/ChartEditorManager.java: New file,
    * source/org/jfree/chart/editor/DefaultAxisEditor.java: New file,
    * source/org/jfree/chart/editor/DefaultChartEditor.java: New file,
    * source/org/jfree/chart/editor/DefaultColorBarEditor.java: New file,
    * source/org/jfree/chart/editor/DefaultNumberAxisEditor.java: New file,
    * source/org/jfree/chart/editor/DefaultPlotEditor.java: New file,
    * source/org/jfree/chart/editor/DefaultTitleEditor.java: New file,
    * source/org/jfree/chart/editor/PaletteChooserPanel.java: New file,
    * source/org/jfree/chart/editor/PaletteSample.java: New file,
    * source/org/jfree/chart/editor/LocalizationBundle_de.properties: Moved,
    * source/org/jfree/chart/editor/LocalizationBundle_es.properties: Moved,
    * source/org/jfree/chart/editor/LocalizationBundle_fr.properties: Moved,
    * source/org/jfree/chart/editor/LocalizationBundle_nl.properties: Moved,
    * source/org/jfree/chart/editor/LocalizationBundle_pl.properties: Moved,
    * source/org/jfree/chart/editor/LocalizationBundle_pt_PT.properties: Moved,
    * source/org/jfree/chart/editor/LocalizationBundle_ru.properties: Moved,
    * source/org/jfree/chart/editor/LocalizationBundle_zh_CN.properties: Moved,
    * source/org/jfree/chart/editor/LocalizationBundle.properties: Moved,
    * source/org/jfree/chart/editor/package.html: New file,
    * source/org/jfree/chart/junit/JFreeChartTestSuite.java:
    (suite): Removed ChartUIPackageTests,
    * source/org/jfree/chart/plot/ColorPalette.java: Moved,
    * source/org/jfree/chart/plot/GreyPalette.java: Moved,
    * source/org/jfree/chart/plot/RainbowPalette.java: Moved,
    * source/org/jfree/chart/plot/junit/ColorPaletteTests.java: Moved,
    * source/org/jfree/chart/plot/junit/PlotPackageTests.java
    (suite): Added ColorPaletteTests,
    * source/org/jfree/chart/ui/*: Removed package, most classes moved to
    org.jfree.chart.editor and renamed,
    * source/org/jfree/chart/ui/junit/*: Removed package.

2005-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/encoders/KeypointPNGEncoderAdapter.java:
    Updated API docs.

2005-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartFactory.java
    (createHistogram): Set autoRangeIncludesZero to false on domain axis.

2005-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: Updated version numbers.

2005-11-24  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/DefaultOldLegend.java: Removed,
    * source/org/jfree/chart/JFreeChart.java
    (oldLegend): Removed,
    (getOldLegend): Removed,
    (setOldLegend): Removed,
    (draw(Graphics2D, Rectangle2D, Point2D, ChartRenderingInfo)): Removed
    old legend drawing code,
    (legendChanged): Removed,
    (equals): Removed old legend check,
    (readObject): Removed code to add listener to old legend,
    (clone): Removed code to clone old legend,
    * source/org/jfree/chart/OldLegend.java: Removed,
    * source/org/jfree/chart/event/LegendChangeEvent.java: Removed,
    * source/org/jfree/chart/event/LegendChangeListener.java: Removed,
    * source/org/jfree/chart/junit/JFreeChartTests.java
    (testEquals): Removed old legend check,
    * source/org/jfree/chart/ui/ChartPropertyEditPanel.java
    (legendPropertiesPanel): Removed,
    (ChartPropertyEditPanel(JFreeChart)): Removed old legend setup,
    (getLegendPropertyEditPanel): Removed,
    (updateChartProperties): Removed old legend update,
    * source/org/jfree/chart/ui/LegendPropertyEditPanel.java: Removed.

2005-11-23  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (JFreeChartInfo): Added Pady Srinivasan to contributors,
    * source/org/jfree/chart/axis/CategoryAxis.java:  Added Pady Srinivasan
    as Contributor.

2005-11-23  David Gilbert  <david.gilbert@object-refinery.com>

    These changes are based on patch 1217634 by Pady Srinivasan (with
    significant modifications).

    * source/org/jfree/chart/axis/CategoryAxis.java
    (tickLabelFontMap): New field,
    (tickLabelPaintMap): New field,
    (CategoryAxis(String)): Initialise new fields,
    (getTickLabelFont(Comparable)): New method,
    (setTickLabelFont(Comparable, Font)): New method,
    (getTickLabelPaint(Comparable)): New method,
    (setTickLabelPaint(Comparable, Paint)): New method,
    (getCategoryLabelToolTip): New method,
    (drawCategoryLabels): Use new methods to get label font and paint, and
    also tooltip,
    (refreshTicks): Reformatted,
    (createLabel): Use new methods to get label font and paint,
    (clone): Handle new fields,
    (equals): Likewise,
    (readObject): Likewise,
    (writeObject): Likewise,
    (readPaintMap): New method,
    (writePaintMap): New method,
    (equalPaintMaps): New method,
    * source/org/jfree/chart/axis/junit/CategoryAxisTests.java
    (testEquals): Add tests for new fields,
    (testCloning2): New test,
    (testSerialization): Strengthened test.

2005-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/LocalisationBundle_de.properties:
    Minor correction (see patch 1315259),
    * source/org/jfree/chart/ui/LocalisationBundle_de.properties:
    Corrections and additions (see patch 1315258).

2005-11-22  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/HistogramDataset.java
    (getSeriesKey): Cast return value to Comparable.

2005-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/LayeredBarRenderer.java
    (calculateBarWidth): Remove itemMargin from calculation,
    (drawItem): Reformatted,
    (drawHorizontalItem): Added support for GradientPaint,
    (drawVerticalItem): Likewise.

2005-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java
    (setDrawSeriesLineAsPath): Send RendererChangeEvent if flag changes.

2005-11-21  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/function/NormalDistributionFunction2D.java
    (getMean): New method,
    (getStandardDeviation): New method,
    (getValue): Reformatted.

2005-11-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/TimeSeries.java
    (historyCount): Renamed maximumItemAge,
    (TimeSeries(String, String, String, Class)): Update for renamed field,
    (getMaximumItemCount): API doc update,
    (setMaximumItemCount): Added argument check, and remove surplus items
    in a way that fires a SeriesChangeEvent,
    (getHistoryCount): Renamed getMaximumItemAge(),
    (setHistoryCount): Renamed setMaximumItemAge() and reimplemented,
    (add(TimeSeriesDataItem)): Update for refactored method,
    (addOrUpdate(RegularTimePeriod, Number)): Likewise,
    (ageHistoryCountItems): Renamed removeAgedItems and amended to generate
    change notification if requested,
    (ageHistoryCountItems(long)): Likewise,
    (equals): Updates for renamed method,
    (hashCode): Likewise.
    * source/org/jfree/data/time/junit/TimeSeriesTests.java
    (testEquals): Updated for renamed field.

2005-11-17  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java
    (minValue): Removed,
    (maxValue): Removed,
    (isDrawLines): Updated API docs,
    (setDrawLines): Send RendererChangeEvent,
    (getGroupPaint): Updated API docs,
    (setGroupPaint): Check for null argument, send change event,
    (setGroupStroke): Likewise,
    (getObjectIcon): Updated API docs,
    (setObjectIcon): Check for null argument, send change event,
    (getMaxIcon): Updated API docs,
    (setMaxIcon): Check for null argument, send change event,
    (getMinIcon): Updated API docs,
    (setMinIcon): Check for null argument, send change event,
    (drawItem): Refactored (for removed fields).

2005-11-16  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/statistics/HistogramDataset.java
    (addSeries): Handle case where data value is smaller than the lower
    bound of the bin range.

2005-11-15  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java:
    Reformatted and reordered methods.

2005-11-10  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/MeterPlot.java
    (tickSize): New field,
    (tickPaint): New field,
    (tickLabelPaint): New field,
    (MeterPlot(ValueDataset)): Initialise new fields,
    (getTickSize): New method,
    (setTickSize): New method,
    (getTickPaint): New method,
    (setTickPaint): New method,
    (getTickLabelPaint): New method,
    (setTickLabelPaint): New method,
    (getLegendItems): Use background color for each interval,
    (draw): Call new drawValueLabel() method,
    (drawArcForInterval): Updated for refactored methods,
    (fillArc): Changed from private to protected,
    (drawTicks): Make use of new tickSize field,
    (drawTick(Graphics2D, Rectangle2D, double)): Updated for refactored
    methods,
    (drawTick(Graphics2D, Rectangle2D, double, boolean, Paint, boolean,
    String)): Removed special case code for drawing the value label, and
    the now redundant parameters, replaced with drawValueLabel(),
    (drawValueLabel): New method,
    (equals): Updated for new fields.

2005-11-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartColor.java
    (createDefaultPaintArray): removed orange color, fix for bug 1328408).

2005-11-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/time/Month.java
    (Month(int, Year)): changed '&&' to '||' in argument check, fixes
    bug 1345383.

2005-11-02  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartRenderingInfo.java
    (equals): updated to include plotArea and plotInfo,
    * source/org/jfree/chart/junit/ChartRenderingInfoTests.java
    (testEquals): expanded to test all fields,
    (testSerialization): changed initialisation of object to be serialized,
    (testSerialization2): new test,
    * source/org/jfree/chart/plot/PlotRenderingInfo.java
    (owner): removed transient keyword.

2005-11-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/ImageTitle.java
    (height): removed field,
    (width): removed field,
    (ImageTitle(Image, int, int, RectangleEdge, HorizontalAlignment,
    VerticalAlignment, RectangleInsets)): set width and height for block,
    (drawHorizontal): use block width and height,
    (drawVertical): use block width and height,
    * source/org/jfree/chart/title/junit/ImageTitleTests.java
    (testWidthAndHeight): new method.

2005-11-01  David Gilbert  <david.gilbert@object-refinery.com>

    * ant/build.xml: exclude SunJPEGEncoderAdapter.java from the build if
    ImageIO is not present,
    * source/org/jfree/chart/encoders/ImageEncoderFactory.java
    (init): only add 'jpeg' encoder if JFreeChart was compiled, and is
    being run, with JDK 1.4 or later,
    * source/org/jfree/chart/encoders/SunJPEGEncoderAdapter.java
    (encode): use ImageIO, not com.sun.* classes.

2005-11-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/HighLowRenderer.java
    (openTickPaint): new field,
    (closeTickPaint): new field,
    (getOpenTickPaint): new method,
    (setOpenTickPaint): new method,
    (getCloseTickPaint): new method,
    (setCloseTickPaint): new method,
    (drawItem): use openTickPaint and closeTickPaint if non-null,
    (equals): implemented,
    (readObject): new method to support serialization,
    (writeObject): new method to support serialization,
    * source/org/jfree/chart/renderer/xy/junit/HighLowRendererTests.java
    (testEquals): add checks for all fields,
    (testCloning): updated for new fields,
    (testSerialization): updated for new fields.

2005-11-01  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/HighLow.java: Removed unused
    class.

2005-10-27  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/general/junit/DatasetUtilities.java
    (testIterateXYRangeBounds2): added API doc comment.

2005-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/category/DefaultIntervalCategoryDataset.java
    (getCategory): removed,
    (getItem): removed,
    (getSeries(Object)): changed signature to accept Comparable,
    (getSeries(int): removed,
    (getValue(Comparable, Comparable)): call getColumnIndex() instead of
    getItem(),
    (getStartValue(Comparable, Comparable)): likewise,
    (getEndValue(Comparable, Comparable)): likewise,
    (setStartValue(int, Object, Number)): changed signature to (int,
    Comparable, Number),
    (setEndValue(int, Object, Number)): likewise,
    (getCategoryIndex(Object)): changed signature to (Comparable),
    (getColumnKey(int)): changed argument name,
    (getRowKey(int)): likewise.

2005-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/resources/JFreeChartResources.java
    (CONTENTS): updated 'project.version'.

2005-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/Marker.java
    (Marker(Paint, Stroke, Paint, Stroke, float)): changed from public to
    protected.

2005-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/plot/PolarPlot.java: now implements Zoomable
    interface,
    (PolarPlot(XYDataset, ValueAxis, PolarItemRenderer)): reformatted,
    (addCornerTextItem): check for null argument, generate PlotChangeEvent,
    (removeCornerTextItem): generate PlotChangeEvent if necessary,
    (clearCornerTextItem): renamed clearCornerTextItems(), and generates
    PlotChangeEvent if necessary,
    (setAngleLabelsVisible): only send PlotChangeEvent if flag changes,
    (drawCornerTextItems): changed from public to protected,
    (render): likewise,
    (zoomDomainAxes(double, double, double)): changed signature and now
    implementation does nothing,
    (zoomDomainAxes(double, double, double, double)): likewise,
    (zoomRangeAxes(double, double, double)): changed signature to match
    Zoomable interface,
    (zoomRangeAxes(double, double, double, double)): likewise,
    (isDomainZoomable): now returns false,
    (getOrientation): new method,
    * source/org/jfree/chart/renderer/PolarItemRenderer.java
    (drawRadialGridLines): removed commented out code.

2005-10-25  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/axis/TickUnits.java
    (getCeilingTickUnit): don't pass null to other method.

2005-10-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBarRenderer.java
    (drawItem): fixed bar coordinates to work with inverted axes.

2005-10-14  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/ChartPanel.java
    (chartChanged): update plot orientation, it may have changed.

2005-10-07  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/title/TextTitle.java
    (textAlignment): new field,
    (TextTitle): initialise new field,
    (getTextAlignment): new method,
    (setTextAlignment): new method,
    (equals): include textAlignment in test,
    * source/org/jfree/chart/title/junit/TextTitleTests.java
    (testEquals): updated to include textAlignment.

2005-10-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRenderer.java
    (drawItem): removed setPaint() call.

2005-10-06  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/data/junit/DefaultKeyedValues2DTests.java
    (testEquals): New method,
    * source/org/jfree/data/xy/CategoryTableXYDataset.java
    (CategoryTableXYDataset): register interval delegate as a listener,
    (add(Number, Number, String, boolean)): remove call to itemAdded,
    (remove(Number, String, boolean)): remove call to itemRemoved,
    (getDomainBounds): only pass to delegate if the interval is included,
    (setIntervalWidth): update for renamed method,
    (equals): implemented,
    * source/org/jfree/data/xy/DefaultTableXYDataset.java
    (DefaultTableXYDataset(boolean)): register interval delegate as a
    listener,
    (removeAllSeries): remove class to seriesRemoved,
    (removeSeries(XYSeries)): likewise,
    (removeSeries(int)): likewise,
    (removeAllValuesForX): likewise,
    (getDomainBounds): only pass to delegate if the interval is included,
    (setIntervalWidth): update for renamed method,
    * source/org/jfree/data/xy/IntervalXYDelegate.java: now implements
    DatasetChangeListener,
    (intervalWidth): renamed fixedIntervalWidth,
    (lowerBound): removed,
    (upperBound): removed,
    (IntervalXYDelegate(XYDataset, boolean)): added check for null dataset,
    updated for renamed field,
    (setAutoWidth): if true, recalculate interval width,
    (getFixedIntervalWidth): new method,
    (setIntervalWidth): renamed setFixedIntervalWidth(), now sets autoWidth
    to false,
    (getIntervalWidth): updated for renamed field,
    (getEndXValue): new method,
    (getDomainBounds): reimplemented,
    (datasetChanged): new method, recalculates auto interval width,
    (itemAdded): removed,
    (itemRemoved): removed,
    (recalculateIntervalWidth): new implementation,
    renamed recalculateInterval(),
    (calculateSeries): renamed calculateIntervalForSeries(), new
    implementation,
    (seriesAdded): removed,
    (seriesRemoved): removed,
    (equals): updated for renamed field,
    * source/org/jfree/data/xy/XYSeriesCollection.java
    (XYSeriesCollection(XYSeries)): register interval delegate as a
    listener,
    (addSeries): removed call to seriesAdded(),
    (removeSeries(int)): removed call to seriesRemoved(),
    (removeSeries(XYSeries)): likewise,
    (removeAllSeries): likewise,
    (getDomainBounds): only pass to delegate if the interval is included,
    (setIntervalWidth): updated for renamed method,
    * source/org/jfree/data/xy/junit/CategoryTableXYDatasetTests.java: new
    tests,
    * source/org/jfree/data/xy/junit/DataXYPackageTests.java
    (suite): added CategoryTableXYDatsaetTests.class),
    * source/org/jfree/data/xy/junit/DefaultTableXYDatasetTests.java
    (testAddSeries): new test method,
    * source/org/jfree/data/xy/junit/IntervalXYDelegateTests.java
    (testEquals): updated for method name change.

2005-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2.java
    (drawItem): add an entity to the collection if supplied.

2005-10-03  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/JFreeChart.java
    (drawTitle): check for positive area width and height, otherwise
    return null (fixes bug 1306022).

2005-09-30  David Gilbert  <david.gilbert@object-refinery.com>

    * source/org/jfree/chart/renderer/category/StackedBarRenderer.java
    (drawItem): use item outline stroke, not regular stroke.

For changes prior to 30-Sep-2005, please refer to the file CHANGELOG.txt.
