You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(165) |
Nov
(296) |
Dec
(92) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(84) |
Feb
(20) |
Mar
(20) |
Apr
(42) |
May
(26) |
Jun
(30) |
Jul
(77) |
Aug
(151) |
Sep
(61) |
Oct
(259) |
Nov
(160) |
Dec
(76) |
2007 |
Jan
(159) |
Feb
(155) |
Mar
(183) |
Apr
(113) |
May
(110) |
Jun
(178) |
Jul
(56) |
Aug
(21) |
Sep
(50) |
Oct
(251) |
Nov
(218) |
Dec
(42) |
2008 |
Jan
(14) |
Feb
(37) |
Mar
(60) |
Apr
(77) |
May
(146) |
Jun
(256) |
Jul
(72) |
Aug
(51) |
Sep
(283) |
Oct
(22) |
Nov
(55) |
Dec
(53) |
2009 |
Jan
(56) |
Feb
(45) |
Mar
(56) |
Apr
(98) |
May
(84) |
Jun
(87) |
Jul
(32) |
Aug
(6) |
Sep
(19) |
Oct
|
Nov
(10) |
Dec
(6) |
2010 |
Jan
(2) |
Feb
(6) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(158) |
Nov
(17) |
Dec
(15) |
2012 |
Jan
(9) |
Feb
(3) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(1) |
Jul
(22) |
Aug
(1) |
Sep
(29) |
Oct
(1) |
Nov
|
Dec
|
2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(259) |
Aug
(125) |
Sep
(24) |
Oct
(8) |
Nov
(132) |
Dec
(3) |
2014 |
Jan
(3) |
Feb
(26) |
Mar
(17) |
Apr
(8) |
May
|
Jun
(31) |
Jul
(126) |
Aug
(22) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(21) |
Oct
|
Nov
(1) |
Dec
|
2016 |
Jan
(19) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <mu...@us...> - 2014-07-03 20:37:20
|
Revision: 3247 http://sourceforge.net/p/jfreechart/code/3247 Author: mungady Date: 2014-07-03 20:37:18 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Add JavaFX requirement. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/README.txt Modified: branches/jfreechart-1.0.x-branch/README.txt =================================================================== --- branches/jfreechart-1.0.x-branch/README.txt 2014-07-03 20:28:47 UTC (rev 3246) +++ branches/jfreechart-1.0.x-branch/README.txt 2014-07-03 20:37:18 UTC (rev 3247) @@ -61,10 +61,9 @@ ----------------- JFreeChart has the following dependencies: -(a) JRE/JDK 1.6.0 or higher - note that the previous release of JFreeChart -worked with JRE/JDK 1.4.2 or later. With a bit of hacking, it may be possible -to get JFreeChart working on these older versions, but we are no longer -supporting it. +(a) JRE/JDK 1.6.0 or higher. Note that JRE/JDK 1.8 is required to use the new +JavaFX support (and you will need to rebuild the library using the +ant/build-fx.xml script). (b) JCommon - version 1.0.0 or later. The runtime jar file (version 1.0.22) is included in the JFreeChart distribution. You can obtain the complete This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 20:28:56
|
Revision: 3246 http://sourceforge.net/p/jfreechart/code/3246 Author: mungady Date: 2014-07-03 20:28:47 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Updates for release. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/ChangeLog branches/jfreechart-1.0.x-branch/NEWS branches/jfreechart-1.0.x-branch/README.txt Modified: branches/jfreechart-1.0.x-branch/ChangeLog =================================================================== --- branches/jfreechart-1.0.x-branch/ChangeLog 2014-07-03 20:26:42 UTC (rev 3245) +++ branches/jfreechart-1.0.x-branch/ChangeLog 2014-07-03 20:28:47 UTC (rev 3246) @@ -1,3 +1,25 @@ +2014-07-03 David Gilbert <dav...@ob...> + + * org/jfree/chart/axis/NumberTickUnitSource.java + (integers): New field, + (formatter): New field, + (NumberTickUnitSource(boolean)): New constructor, + (NumberTickUnitSource(boolean, NumberFormatter): Likewise, + (getCeilingTickUnit): Update for factors and integer setting, + (next): Add factor 2 and limits, + (previous): Likewise, + (getTickLabelFormat): Add override, + (equals): Take account of new fields, + * org/jfree/chart/axis/LogAxis.java + (java2DToValue): Use minimum value if required, + (selectHorizontalAutoTickUnit): Likewise, + (selectVerticalAutoTickUnit): Likewise, + * org/jfree/chart/axis/NumberAxis.java + (createStandardTickUnits): Return a NumberTickUnitSource, + (createIntegerTickUnits): Likewise, + * org/jfree/chart/axis/ValueAxis.java + (zoomRange): Handle limits. + 2014-07-01 David Gilbert <dav...@ob...> * org/jfree/chart/plot/CategoryPlot.java: Numerous changes to fix iteration Modified: branches/jfreechart-1.0.x-branch/NEWS =================================================================== --- branches/jfreechart-1.0.x-branch/NEWS 2014-07-03 20:26:42 UTC (rev 3245) +++ branches/jfreechart-1.0.x-branch/NEWS 2014-07-03 20:28:47 UTC (rev 3246) @@ -1,17 +1,19 @@ JFreeChart 1.0.18 ----------------- -?? July 2014 +3 July 2014 Added JavaFX support with a new ChartViewer control that supports tooltips, mouse clicks, panning, zooming and a context menu. Modified LogAxis to -support super-scripted labels, enhanced XYStepAreaRenderer to support a -'stepPoint' attribute (patch from Lukasz Rzeszotarski), provided -configurable direction labels in CompassFormat (patch from Simon Legner), -added methods to add data item objects to VectorSeries, XIntervalSeries, -YIntervalSeries and XYIntervalSeries (for consistency with other data series -objects), improved the TimeSeries range calculations, provided center text -support for the RingPlot class, and updated JCommon to version 1.0.22 (this -fixes a bug in pie label rendering). +support super-scripted labels, improved the tick label generation for +NumberAxis, added a new ProbabilityAxis (patch from John St. Ledger), +enhanced XYStepAreaRenderer to support a 'stepPoint' attribute (patch from +Lukasz Rzeszotarski), provided configurable direction labels in +CompassFormat (patch from Simon Legner), added methods to add data item +objects to VectorSeries, XIntervalSeries, YIntervalSeries and +XYIntervalSeries (for consistency with other data series objects), +improved the TimeSeries range calculations, provided center text support +for the RingPlot class, and updated JCommon to version 1.0.22 (this fixes +a bug in pie label rendering). Bug Fixes: Modified: branches/jfreechart-1.0.x-branch/README.txt =================================================================== --- branches/jfreechart-1.0.x-branch/README.txt 2014-07-03 20:26:42 UTC (rev 3245) +++ branches/jfreechart-1.0.x-branch/README.txt 2014-07-03 20:28:47 UTC (rev 3246) @@ -2,7 +2,7 @@ * JFREECHART: Version 1.0.18 * ******************************** -?? July 2014 +3 July 2014 (C)opyright 2000-2014, by Object Refinery Limited and Contributors. @@ -161,9 +161,10 @@ -------------- A list of changes in recent versions: -1.0.18 : (??-Jul-2014) - - added JavaFX support; +1.0.18 : (3-Jul-2014) + - added JavaFX support via FXGraphics2D; - improved LogAxis labelling; + - improved numeric tick labelling; - center text support in RingPlot; - 'stepPoint' attribute in the XYStepAreaRenderer; - other minor improvements and bug fixes, see the NEWS and ChangeLog This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 20:26:49
|
Revision: 3245 http://sourceforge.net/p/jfreechart/code/3245 Author: mungady Date: 2014-07-03 20:26:42 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Fix method name. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/LogAxisTest.java Modified: branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/LogAxisTest.java =================================================================== --- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/LogAxisTest.java 2014-07-03 20:24:54 UTC (rev 3244) +++ branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/LogAxisTest.java 2014-07-03 20:26:42 UTC (rev 3245) @@ -270,7 +270,7 @@ * Checks that a TickUnit with a size of 0 doesn't crash. */ @Test - public void testrefreshTicksWithZeroTickUnit() { + public void testRefreshTicksWithZeroTickUnit() { LogAxis axis = new LogAxis(); AxisState state = new AxisState(); BufferedImage image = new BufferedImage(200, 100, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 20:24:57
|
Revision: 3244 http://sourceforge.net/p/jfreechart/code/3244 Author: mungady Date: 2014-07-03 20:24:54 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Fix broken tests. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/TickUnitsTest.java Modified: branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/TickUnitsTest.java =================================================================== --- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/TickUnitsTest.java 2014-07-03 20:23:26 UTC (rev 3243) +++ branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/TickUnitsTest.java 2014-07-03 20:24:54 UTC (rev 3244) @@ -40,6 +40,7 @@ package org.jfree.chart.axis; +import java.text.DecimalFormat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -56,7 +57,8 @@ */ @Test public void testSerialization() { - TickUnits t1 = (TickUnits) NumberAxis.createIntegerTickUnits(); + TickUnits t1 = new TickUnits(); + t1.add(new NumberTickUnit(10, new DecimalFormat("0.00"))); TickUnits t2 = (TickUnits) TestUtilities.serialised(t1); assertEquals(t1, t2); } @@ -66,7 +68,8 @@ */ @Test public void testCloning() throws CloneNotSupportedException { - TickUnits t1 = (TickUnits) NumberAxis.createIntegerTickUnits(); + TickUnits t1 = new TickUnits(); + t1.add(new NumberTickUnit(10, new DecimalFormat("0.00"))); TickUnits t2 = (TickUnits) t1.clone(); assertTrue(t1 != t2); assertTrue(t1.getClass() == t2.getClass()); @@ -78,8 +81,10 @@ */ @Test public void testEquals() { - TickUnits t1 = (TickUnits) NumberAxis.createIntegerTickUnits(); - TickUnits t2 = (TickUnits) NumberAxis.createIntegerTickUnits(); + TickUnits t1 = new TickUnits(); + t1.add(new NumberTickUnit(10, new DecimalFormat("0.00"))); + TickUnits t2 = new TickUnits(); + t2.add(new NumberTickUnit(10, new DecimalFormat("0.00"))); assertTrue(t1.equals(t2)); assertTrue(t2.equals(t1)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 20:23:30
|
Revision: 3243 http://sourceforge.net/p/jfreechart/code/3243 Author: mungady Date: 2014-07-03 20:23:26 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Make axis line thinner. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/Axis.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/Axis.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/Axis.java 2014-07-03 19:48:46 UTC (rev 3242) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/Axis.java 2014-07-03 20:23:26 UTC (rev 3243) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * --------- * Axis.java * --------- - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): Bill Kelemen; @@ -157,7 +157,7 @@ public static final Paint DEFAULT_AXIS_LINE_PAINT = Color.gray; /** The default axis line stroke. */ - public static final Stroke DEFAULT_AXIS_LINE_STROKE = new BasicStroke(1.0f); + public static final Stroke DEFAULT_AXIS_LINE_STROKE = new BasicStroke(0.5f); /** The default tick labels visibility. */ public static final boolean DEFAULT_TICK_LABELS_VISIBLE = true; @@ -177,7 +177,7 @@ public static final boolean DEFAULT_TICK_MARKS_VISIBLE = true; /** The default tick stroke. */ - public static final Stroke DEFAULT_TICK_MARK_STROKE = new BasicStroke(1); + public static final Stroke DEFAULT_TICK_MARK_STROKE = new BasicStroke(0.5f); /** The default tick paint. */ public static final Paint DEFAULT_TICK_MARK_PAINT = Color.gray; @@ -290,7 +290,7 @@ /** * A reference back to the plot that the axis is assigned to (can be - * <code>null</code>). + * {@code null}). */ private transient Plot plot; @@ -300,7 +300,7 @@ /** * Constructs an axis, using default values where necessary. * - * @param label the axis label (<code>null</code> permitted). + * @param label the axis label ({@code null} permitted). */ protected Axis(String label) { @@ -366,7 +366,7 @@ /** * Returns the label for the axis. * - * @return The label for the axis (<code>null</code> possible). + * @return The label for the axis ({@code null} possible). * * @see #getLabelFont() * @see #getLabelPaint() @@ -380,7 +380,7 @@ * Sets the label for the axis and sends an {@link AxisChangeEvent} to all * registered listeners. * - * @param label the new label (<code>null</code> permitted). + * @param label the new label ({@code null} permitted). * * @see #getLabel() * @see #setLabelFont(Font) @@ -394,9 +394,9 @@ /** * Returns the attributed label (the returned value is a copy, so * modifying it will not impact the state of the axis). The default value - * is <code>null</code>. + * is {@code null}. * - * @return The attributed label (possibly <code>null</code>). + * @return The attributed label (possibly {@code null}). * * @since 1.0.16 */ @@ -414,7 +414,7 @@ * convenience method that converts the string into an * <code>AttributedString</code> using the current font attributes. * - * @param label the label (<code>null</code> permitted). + * @param label the label ({@code null} permitted). * * @since 1.0.16 */ @@ -426,7 +426,7 @@ * Sets the attributed label for the axis and sends an * {@link AxisChangeEvent} to all registered listeners. * - * @param label the label (<code>null</code> permitted). + * @param label the label ({@code null} permitted). * * @since 1.0.16 */ @@ -443,9 +443,9 @@ * Creates and returns an <code>AttributedString</code> with the specified * text and the labelFont and labelPaint applied as attributes. * - * @param label the label (<code>null</code> permitted). + * @param label the label ({@code null} permitted). * - * @return An attributed string or <code>null</code>. + * @return An attributed string or {@code null}. * * @since 1.0.16 */ @@ -461,7 +461,7 @@ /** * Returns the font for the axis label. * - * @return The font (never <code>null</code>). + * @return The font (never {@code null}). * * @see #setLabelFont(Font) */ @@ -473,7 +473,7 @@ * Sets the font for the axis label and sends an {@link AxisChangeEvent} * to all registered listeners. * - * @param font the font (<code>null</code> not permitted). + * @param font the font ({@code null} not permitted). * * @see #getLabelFont() */ @@ -488,7 +488,7 @@ /** * Returns the color/shade used to draw the axis label. * - * @return The paint (never <code>null</code>). + * @return The paint (never {@code null}). * * @see #setLabelPaint(Paint) */ @@ -500,7 +500,7 @@ * Sets the paint used to draw the axis label and sends an * {@link AxisChangeEvent} to all registered listeners. * - * @param paint the paint (<code>null</code> not permitted). + * @param paint the paint ({@code null} not permitted). * * @see #getLabelPaint() */ @@ -514,7 +514,7 @@ * Returns the insets for the label (that is, the amount of blank space * that should be left around the label). * - * @return The label insets (never <code>null</code>). + * @return The label insets (never {@code null}). * * @see #setLabelInsets(RectangleInsets) */ @@ -526,7 +526,7 @@ * Sets the insets for the axis label, and sends an {@link AxisChangeEvent} * to all registered listeners. * - * @param insets the insets (<code>null</code> not permitted). + * @param insets the insets ({@code null} not permitted). * * @see #getLabelInsets() */ @@ -538,7 +538,7 @@ * Sets the insets for the axis label, and sends an {@link AxisChangeEvent} * to all registered listeners. * - * @param insets the insets (<code>null</code> not permitted). + * @param insets the insets ({@code null} not permitted). * @param notify notify listeners? * * @since 1.0.10 @@ -581,7 +581,7 @@ * Returns the location of the axis label. The default is * {@link AxisLabelLocation#MIDDLE}. * - * @return The location of the axis label (never <code>null</code>). + * @return The location of the axis label (never {@code null}). * * @since 1.0.16 */ @@ -593,7 +593,7 @@ * Sets the axis label location and sends an {@link AxisChangeEvent} to * all registered listeners. * - * @param location the new location (<code>null</code> not permitted). + * @param location the new location ({@code null} not permitted). * * @since 1.0.16 */ @@ -634,7 +634,7 @@ /** * Returns the paint used to draw the axis line. * - * @return The paint (never <code>null</code>). + * @return The paint (never {@code null}). * * @see #setAxisLinePaint(Paint) */ @@ -646,7 +646,7 @@ * Sets the paint used to draw the axis line and sends an * {@link AxisChangeEvent} to all registered listeners. * - * @param paint the paint (<code>null</code> not permitted). + * @param paint the paint ({@code null} not permitted). * * @see #getAxisLinePaint() */ @@ -659,7 +659,7 @@ /** * Returns the stroke used to draw the axis line. * - * @return The stroke (never <code>null</code>). + * @return The stroke (never {@code null}). * * @see #setAxisLineStroke(Stroke) */ @@ -671,7 +671,7 @@ * Sets the stroke used to draw the axis line and sends an * {@link AxisChangeEvent} to all registered listeners. * - * @param stroke the stroke (<code>null</code> not permitted). + * @param stroke the stroke ({@code null} not permitted). * * @see #getAxisLineStroke() */ @@ -750,7 +750,7 @@ /** * Returns the font used for the tick labels (if showing). * - * @return The font (never <code>null</code>). + * @return The font (never {@code null}). * * @see #setTickLabelFont(Font) */ @@ -762,7 +762,7 @@ * Sets the font for the tick labels and sends an {@link AxisChangeEvent} * to all registered listeners. * - * @param font the font (<code>null</code> not allowed). + * @param font the font ({@code null} not allowed). * * @see #getTickLabelFont() */ @@ -789,7 +789,7 @@ * Sets the paint used to draw tick labels (if they are showing) and * sends an {@link AxisChangeEvent} to all registered listeners. * - * @param paint the paint (<code>null</code> not permitted). + * @param paint the paint ({@code null} not permitted). * * @see #getTickLabelPaint() */ @@ -802,7 +802,7 @@ /** * Returns the insets for the tick labels. * - * @return The insets (never <code>null</code>). + * @return The insets (never {@code null}). * * @see #setTickLabelInsets(RectangleInsets) */ @@ -814,7 +814,7 @@ * Sets the insets for the tick labels and sends an {@link AxisChangeEvent} * to all registered listeners. * - * @param insets the insets (<code>null</code> not permitted). + * @param insets the insets ({@code null} not permitted). * * @see #getTickLabelInsets() */ @@ -907,7 +907,7 @@ /** * Returns the stroke used to draw tick marks. * - * @return The stroke (never <code>null</code>). + * @return The stroke (never {@code null}). * * @see #setTickMarkStroke(Stroke) */ @@ -919,7 +919,7 @@ * Sets the stroke used to draw tick marks and sends * an {@link AxisChangeEvent} to all registered listeners. * - * @param stroke the stroke (<code>null</code> not permitted). + * @param stroke the stroke ({@code null} not permitted). * * @see #getTickMarkStroke() */ @@ -934,7 +934,7 @@ /** * Returns the paint used to draw tick marks (if they are showing). * - * @return The paint (never <code>null</code>). + * @return The paint (never {@code null}). * * @see #setTickMarkPaint(Paint) */ @@ -946,7 +946,7 @@ * Sets the paint used to draw tick marks and sends an * {@link AxisChangeEvent} to all registered listeners. * - * @param paint the paint (<code>null</code> not permitted). + * @param paint the paint ({@code null} not permitted). * * @see #getTickMarkPaint() */ @@ -1016,10 +1016,9 @@ /** * Returns the plot that the axis is assigned to. This method will return - * <code>null</code> if the axis is not currently assigned to a plot. + * {@code null} if the axis is not currently assigned to a plot. * - * @return The plot that the axis is assigned to (possibly - * <code>null</code>). + * @return The plot that the axis is assigned to (possibly {@code null}). * * @see #setPlot(Plot) */ @@ -1097,22 +1096,19 @@ * Draws the axis on a Java 2D graphics device (such as the screen or a * printer). * - * @param g2 the graphics device (<code>null</code> not permitted). + * @param g2 the graphics device ({@code null} not permitted). * @param cursor the cursor location (determines where to draw the axis). * @param plotArea the area within which the axes and plot should be drawn. * @param dataArea the area within which the data should be drawn. - * @param edge the axis location (<code>null</code> not permitted). + * @param edge the axis location ({@code null} not permitted). * @param plotState collects information about the plot - * (<code>null</code> permitted). + * ({@code null} permitted). * - * @return The axis state (never <code>null</code>). + * @return The axis state (never {@code null}). */ - public abstract AxisState draw(Graphics2D g2, - double cursor, - Rectangle2D plotArea, - Rectangle2D dataArea, - RectangleEdge edge, - PlotRenderingInfo plotState); + public abstract AxisState draw(Graphics2D g2, double cursor, + Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, + PlotRenderingInfo plotState); /** * Calculates the positions of the ticks for the axis, storing the results @@ -1336,7 +1332,7 @@ * @param plotArea the plot area. * @param dataArea the area inside the axes. * @param edge the location of the axis. - * @param state the axis state (<code>null</code> not permitted). + * @param state the axis state ({@code null} not permitted). * * @return Information about the axis. */ @@ -1433,7 +1429,7 @@ * @param plotArea the plot area. * @param dataArea the area inside the axes. * @param edge the location of the axis. - * @param state the axis state (<code>null</code> not permitted). + * @param state the axis state ({@code null} not permitted). * * @return Information about the axis. * @@ -1576,7 +1572,7 @@ /** * Tests this axis for equality with another object. * - * @param obj the object (<code>null</code> permitted). + * @param obj the object ({@code null} permitted). * * @return <code>true</code> or <code>false</code>. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 19:48:54
|
Revision: 3242 http://sourceforge.net/p/jfreechart/code/3242 Author: mungady Date: 2014-07-03 19:48:46 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Include build-fx.xml in the distribution. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/ant/build-fx.xml branches/jfreechart-1.0.x-branch/ant/build.xml Modified: branches/jfreechart-1.0.x-branch/ant/build-fx.xml =================================================================== --- branches/jfreechart-1.0.x-branch/ant/build-fx.xml 2014-07-03 15:44:50 UTC (rev 3241) +++ branches/jfreechart-1.0.x-branch/ant/build-fx.xml 2014-07-03 19:48:46 UTC (rev 3242) @@ -1,4 +1,4 @@ -<!-- An ANT build file for JFreeChart --> +<!-- An ANT build file for JFreeChart including JavaFX support --> <!-- Written by David Gilbert. --> @@ -20,7 +20,7 @@ <target name="initialise" description="Initialise required settings."> <tstamp /> <property name="jfreechart.name" value="jfreechart" /> - <property name="jfreechart.version" value="1.0.18-pre-fx" /> + <property name="jfreechart.version" value="1.0.18-fx" /> <property name="jfreechart-bundle-file" value="${jfreechart.name}-${jfreechart.version}-bundle.jar" /> <property name="jcommon.name" value="jcommon" /> <property name="jcommon.version" value="1.0.22" /> @@ -244,6 +244,7 @@ <!-- copy across ant build files --> <copy file="${basedir}/ant/build.xml" tofile="${basedir}/distribution/ant/build.xml" /> + <copy file="${basedir}/ant/build-fx.xml" tofile="${basedir}/distribution/ant/build-fx.xml" /> <copy file="${basedir}/ant/build-swt.xml" tofile="${basedir}/distribution/ant/build-swt.xml" /> <!-- copy across checkstyle property file --> Modified: branches/jfreechart-1.0.x-branch/ant/build.xml =================================================================== --- branches/jfreechart-1.0.x-branch/ant/build.xml 2014-07-03 15:44:50 UTC (rev 3241) +++ branches/jfreechart-1.0.x-branch/ant/build.xml 2014-07-03 19:48:46 UTC (rev 3242) @@ -246,6 +246,7 @@ <!-- copy across ant build files --> <copy file="${basedir}/ant/build.xml" tofile="${basedir}/distribution/ant/build.xml" /> + <copy file="${basedir}/ant/build-fx.xml" tofile="${basedir}/distribution/ant/build-fx.xml" /> <copy file="${basedir}/ant/build-swt.xml" tofile="${basedir}/distribution/ant/build-swt.xml" /> <!-- copy across checkstyle property file --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 15:44:57
|
Revision: 3241 http://sourceforge.net/p/jfreechart/code/3241 Author: mungady Date: 2014-07-03 15:44:50 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Update dependencies. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogAxis.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/NumberAxis.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/NumberTickUnitSource.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/ValueAxis.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogAxis.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogAxis.java 2014-07-03 15:31:08 UTC (rev 3240) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogAxis.java 2014-07-03 15:44:50 UTC (rev 3241) @@ -388,7 +388,8 @@ RectangleEdge edge) { Range range = getRange(); - double axisMin = calculateLog(range.getLowerBound()); + double axisMin = calculateLog(Math.max(this.smallestValue, + range.getLowerBound())); double axisMax = calculateLog(range.getUpperBound()); double min = 0.0; @@ -730,7 +731,8 @@ // select a tick unit that is the next one bigger than the current // (log) range divided by 50 Range range = getRange(); - double logAxisMin = calculateLog(range.getLowerBound()); + double logAxisMin = calculateLog(Math.max(this.smallestValue, + range.getLowerBound())); double logAxisMax = calculateLog(range.getUpperBound()); double size = (logAxisMax - logAxisMin) / 50; TickUnitSource tickUnits = getStandardTickUnits(); @@ -797,7 +799,8 @@ // select a tick unit that is the next one bigger than the current // (log) range divided by 50 Range range = getRange(); - double logAxisMin = calculateLog(range.getLowerBound()); + double logAxisMin = calculateLog(Math.max(this.smallestValue, + range.getLowerBound())); double logAxisMax = calculateLog(range.getUpperBound()); double size = (logAxisMax - logAxisMin) / 50; TickUnitSource tickUnits = getStandardTickUnits(); Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/NumberAxis.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/NumberAxis.java 2014-07-03 15:31:08 UTC (rev 3240) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/NumberAxis.java 2014-07-03 15:44:50 UTC (rev 3241) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -690,92 +690,7 @@ * @see #createIntegerTickUnits() */ public static TickUnitSource createStandardTickUnits() { - - TickUnits units = new TickUnits(); - DecimalFormat df000 = new DecimalFormat("0.0000000000"); - DecimalFormat df00 = new DecimalFormat("0.000000000"); - DecimalFormat df0 = new DecimalFormat("0.00000000"); - DecimalFormat df1 = new DecimalFormat("0.0000000"); - DecimalFormat df2 = new DecimalFormat("0.000000"); - DecimalFormat df3 = new DecimalFormat("0.00000"); - DecimalFormat df4 = new DecimalFormat("0.0000"); - DecimalFormat df5 = new DecimalFormat("0.000"); - DecimalFormat df6 = new DecimalFormat("0.00"); - DecimalFormat df7 = new DecimalFormat("0.0"); - DecimalFormat df8 = new DecimalFormat("#,##0"); - DecimalFormat df9 = new DecimalFormat("#,###,##0"); - DecimalFormat df10 = new DecimalFormat("#,###,###,##0"); - - // we can add the units in any order, the TickUnits collection will - // sort them... - units.add(new NumberTickUnit(0.000000001, df00, 2)); - units.add(new NumberTickUnit(0.00000001, df0, 2)); - units.add(new NumberTickUnit(0.0000001, df1, 2)); - units.add(new NumberTickUnit(0.000001, df2, 2)); - units.add(new NumberTickUnit(0.00001, df3, 2)); - units.add(new NumberTickUnit(0.0001, df4, 2)); - units.add(new NumberTickUnit(0.001, df5, 2)); - units.add(new NumberTickUnit(0.01, df6, 2)); - units.add(new NumberTickUnit(0.1, df7, 2)); - units.add(new NumberTickUnit(1, df8, 2)); - units.add(new NumberTickUnit(10, df8, 2)); - units.add(new NumberTickUnit(100, df8, 2)); - units.add(new NumberTickUnit(1000, df8, 2)); - units.add(new NumberTickUnit(10000, df8, 2)); - units.add(new NumberTickUnit(100000, df8, 2)); - units.add(new NumberTickUnit(1000000, df9, 2)); - units.add(new NumberTickUnit(10000000, df9, 2)); - units.add(new NumberTickUnit(100000000, df9, 2)); - units.add(new NumberTickUnit(1000000000, df10, 2)); - units.add(new NumberTickUnit(10000000000.0, df10, 2)); - units.add(new NumberTickUnit(100000000000.0, df10, 2)); - - units.add(new NumberTickUnit(0.0000000025, df000, 5)); - units.add(new NumberTickUnit(0.000000025, df00, 5)); - units.add(new NumberTickUnit(0.00000025, df0, 5)); - units.add(new NumberTickUnit(0.0000025, df1, 5)); - units.add(new NumberTickUnit(0.000025, df2, 5)); - units.add(new NumberTickUnit(0.00025, df3, 5)); - units.add(new NumberTickUnit(0.0025, df4, 5)); - units.add(new NumberTickUnit(0.025, df5, 5)); - units.add(new NumberTickUnit(0.25, df6, 5)); - units.add(new NumberTickUnit(2.5, df7, 5)); - units.add(new NumberTickUnit(25, df8, 5)); - units.add(new NumberTickUnit(250, df8, 5)); - units.add(new NumberTickUnit(2500, df8, 5)); - units.add(new NumberTickUnit(25000, df8, 5)); - units.add(new NumberTickUnit(250000, df8, 5)); - units.add(new NumberTickUnit(2500000, df9, 5)); - units.add(new NumberTickUnit(25000000, df9, 5)); - units.add(new NumberTickUnit(250000000, df9, 5)); - units.add(new NumberTickUnit(2500000000.0, df10, 5)); - units.add(new NumberTickUnit(25000000000.0, df10, 5)); - units.add(new NumberTickUnit(250000000000.0, df10, 5)); - - units.add(new NumberTickUnit(0.000000005, df00, 5)); - units.add(new NumberTickUnit(0.00000005, df0, 5)); - units.add(new NumberTickUnit(0.0000005, df1, 5)); - units.add(new NumberTickUnit(0.000005, df2, 5)); - units.add(new NumberTickUnit(0.00005, df3, 5)); - units.add(new NumberTickUnit(0.0005, df4, 5)); - units.add(new NumberTickUnit(0.005, df5, 5)); - units.add(new NumberTickUnit(0.05, df6, 5)); - units.add(new NumberTickUnit(0.5, df7, 5)); - units.add(new NumberTickUnit(5L, df8, 5)); - units.add(new NumberTickUnit(50L, df8, 5)); - units.add(new NumberTickUnit(500L, df8, 5)); - units.add(new NumberTickUnit(5000L, df8, 5)); - units.add(new NumberTickUnit(50000L, df8, 5)); - units.add(new NumberTickUnit(500000L, df8, 5)); - units.add(new NumberTickUnit(5000000L, df9, 5)); - units.add(new NumberTickUnit(50000000L, df9, 5)); - units.add(new NumberTickUnit(500000000L, df9, 5)); - units.add(new NumberTickUnit(5000000000L, df10, 5)); - units.add(new NumberTickUnit(50000000000L, df10, 5)); - units.add(new NumberTickUnit(500000000000L, df10, 5)); - - return units; - + return new NumberTickUnitSource(); } /** @@ -787,41 +702,7 @@ * @see #createStandardTickUnits() */ public static TickUnitSource createIntegerTickUnits() { - TickUnits units = new TickUnits(); - DecimalFormat df0 = new DecimalFormat("0"); - DecimalFormat df1 = new DecimalFormat("#,##0"); - units.add(new NumberTickUnit(1, df0, 2)); - units.add(new NumberTickUnit(2, df0, 2)); - units.add(new NumberTickUnit(5, df0, 5)); - units.add(new NumberTickUnit(10, df0, 2)); - units.add(new NumberTickUnit(20, df0, 2)); - units.add(new NumberTickUnit(50, df0, 5)); - units.add(new NumberTickUnit(100, df0, 2)); - units.add(new NumberTickUnit(200, df0, 2)); - units.add(new NumberTickUnit(500, df0, 5)); - units.add(new NumberTickUnit(1000, df1, 2)); - units.add(new NumberTickUnit(2000, df1, 2)); - units.add(new NumberTickUnit(5000, df1, 5)); - units.add(new NumberTickUnit(10000, df1, 2)); - units.add(new NumberTickUnit(20000, df1, 2)); - units.add(new NumberTickUnit(50000, df1, 5)); - units.add(new NumberTickUnit(100000, df1, 2)); - units.add(new NumberTickUnit(200000, df1, 2)); - units.add(new NumberTickUnit(500000, df1, 5)); - units.add(new NumberTickUnit(1000000, df1, 2)); - units.add(new NumberTickUnit(2000000, df1, 2)); - units.add(new NumberTickUnit(5000000, df1, 5)); - units.add(new NumberTickUnit(10000000, df1, 2)); - units.add(new NumberTickUnit(20000000, df1, 2)); - units.add(new NumberTickUnit(50000000, df1, 5)); - units.add(new NumberTickUnit(100000000, df1, 2)); - units.add(new NumberTickUnit(200000000, df1, 2)); - units.add(new NumberTickUnit(500000000, df1, 5)); - units.add(new NumberTickUnit(1000000000, df1, 2)); - units.add(new NumberTickUnit(2000000000, df1, 2)); - units.add(new NumberTickUnit(5000000000.0, df1, 5)); - units.add(new NumberTickUnit(10000000000.0, df1, 2)); - return units; + return new NumberTickUnitSource(true); } /** @@ -840,70 +721,8 @@ * @see #setStandardTickUnits(TickUnitSource) */ public static TickUnitSource createStandardTickUnits(Locale locale) { - - TickUnits units = new TickUnits(); NumberFormat numberFormat = NumberFormat.getNumberInstance(locale); - // we can add the units in any order, the TickUnits collection will - // sort them... - units.add(new NumberTickUnit(0.0000001, numberFormat, 2)); - units.add(new NumberTickUnit(0.000001, numberFormat, 2)); - units.add(new NumberTickUnit(0.00001, numberFormat, 2)); - units.add(new NumberTickUnit(0.0001, numberFormat, 2)); - units.add(new NumberTickUnit(0.001, numberFormat, 2)); - units.add(new NumberTickUnit(0.01, numberFormat, 2)); - units.add(new NumberTickUnit(0.1, numberFormat, 2)); - units.add(new NumberTickUnit(1, numberFormat, 2)); - units.add(new NumberTickUnit(10, numberFormat, 2)); - units.add(new NumberTickUnit(100, numberFormat, 2)); - units.add(new NumberTickUnit(1000, numberFormat, 2)); - units.add(new NumberTickUnit(10000, numberFormat, 2)); - units.add(new NumberTickUnit(100000, numberFormat, 2)); - units.add(new NumberTickUnit(1000000, numberFormat, 2)); - units.add(new NumberTickUnit(10000000, numberFormat, 2)); - units.add(new NumberTickUnit(100000000, numberFormat, 2)); - units.add(new NumberTickUnit(1000000000, numberFormat, 2)); - units.add(new NumberTickUnit(10000000000.0, numberFormat, 2)); - - units.add(new NumberTickUnit(0.00000025, numberFormat, 5)); - units.add(new NumberTickUnit(0.0000025, numberFormat, 5)); - units.add(new NumberTickUnit(0.000025, numberFormat, 5)); - units.add(new NumberTickUnit(0.00025, numberFormat, 5)); - units.add(new NumberTickUnit(0.0025, numberFormat, 5)); - units.add(new NumberTickUnit(0.025, numberFormat, 5)); - units.add(new NumberTickUnit(0.25, numberFormat, 5)); - units.add(new NumberTickUnit(2.5, numberFormat, 5)); - units.add(new NumberTickUnit(25, numberFormat, 5)); - units.add(new NumberTickUnit(250, numberFormat, 5)); - units.add(new NumberTickUnit(2500, numberFormat, 5)); - units.add(new NumberTickUnit(25000, numberFormat, 5)); - units.add(new NumberTickUnit(250000, numberFormat, 5)); - units.add(new NumberTickUnit(2500000, numberFormat, 5)); - units.add(new NumberTickUnit(25000000, numberFormat, 5)); - units.add(new NumberTickUnit(250000000, numberFormat, 5)); - units.add(new NumberTickUnit(2500000000.0, numberFormat, 5)); - units.add(new NumberTickUnit(25000000000.0, numberFormat, 5)); - - units.add(new NumberTickUnit(0.0000005, numberFormat, 5)); - units.add(new NumberTickUnit(0.000005, numberFormat, 5)); - units.add(new NumberTickUnit(0.00005, numberFormat, 5)); - units.add(new NumberTickUnit(0.0005, numberFormat, 5)); - units.add(new NumberTickUnit(0.005, numberFormat, 5)); - units.add(new NumberTickUnit(0.05, numberFormat, 5)); - units.add(new NumberTickUnit(0.5, numberFormat, 5)); - units.add(new NumberTickUnit(5L, numberFormat, 5)); - units.add(new NumberTickUnit(50L, numberFormat, 5)); - units.add(new NumberTickUnit(500L, numberFormat, 5)); - units.add(new NumberTickUnit(5000L, numberFormat, 5)); - units.add(new NumberTickUnit(50000L, numberFormat, 5)); - units.add(new NumberTickUnit(500000L, numberFormat, 5)); - units.add(new NumberTickUnit(5000000L, numberFormat, 5)); - units.add(new NumberTickUnit(50000000L, numberFormat, 5)); - units.add(new NumberTickUnit(500000000L, numberFormat, 5)); - units.add(new NumberTickUnit(5000000000L, numberFormat, 5)); - units.add(new NumberTickUnit(50000000000L, numberFormat, 5)); - - return units; - + return new NumberTickUnitSource(false, numberFormat); } /** @@ -917,40 +736,8 @@ * @see #setStandardTickUnits(TickUnitSource) */ public static TickUnitSource createIntegerTickUnits(Locale locale) { - TickUnits units = new TickUnits(); NumberFormat numberFormat = NumberFormat.getNumberInstance(locale); - units.add(new NumberTickUnit(1, numberFormat, 2)); - units.add(new NumberTickUnit(2, numberFormat, 2)); - units.add(new NumberTickUnit(5, numberFormat, 5)); - units.add(new NumberTickUnit(10, numberFormat, 2)); - units.add(new NumberTickUnit(20, numberFormat, 2)); - units.add(new NumberTickUnit(50, numberFormat, 5)); - units.add(new NumberTickUnit(100, numberFormat, 2)); - units.add(new NumberTickUnit(200, numberFormat, 2)); - units.add(new NumberTickUnit(500, numberFormat, 5)); - units.add(new NumberTickUnit(1000, numberFormat, 2)); - units.add(new NumberTickUnit(2000, numberFormat, 2)); - units.add(new NumberTickUnit(5000, numberFormat, 5)); - units.add(new NumberTickUnit(10000, numberFormat, 2)); - units.add(new NumberTickUnit(20000, numberFormat, 2)); - units.add(new NumberTickUnit(50000, numberFormat, 5)); - units.add(new NumberTickUnit(100000, numberFormat, 2)); - units.add(new NumberTickUnit(200000, numberFormat, 2)); - units.add(new NumberTickUnit(500000, numberFormat, 5)); - units.add(new NumberTickUnit(1000000, numberFormat, 2)); - units.add(new NumberTickUnit(2000000, numberFormat, 2)); - units.add(new NumberTickUnit(5000000, numberFormat, 5)); - units.add(new NumberTickUnit(10000000, numberFormat, 2)); - units.add(new NumberTickUnit(20000000, numberFormat, 2)); - units.add(new NumberTickUnit(50000000, numberFormat, 5)); - units.add(new NumberTickUnit(100000000, numberFormat, 2)); - units.add(new NumberTickUnit(200000000, numberFormat, 2)); - units.add(new NumberTickUnit(500000000, numberFormat, 5)); - units.add(new NumberTickUnit(1000000000, numberFormat, 2)); - units.add(new NumberTickUnit(2000000000, numberFormat, 2)); - units.add(new NumberTickUnit(5000000000.0, numberFormat, 5)); - units.add(new NumberTickUnit(10000000000.0, numberFormat, 2)); - return units; + return new NumberTickUnitSource(true, numberFormat); } /** @@ -1096,12 +883,13 @@ TickUnitSource tickUnits = getStandardTickUnits(); TickUnit unit1 = tickUnits.getCeilingTickUnit(getTickUnit()); double unitHeight = lengthToJava2D(unit1.getSize(), dataArea, edge); - - // then extrapolate... - double guess = (tickLabelHeight / unitHeight) * unit1.getSize(); - - NumberTickUnit unit2 - = (NumberTickUnit) tickUnits.getCeilingTickUnit(guess); + double guess = unit1.getSize(); + if (unitHeight > 0) { + // then extrapolate... + guess = (tickLabelHeight / unitHeight) * unit1.getSize(); + } + NumberTickUnit unit2 = (NumberTickUnit) tickUnits.getCeilingTickUnit( + guess); double unit2Height = lengthToJava2D(unit2.getSize(), dataArea, edge); tickLabelHeight = estimateMaximumTickLabelHeight(g2); Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/NumberTickUnitSource.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/NumberTickUnitSource.java 2014-07-03 15:31:08 UTC (rev 3240) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/NumberTickUnitSource.java 2014-07-03 15:44:50 UTC (rev 3241) @@ -43,23 +43,51 @@ import java.io.Serializable; import java.text.DecimalFormat; import java.text.NumberFormat; +import org.jfree.util.ObjectUtilities; /** * A tick unit source implementation that returns NumberTickUnit instances - * that are multiples of 1 or 5 times some power of 10. + * that are multiples of 1, 2 or 5 times some power of 10. * * @since 1.0.18 */ public class NumberTickUnitSource implements TickUnitSource, Serializable { + private boolean integers; + private int power = 0; private int factor = 1; + + /** The number formatter to use (an override, it can be null). */ + private NumberFormat formatter; /** * Creates a new instance. */ public NumberTickUnitSource() { + this(false); + } + + /** + * Creates a new instance. + * + * @param integers show integers only. + */ + public NumberTickUnitSource(boolean integers) { + this(integers, null); + } + + /** + * Creates a new instance. + * + * @param integers show integers only? + * @param formatter a formatter for the axis tick labels ({@code null} + * permitted). + */ + public NumberTickUnitSource(boolean integers, NumberFormat formatter) { + this.integers = integers; + this.formatter = formatter; this.power = 0; this.factor = 1; } @@ -82,18 +110,41 @@ @Override public TickUnit getCeilingTickUnit(double size) { + if (Double.isInfinite(size)) { + throw new IllegalArgumentException("Must be finite."); + } this.power = (int) Math.ceil(Math.log10(size)); + if (this.integers) { + power = Math.max(this.power, 0); + } this.factor = 1; + boolean done = false; + // step down in size until the current size is too small or there are + // no more units + while (!done) { + done = !previous(); + if (getTickSize() < size) { + next(); + done = true; + } + } return new NumberTickUnit(getTickSize(), getTickLabelFormat(), getMinorTickCount()); } private boolean next() { if (factor == 1) { + factor = 2; + return true; + } + if (factor == 2) { factor = 5; return true; - } + } if (factor == 5) { + if (power == 300) { + return false; + } power++; factor = 1; return true; @@ -103,13 +154,20 @@ private boolean previous() { if (factor == 1) { + if (this.integers && power == 0 || power == -300) { + return false; + } factor = 5; power--; return true; } - if (factor == 5) { + if (factor == 2) { factor = 1; return true; + } + if (factor == 5) { + factor = 2; + return true; } throw new IllegalStateException("We should never get here."); } @@ -123,8 +181,12 @@ private DecimalFormat dfNeg2 = new DecimalFormat("0.00"); private DecimalFormat dfNeg1 = new DecimalFormat("0.0"); private DecimalFormat df0 = new DecimalFormat("#,##0"); - + private DecimalFormat df = new DecimalFormat("#.######E0"); + private NumberFormat getTickLabelFormat() { + if (this.formatter != null) { + return this.formatter; + } if (power == -4) { return dfNeg4; } @@ -140,7 +202,7 @@ if (power >= 0 && power <= 6) { return df0; } - return new DecimalFormat("0.#E0"); + return df; } private int getMinorTickCount() { @@ -154,6 +216,25 @@ @Override public boolean equals(Object obj) { - return (obj instanceof NumberTickUnitSource); + if (obj == this) { + return true; + } + if (!(obj instanceof NumberTickUnitSource)) { + return false; + } + NumberTickUnitSource that = (NumberTickUnitSource) obj; + if (this.integers != that.integers) { + return false; + } + if (!ObjectUtilities.equal(this.formatter, that.formatter)) { + return false; + } + if (this.power != that.power) { + return false; + } + if (this.factor != that.factor) { + return false; + } + return true; } } Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/ValueAxis.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/ValueAxis.java 2014-07-03 15:31:08 UTC (rev 3240) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/ValueAxis.java 2014-07-03 15:44:50 UTC (rev 3241) @@ -1621,16 +1621,18 @@ public void zoomRange(double lowerPercent, double upperPercent) { double start = this.range.getLowerBound(); double length = this.range.getLength(); - Range adjusted; + double r0, r1; if (isInverted()) { - adjusted = new Range(start + (length * (1 - upperPercent)), - start + (length * (1 - lowerPercent))); + r0 = start + (length * (1 - upperPercent)); + r1 = start + (length * (1 - lowerPercent)); } else { - adjusted = new Range(start + length * lowerPercent, - start + length * upperPercent); + r0 = start + length * lowerPercent; + r1 = start + length * upperPercent; } - setRange(adjusted); + if ((r1 > r0) && !Double.isInfinite(r1 - r0)) { + setRange(new Range(r0, r1)); + } } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 15:31:11
|
Revision: 3240 http://sourceforge.net/p/jfreechart/code/3240 Author: mungady Date: 2014-07-03 15:31:08 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Update dependencies. Added Paths: ----------- branches/jfreechart-1.0.x-branch/lib/jfreesvg-1.9.jar branches/jfreechart-1.0.x-branch/lib/orsoncharts-1.4-eval-nofx.jar branches/jfreechart-1.0.x-branch/lib/orsonpdf-1.6-eval.jar Removed Paths: ------------- branches/jfreechart-1.0.x-branch/lib/jfreesvg-1.7.jar branches/jfreechart-1.0.x-branch/lib/orsonpdf-1.4-eval.jar Deleted: branches/jfreechart-1.0.x-branch/lib/jfreesvg-1.7.jar =================================================================== (Binary files differ) Added: branches/jfreechart-1.0.x-branch/lib/jfreesvg-1.9.jar =================================================================== (Binary files differ) Index: branches/jfreechart-1.0.x-branch/lib/jfreesvg-1.9.jar =================================================================== --- branches/jfreechart-1.0.x-branch/lib/jfreesvg-1.9.jar 2014-07-03 15:23:58 UTC (rev 3239) +++ branches/jfreechart-1.0.x-branch/lib/jfreesvg-1.9.jar 2014-07-03 15:31:08 UTC (rev 3240) Property changes on: branches/jfreechart-1.0.x-branch/lib/jfreesvg-1.9.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: branches/jfreechart-1.0.x-branch/lib/orsoncharts-1.4-eval-nofx.jar =================================================================== (Binary files differ) Index: branches/jfreechart-1.0.x-branch/lib/orsoncharts-1.4-eval-nofx.jar =================================================================== --- branches/jfreechart-1.0.x-branch/lib/orsoncharts-1.4-eval-nofx.jar 2014-07-03 15:23:58 UTC (rev 3239) +++ branches/jfreechart-1.0.x-branch/lib/orsoncharts-1.4-eval-nofx.jar 2014-07-03 15:31:08 UTC (rev 3240) Property changes on: branches/jfreechart-1.0.x-branch/lib/orsoncharts-1.4-eval-nofx.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Deleted: branches/jfreechart-1.0.x-branch/lib/orsonpdf-1.4-eval.jar =================================================================== (Binary files differ) Added: branches/jfreechart-1.0.x-branch/lib/orsonpdf-1.6-eval.jar =================================================================== (Binary files differ) Index: branches/jfreechart-1.0.x-branch/lib/orsonpdf-1.6-eval.jar =================================================================== --- branches/jfreechart-1.0.x-branch/lib/orsonpdf-1.6-eval.jar 2014-07-03 15:23:58 UTC (rev 3239) +++ branches/jfreechart-1.0.x-branch/lib/orsonpdf-1.6-eval.jar 2014-07-03 15:31:08 UTC (rev 3240) Property changes on: branches/jfreechart-1.0.x-branch/lib/orsonpdf-1.6-eval.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 15:24:04
|
Revision: 3239 http://sourceforge.net/p/jfreechart/code/3239 Author: mungady Date: 2014-07-03 15:23:58 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Updated build script. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/ant/build.xml Modified: branches/jfreechart-1.0.x-branch/ant/build.xml =================================================================== --- branches/jfreechart-1.0.x-branch/ant/build.xml 2014-07-03 13:09:37 UTC (rev 3238) +++ branches/jfreechart-1.0.x-branch/ant/build.xml 2014-07-03 15:23:58 UTC (rev 3239) @@ -20,7 +20,7 @@ <target name="initialise" description="Initialise required settings."> <tstamp /> <property name="jfreechart.name" value="jfreechart" /> - <property name="jfreechart.version" value="1.0.18-pre" /> + <property name="jfreechart.version" value="1.0.18" /> <property name="jfreechart-bundle-file" value="${jfreechart.name}-${jfreechart.version}-bundle.jar" /> <property name="jcommon.name" value="jcommon" /> <property name="jcommon.version" value="1.0.22" /> @@ -29,7 +29,7 @@ <property name="jfreesvg.version" value="1.9" /> <property name="orsonpdf.name" value="orsonpdf" /> <property name="orsonpdf.version" value="1.6-eval" /> - <property name="orsoncharts.version" value="1.4-eval" /> + <property name="orsoncharts.version" value="1.4-eval-nofx" /> <property name="builddir" value="${basedir}/build" /> <property name="servlet.jar" value="${basedir}/lib/servlet.jar"/> <property name="junit.jar" value="${basedir}/lib/junit-4.11.jar"/> @@ -61,8 +61,8 @@ target="${target.version}"> <classpath refid="build.classpath" /> <include name="org/jfree/**"/> + <exclude name="org/jfree/chart/fx/**"/> <exclude name="org/jfree/chart/xml/**"/> - <exclude name="org/jfree/chart/fx/**"/> </javac> <!-- copy across gorilla.jpg --> @@ -154,6 +154,7 @@ <classpath refid="build.classpath" /> <packageset dir="${basedir}/source" defaultexcludes="yes"> <include name="org/jfree/**"/> + <exclude name="org/jfree/chart/fx/**"/> <exclude name="org/jfree/chart/xml/**"/> </packageset> </javadoc> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 13:09:40
|
Revision: 3238 http://sourceforge.net/p/jfreechart/code/3238 Author: mungady Date: 2014-07-03 13:09:37 +0000 (Thu, 03 Jul 2014) Log Message: ----------- 2014-07-01 David Gilbert <dav...@ob...> * org/jfree/chart/plot/CategoryPlot.java: Numerous changes to fix iteration over map based attributes, * org/jfree/chart/plot/XYPlot.java: Likewise. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/ChangeLog Modified: branches/jfreechart-1.0.x-branch/ChangeLog =================================================================== --- branches/jfreechart-1.0.x-branch/ChangeLog 2014-07-03 13:08:34 UTC (rev 3237) +++ branches/jfreechart-1.0.x-branch/ChangeLog 2014-07-03 13:09:37 UTC (rev 3238) @@ -1,4 +1,21 @@ 2014-07-01 David Gilbert <dav...@ob...> + + * org/jfree/chart/plot/CategoryPlot.java: Numerous changes to fix iteration + over map based attributes, + * org/jfree/chart/plot/XYPlot.java: Likewise. + +2014-07-01 David Gilbert <dav...@ob...> + + * org/jfree/chart/plot/Marker.java + (labelBackgroundColor): New field, + (Marker): Initialise new field, + (getLabelBackgroundColor): New method, + (setLabelBackgroundColor): Likewise, + (equals): Check new field, + * org/jfree/chart/renderer/AbstractCategoryItemRenderer.java + (drawRangeMarker): Paint background color. + +2014-07-01 David Gilbert <dav...@ob...> Patch #310 by Ricardo JL Rufino: * org/jfree/data/time/DynamicTimeSeriesCollection.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-03 13:08:40
|
Revision: 3237 http://sourceforge.net/p/jfreechart/code/3237 Author: mungady Date: 2014-07-03 13:08:34 +0000 (Thu, 03 Jul 2014) Log Message: ----------- Fix iteration over map based attributes. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/CategoryPlot.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/XYPlot.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/CategoryPlot.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/CategoryPlot.java 2014-07-03 12:47:47 UTC (rev 3236) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/CategoryPlot.java 2014-07-03 13:08:34 UTC (rev 3237) @@ -751,10 +751,7 @@ * @see #setDomainAxis(int, CategoryAxis) */ public CategoryAxis getDomainAxis(int index) { - CategoryAxis result = null; - if (index < this.domainAxes.size()) { - result = (CategoryAxis) this.domainAxes.get(index); - } + CategoryAxis result = (CategoryAxis) this.domainAxes.get(index); if (result == null) { Plot parent = getParent(); if (parent instanceof CategoryPlot) { @@ -875,10 +872,7 @@ * @see #setDomainAxisLocation(int, AxisLocation) */ public AxisLocation getDomainAxisLocation(int index) { - AxisLocation result = null; - if (index < this.domainAxisLocations.size()) { - result = (AxisLocation) this.domainAxisLocations.get(index); - } + AxisLocation result = this.domainAxisLocations.get(index); if (result == null) { result = AxisLocation.getOpposite(getDomainAxisLocation(0)); } @@ -973,8 +967,7 @@ AxisLocation location = getDomainAxisLocation(index); if (location != null) { result = Plot.resolveDomainAxisLocation(location, this.orientation); - } - else { + } else { result = RectangleEdge.opposite(getDomainAxisEdge(0)); } return result; @@ -994,10 +987,9 @@ * to all registered listeners. */ public void clearDomainAxes() { - for (int i = 0; i < this.domainAxes.size(); i++) { - CategoryAxis axis = (CategoryAxis) this.domainAxes.get(i); - if (axis != null) { - axis.removeChangeListener(this); + for (CategoryAxis xAxis : this.domainAxes.values()) { + if (xAxis != null) { + xAxis.removeChangeListener(this); } } this.domainAxes.clear(); @@ -1008,10 +1000,9 @@ * Configures the domain axes. */ public void configureDomainAxes() { - for (int i = 0; i < this.domainAxes.size(); i++) { - CategoryAxis axis = (CategoryAxis) this.domainAxes.get(i); - if (axis != null) { - axis.configure(); + for (CategoryAxis xAxis : this.domainAxes.values()) { + if (xAxis != null) { + xAxis.configure(); } } } @@ -1035,10 +1026,7 @@ * @return The axis (<code>null</code> possible). */ public ValueAxis getRangeAxis(int index) { - ValueAxis result = null; - if (index < this.rangeAxes.size()) { - result = (ValueAxis) this.rangeAxes.get(index); - } + ValueAxis result = this.rangeAxes.get(index); if (result == null) { Plot parent = getParent(); if (parent instanceof CategoryPlot) { @@ -1079,7 +1067,7 @@ * @param notify notify listeners? */ public void setRangeAxis(int index, ValueAxis axis, boolean notify) { - ValueAxis existing = (ValueAxis) this.rangeAxes.get(index); + ValueAxis existing = this.rangeAxes.get(index); if (existing != null) { existing.removeChangeListener(this); } @@ -1165,10 +1153,7 @@ * @see #setRangeAxisLocation(int, AxisLocation) */ public AxisLocation getRangeAxisLocation(int index) { - AxisLocation result = null; - if (index < this.rangeAxisLocations.size()) { - result = (AxisLocation) this.rangeAxisLocations.get(index); - } + AxisLocation result = this.rangeAxisLocations.get(index); if (result == null) { result = AxisLocation.getOpposite(getRangeAxisLocation(0)); } @@ -1274,10 +1259,9 @@ * to all registered listeners. */ public void clearRangeAxes() { - for (int i = 0; i < this.rangeAxes.size(); i++) { - ValueAxis axis = (ValueAxis) this.rangeAxes.get(i); - if (axis != null) { - axis.removeChangeListener(this); + for (ValueAxis yAxis : this.rangeAxes.values()) { + if (yAxis != null) { + yAxis.removeChangeListener(this); } } this.rangeAxes.clear(); @@ -1288,10 +1272,9 @@ * Configures the range axes. */ public void configureRangeAxes() { - for (int i = 0; i < this.rangeAxes.size(); i++) { - ValueAxis axis = (ValueAxis) this.rangeAxes.get(i); - if (axis != null) { - axis.configure(); + for (ValueAxis yAxis : this.rangeAxes.values()) { + if (yAxis != null) { + yAxis.configure(); } } } @@ -1308,20 +1291,17 @@ } /** - * Returns the dataset at the given index. + * Returns the dataset with the given index, or {@code null} if there is + * no dataset. * - * @param index the dataset index. + * @param index the dataset index (must be >= 0). * - * @return The dataset (possibly <code>null</code>). + * @return The dataset (possibly {@code null}). * * @see #setDataset(int, CategoryDataset) */ public CategoryDataset getDataset(int index) { - CategoryDataset result = null; - if (this.datasets.size() > index) { - result = (CategoryDataset) this.datasets.get(index); - } - return result; + return this.datasets.get(index); } /** @@ -1340,10 +1320,11 @@ } /** - * Sets a dataset for the plot. + * Sets a dataset for the plot and sends a change notification to all + * registered listeners. * - * @param index the dataset index. - * @param dataset the dataset (<code>null</code> permitted). + * @param index the dataset index (must be >= 0). + * @param dataset the dataset ({@code null} permitted). * * @see #getDataset(int) */ @@ -1376,21 +1357,19 @@ * Returns the index of the specified dataset, or <code>-1</code> if the * dataset does not belong to the plot. * - * @param dataset the dataset (<code>null</code> not permitted). + * @param dataset the dataset ({@code null} not permitted). * * @return The index. * * @since 1.0.11 */ public int indexOf(CategoryDataset dataset) { - int result = -1; - for (int i = 0; i < this.datasets.size(); i++) { - if (dataset == this.datasets.get(i)) { - result = i; - break; + for (Entry<Integer, CategoryDataset> entry: this.datasets.entrySet()) { + if (entry.getValue() == dataset) { + return entry.getKey(); } } - return result; + return -1; } /** @@ -1402,8 +1381,8 @@ * @see #getDomainAxisForDataset(int) */ public void mapDatasetToDomainAxis(int index, int axisIndex) { - List axisIndices = new java.util.ArrayList(1); - axisIndices.add(new Integer(axisIndex)); + List<Integer> axisIndices = new java.util.ArrayList<Integer>(1); + axisIndices.add(axisIndex); mapDatasetToDomainAxes(index, axisIndices); } @@ -1418,12 +1397,9 @@ * @since 1.0.12 */ public void mapDatasetToDomainAxes(int index, List axisIndices) { - if (index < 0) { - throw new IllegalArgumentException("Requires 'index' >= 0."); - } + ParamChecks.requireNonNegative(index, "index"); checkAxisIndices(axisIndices); - Integer key = new Integer(index); - this.datasetToDomainAxesMap.put(key, new ArrayList(axisIndices)); + this.datasetToDomainAxesMap.put(index, new ArrayList(axisIndices)); // fake a dataset change event to update axes... datasetChanged(new DatasetChangeEvent(this, getDataset(index))); } @@ -1464,16 +1440,14 @@ * Returns the domain axis for a dataset. You can change the axis for a * dataset using the {@link #mapDatasetToDomainAxis(int, int)} method. * - * @param index the dataset index. + * @param index the dataset index (must be >= 0). * * @return The domain axis. * * @see #mapDatasetToDomainAxis(int, int) */ public CategoryAxis getDomainAxisForDataset(int index) { - if (index < 0) { - throw new IllegalArgumentException("Negative 'index'."); - } + ParamChecks.requireNonNegative(index, "index"); CategoryAxis axis; List axisIndices = (List) this.datasetToDomainAxesMap.get( new Integer(index)); @@ -1481,8 +1455,7 @@ // the first axis in the list is used for data <--> Java2D Integer axisIndex = (Integer) axisIndices.get(0); axis = getDomainAxis(axisIndex.intValue()); - } - else { + } else { axis = getDomainAxis(0); } return axis; @@ -1513,12 +1486,9 @@ * @since 1.0.12 */ public void mapDatasetToRangeAxes(int index, List axisIndices) { - if (index < 0) { - throw new IllegalArgumentException("Requires 'index' >= 0."); - } + ParamChecks.requireNonNegative(index, "index"); checkAxisIndices(axisIndices); - Integer key = new Integer(index); - this.datasetToRangeAxesMap.put(key, new ArrayList(axisIndices)); + this.datasetToRangeAxesMap.put(index, new ArrayList(axisIndices)); // fake a dataset change event to update axes... datasetChanged(new DatasetChangeEvent(this, getDataset(index))); } @@ -1527,25 +1497,22 @@ * Returns the range axis for a dataset. You can change the axis for a * dataset using the {@link #mapDatasetToRangeAxis(int, int)} method. * - * @param index the dataset index. + * @param index the dataset index (must be >= 0). * * @return The range axis. * * @see #mapDatasetToRangeAxis(int, int) */ public ValueAxis getRangeAxisForDataset(int index) { - if (index < 0) { - throw new IllegalArgumentException("Negative 'index'."); - } - ValueAxis axis = null; + ParamChecks.requireNonNegative(index, "index"); + ValueAxis axis; List axisIndices = (List) this.datasetToRangeAxesMap.get( new Integer(index)); if (axisIndices != null) { // the first axis in the list is used for data <--> Java2D Integer axisIndex = (Integer) axisIndices.get(0); axis = getRangeAxis(axisIndex.intValue()); - } - else { + } else { axis = getRangeAxis(0); } return axis; @@ -1578,16 +1545,16 @@ * * @param index the renderer index. * - * @return The renderer (possibly <code>null</code>). + * @return The renderer (possibly {@code null}). * * @see #setRenderer(int, CategoryItemRenderer) */ public CategoryItemRenderer getRenderer(int index) { - CategoryItemRenderer result = null; - if (this.renderers.size() > index) { - result = (CategoryItemRenderer) this.renderers.get(index); + CategoryItemRenderer renderer = this.renderers.get(index); + if (renderer == null) { + return this.renderers.get(0); } - return result; + return renderer; } /** @@ -1691,14 +1658,15 @@ * @return The renderer (possibly <code>null</code>). */ public CategoryItemRenderer getRendererForDataset(CategoryDataset dataset) { - CategoryItemRenderer result = null; - for (int i = 0; i < this.datasets.size(); i++) { - if (this.datasets.get(i) == dataset) { - result = (CategoryItemRenderer) this.renderers.get(i); - break; - } + int datasetIndex = indexOf(dataset); + if (datasetIndex < 0) { + return null; + } + CategoryItemRenderer renderer = this.renderers.get(datasetIndex); + if (renderer == null) { + return getRenderer(); } - return result; + return renderer; } /** @@ -2207,10 +2175,9 @@ } LegendItemCollection result = new LegendItemCollection(); // get the legend items for the datasets... - int count = this.datasets.size(); - for (int datasetIndex = 0; datasetIndex < count; datasetIndex++) { - CategoryDataset dataset = getDataset(datasetIndex); + for (CategoryDataset dataset: this.datasets.values()) { if (dataset != null) { + int datasetIndex = indexOf(dataset); CategoryItemRenderer renderer = getRenderer(datasetIndex); if (renderer != null) { result.addAll(renderer.getLegendItems()); @@ -2237,8 +2204,7 @@ double java2D = 0.0; if (this.orientation == PlotOrientation.HORIZONTAL) { java2D = x; - } - else if (this.orientation == PlotOrientation.VERTICAL) { + } else if (this.orientation == PlotOrientation.VERTICAL) { java2D = y; } RectangleEdge edge = Plot.resolveRangeAxisLocation( @@ -2262,7 +2228,6 @@ */ @Override public void zoom(double percent) { - if (percent > 0.0) { double range = getRangeAxis().getRange().getLength(); double scaledRange = range * percent; @@ -2272,7 +2237,6 @@ else { getRangeAxis().setAutoRange(true); } - } /** @@ -2287,8 +2251,7 @@ public void annotationChanged(AnnotationChangeEvent event) { if (getParent() != null) { getParent().annotationChanged(event); - } - else { + } else { PlotChangeEvent e = new PlotChangeEvent(this); notifyListeners(e); } @@ -2303,18 +2266,14 @@ */ @Override public void datasetChanged(DatasetChangeEvent event) { - - int count = this.rangeAxes.size(); - for (int axisIndex = 0; axisIndex < count; axisIndex++) { - ValueAxis yAxis = getRangeAxis(axisIndex); + for (ValueAxis yAxis : this.rangeAxes.values()) { if (yAxis != null) { yAxis.configure(); } } if (getParent() != null) { getParent().datasetChanged(event); - } - else { + } else { PlotChangeEvent e = new PlotChangeEvent(this); e.setType(ChartChangeEventType.DATASET_UPDATED); notifyListeners(e); @@ -2334,15 +2293,13 @@ if (parent instanceof RendererChangeListener) { RendererChangeListener rcl = (RendererChangeListener) parent; rcl.rendererChanged(event); - } - else { + } else { // this should never happen with the existing code, but throw // an exception in case future changes make it possible... throw new RuntimeException( "The renderer has changed and I don't know what to do!"); } - } - else { + } else { configureRangeAxes(); PlotChangeEvent e = new PlotChangeEvent(this); notifyListeners(e); @@ -2425,8 +2382,7 @@ this.foregroundDomainMarkers.put(new Integer(index), markers); } markers.add(marker); - } - else if (layer == Layer.BACKGROUND) { + } else if (layer == Layer.BACKGROUND) { markers = (Collection) this.backgroundDomainMarkers.get( new Integer(index)); if (markers == null) { @@ -2608,8 +2564,7 @@ if (layer == Layer.FOREGROUND) { markers = (ArrayList) this.foregroundDomainMarkers.get(new Integer( index)); - } - else { + } else { markers = (ArrayList) this.backgroundDomainMarkers.get(new Integer( index)); } @@ -2697,8 +2652,7 @@ this.foregroundRangeMarkers.put(new Integer(index), markers); } markers.add(marker); - } - else if (layer == Layer.BACKGROUND) { + } else if (layer == Layer.BACKGROUND) { markers = (Collection) this.backgroundRangeMarkers.get( new Integer(index)); if (markers == null) { @@ -2891,8 +2845,7 @@ if (layer == Layer.FOREGROUND) { markers = (ArrayList) this.foregroundRangeMarkers.get(new Integer( index)); - } - else { + } else { markers = (ArrayList) this.backgroundRangeMarkers.get(new Integer( index)); } @@ -3348,7 +3301,7 @@ * registered listeners. */ public void clearAnnotations() { - for(int i = 0; i < this.annotations.size(); i++) { + for (int i = 0; i < this.annotations.size(); i++) { CategoryAnnotation annotation = (CategoryAnnotation) this.annotations.get(i); annotation.removeChangeListener(this); @@ -3391,8 +3344,7 @@ * @return The required space. */ protected AxisSpace calculateDomainAxisSpace(Graphics2D g2, - Rectangle2D plotArea, - AxisSpace space) { + Rectangle2D plotArea, AxisSpace space) { if (space == null) { space = new AxisSpace(); @@ -3400,13 +3352,12 @@ // reserve some space for the domain axis... if (this.fixedDomainAxisSpace != null) { - if (this.orientation == PlotOrientation.HORIZONTAL) { + if (this.orientation.isHorizontal()) { space.ensureAtLeast( this.fixedDomainAxisSpace.getLeft(), RectangleEdge.LEFT); space.ensureAtLeast(this.fixedDomainAxisSpace.getRight(), RectangleEdge.RIGHT); - } - else if (this.orientation == PlotOrientation.VERTICAL) { + } else if (this.orientation.isVertical()) { space.ensureAtLeast(this.fixedDomainAxisSpace.getTop(), RectangleEdge.TOP); space.ensureAtLeast(this.fixedDomainAxisSpace.getBottom(), @@ -3423,9 +3374,9 @@ } // reserve space for any domain axes... - for (int i = 0; i < this.domainAxes.size(); i++) { - Axis xAxis = (Axis) this.domainAxes.get(i); + for (CategoryAxis xAxis : this.domainAxes.values()) { if (xAxis != null) { + int i = getDomainAxisIndex(xAxis); RectangleEdge edge = getDomainAxisEdge(i); space = xAxis.reserveSpace(g2, this, plotArea, edge, space); } @@ -3446,8 +3397,7 @@ * @return The required space. */ protected AxisSpace calculateRangeAxisSpace(Graphics2D g2, - Rectangle2D plotArea, - AxisSpace space) { + Rectangle2D plotArea, AxisSpace space) { if (space == null) { space = new AxisSpace(); @@ -3455,24 +3405,22 @@ // reserve some space for the range axis... if (this.fixedRangeAxisSpace != null) { - if (this.orientation == PlotOrientation.HORIZONTAL) { + if (this.orientation.isHorizontal()) { space.ensureAtLeast(this.fixedRangeAxisSpace.getTop(), RectangleEdge.TOP); space.ensureAtLeast(this.fixedRangeAxisSpace.getBottom(), RectangleEdge.BOTTOM); - } - else if (this.orientation == PlotOrientation.VERTICAL) { + } else if (this.orientation == PlotOrientation.VERTICAL) { space.ensureAtLeast(this.fixedRangeAxisSpace.getLeft(), RectangleEdge.LEFT); space.ensureAtLeast(this.fixedRangeAxisSpace.getRight(), RectangleEdge.RIGHT); } - } - else { + } else { // reserve space for the range axes (if any)... - for (int i = 0; i < this.rangeAxes.size(); i++) { - Axis yAxis = (Axis) this.rangeAxes.get(i); + for (ValueAxis yAxis : this.rangeAxes.values()) { if (yAxis != null) { + int i = findRangeAxisIndex(yAxis); RectangleEdge edge = getRangeAxisEdge(i); space = yAxis.reserveSpace(g2, this, plotArea, edge, space); } @@ -3505,8 +3453,8 @@ * * @return The space required for the axes. */ - protected AxisSpace calculateAxisSpace(Graphics2D g2, - Rectangle2D plotArea) { + protected AxisSpace calculateAxisSpace(Graphics2D g2, + Rectangle2D plotArea) { AxisSpace space = new AxisSpace(); space = calculateRangeAxisSpace(g2, plotArea, space); space = calculateDomainAxisSpace(g2, plotArea, space); @@ -3568,8 +3516,7 @@ // default background... if (getRenderer() != null) { getRenderer().drawBackground(g2, this, dataArea); - } - else { + } else { drawBackground(g2, dataArea); } @@ -3640,10 +3587,12 @@ } // draw the markers... - for (int i = 0; i < this.renderers.size(); i++) { + for (CategoryItemRenderer renderer : this.renderers.values()) { + int i = getIndexOf(renderer); drawDomainMarkers(g2, dataArea, i, Layer.BACKGROUND); } - for (int i = 0; i < this.renderers.size(); i++) { + for (CategoryItemRenderer renderer : this.renderers.values()) { + int i = getIndexOf(renderer); drawRangeMarkers(g2, dataArea, i, Layer.BACKGROUND); } @@ -3656,23 +3605,18 @@ AlphaComposite.SRC_OVER, getForegroundAlpha())); DatasetRenderingOrder order = getDatasetRenderingOrder(); - if (order == DatasetRenderingOrder.FORWARD) { - for (int i = 0; i < this.datasets.size(); i++) { - foundData = render(g2, dataArea, i, state, crosshairState) + List<Integer> datasetIndices = getDatasetIndices(order); + for (int i : datasetIndices) { + foundData = render(g2, dataArea, i, state, crosshairState) || foundData; - } } - else { // DatasetRenderingOrder.REVERSE - for (int i = this.datasets.size() - 1; i >= 0; i--) { - foundData = render(g2, dataArea, i, state, crosshairState) - || foundData; - } - } + // draw the foreground markers... - for (int i = 0; i < this.renderers.size(); i++) { + List<Integer> rendererIndices = getRendererIndices(order); + for (int i : rendererIndices) { drawDomainMarkers(g2, dataArea, i, Layer.FOREGROUND); } - for (int i = 0; i < this.renderers.size(); i++) { + for (int i : rendererIndices) { drawRangeMarkers(g2, dataArea, i, Layer.FOREGROUND); } @@ -3747,6 +3691,51 @@ } /** + * Returns the indices of the non-null datasets in the specified order. + * + * @param order the order ({@code null} not permitted). + * + * @return The list of indices. + */ + private List<Integer> getDatasetIndices(DatasetRenderingOrder order) { + List<Integer> result = new ArrayList<Integer>(); + for (Map.Entry<Integer, CategoryDataset> entry : + this.datasets.entrySet()) { + if (entry.getValue() != null) { + result.add(entry.getKey()); + } + } + Collections.sort(result); + if (order == DatasetRenderingOrder.REVERSE) { + Collections.reverse(result); + } + return result; + } + + /** + * Returns the indices of the non-null renderers for the plot, in the + * specified order. + * + * @param order the rendering order {@code null} not permitted). + * + * @return A list of indices. + */ + private List<Integer> getRendererIndices(DatasetRenderingOrder order) { + List<Integer> result = new ArrayList<Integer>(); + for (Map.Entry<Integer, CategoryItemRenderer> entry: + this.renderers.entrySet()) { + if (entry.getValue() != null) { + result.add(entry.getKey()); + } + } + Collections.sort(result); + if (order == DatasetRenderingOrder.REVERSE) { + Collections.reverse(result); + } + return result; + } + + /** * Draws the plot background (the background color and/or image). * <P> * This method will be called during the chart drawing process and is @@ -3773,25 +3762,23 @@ * * @return A map containing the axis states. */ - protected Map drawAxes(Graphics2D g2, - Rectangle2D plotArea, - Rectangle2D dataArea, - PlotRenderingInfo plotState) { + protected Map drawAxes(Graphics2D g2, Rectangle2D plotArea, + Rectangle2D dataArea, PlotRenderingInfo plotState) { AxisCollection axisCollection = new AxisCollection(); // add domain axes to lists... - for (int index = 0; index < this.domainAxes.size(); index++) { - CategoryAxis xAxis = (CategoryAxis) this.domainAxes.get(index); + for (CategoryAxis xAxis : this.domainAxes.values()) { if (xAxis != null) { + int index = getDomainAxisIndex(xAxis); axisCollection.add(xAxis, getDomainAxisEdge(index)); } } // add range axes to lists... - for (int index = 0; index < this.rangeAxes.size(); index++) { - ValueAxis yAxis = (ValueAxis) this.rangeAxes.get(index); + for (ValueAxis yAxis : this.rangeAxes.values()) { if (yAxis != null) { + int index = findRangeAxisIndex(yAxis); axisCollection.add(yAxis, getRangeAxisEdge(index)); } } @@ -4300,21 +4287,20 @@ private List<CategoryDataset> datasetsMappedToDomainAxis(int axisIndex) { Integer key = new Integer(axisIndex); List<CategoryDataset> result = new ArrayList<CategoryDataset>(); - for (int i = 0; i < this.datasets.size(); i++) { + for (CategoryDataset dataset : this.datasets.values()) { + if (dataset == null) { + continue; + } + int i = indexOf(dataset); List mappedAxes = (List) this.datasetToDomainAxesMap.get( new Integer(i)); - CategoryDataset dataset = this.datasets.get(i); if (mappedAxes == null) { if (key.equals(ZERO)) { - if (dataset != null) { - result.add(dataset); - } + result.add(dataset); } } else { if (mappedAxes.contains(key)) { - if (dataset != null) { - result.add(dataset); - } + result.add(dataset); } } } @@ -4332,15 +4318,15 @@ private List datasetsMappedToRangeAxis(int index) { Integer key = new Integer(index); List result = new ArrayList(); - for (int i = 0; i < this.datasets.size(); i++) { + for (CategoryDataset dataset : this.datasets.values()) { + int i = indexOf(dataset); List mappedAxes = (List) this.datasetToRangeAxesMap.get( new Integer(i)); if (mappedAxes == null) { if (key.equals(ZERO)) { result.add(this.datasets.get(i)); } - } - else { + } else { if (mappedAxes.contains(key)) { result.add(this.datasets.get(i)); } @@ -4596,9 +4582,7 @@ if (!isRangePannable()) { return; } - int rangeAxisCount = getRangeAxisCount(); - for (int i = 0; i < rangeAxisCount; i++) { - ValueAxis axis = getRangeAxis(i); + for (ValueAxis axis : this.rangeAxes.values()) { if (axis == null) { continue; } @@ -4717,23 +4701,21 @@ Point2D source, boolean useAnchor) { // perform the zoom on each range axis - for (int i = 0; i < this.rangeAxes.size(); i++) { - ValueAxis rangeAxis = (ValueAxis) this.rangeAxes.get(i); - if (rangeAxis != null) { - if (useAnchor) { - // get the relevant source coordinate given the plot - // orientation - double sourceY = source.getY(); - if (this.orientation == PlotOrientation.HORIZONTAL) { - sourceY = source.getX(); - } - double anchorY = rangeAxis.java2DToValue(sourceY, - info.getDataArea(), getRangeAxisEdge()); - rangeAxis.resizeRange2(factor, anchorY); + for (ValueAxis rangeAxis : this.rangeAxes.values()) { + if (rangeAxis == null) { + continue; + } + if (useAnchor) { + // get the relevant source coordinate given the plot orientation + double sourceY = source.getY(); + if (this.orientation.isHorizontal()) { + sourceY = source.getX(); } - else { - rangeAxis.resizeRange(factor); - } + double anchorY = rangeAxis.java2DToValue(sourceY, + info.getDataArea(), getRangeAxisEdge()); + rangeAxis.resizeRange2(factor, anchorY); + } else { + rangeAxis.resizeRange(factor); } } } @@ -4748,11 +4730,10 @@ */ @Override public void zoomRangeAxes(double lowerPercent, double upperPercent, - PlotRenderingInfo state, Point2D source) { - for (int i = 0; i < this.rangeAxes.size(); i++) { - ValueAxis rangeAxis = (ValueAxis) this.rangeAxes.get(i); - if (rangeAxis != null) { - rangeAxis.zoomRange(lowerPercent, upperPercent); + PlotRenderingInfo state, Point2D source) { + for (ValueAxis yAxis : this.rangeAxes.values()) { + if (yAxis != null) { + yAxis.zoomRange(lowerPercent, upperPercent); } } } @@ -5130,31 +5111,24 @@ this.rangeZeroBaselineStroke = SerialUtilities.readStroke(stream); this.rangeZeroBaselinePaint = SerialUtilities.readPaint(stream); - for (int i = 0; i < this.domainAxes.size(); i++) { - CategoryAxis xAxis = (CategoryAxis) this.domainAxes.get(i); + for (CategoryAxis xAxis : this.domainAxes.values()) { if (xAxis != null) { xAxis.setPlot(this); xAxis.addChangeListener(this); } } - for (int i = 0; i < this.rangeAxes.size(); i++) { - ValueAxis yAxis = (ValueAxis) this.rangeAxes.get(i); + for (ValueAxis yAxis : this.rangeAxes.values()) { if (yAxis != null) { yAxis.setPlot(this); yAxis.addChangeListener(this); } } - int datasetCount = this.datasets.size(); - for (int i = 0; i < datasetCount; i++) { - Dataset dataset = (Dataset) this.datasets.get(i); + for (CategoryDataset dataset : this.datasets.values()) { if (dataset != null) { dataset.addChangeListener(this); } } - int rendererCount = this.renderers.size(); - for (int i = 0; i < rendererCount; i++) { - CategoryItemRenderer renderer - = (CategoryItemRenderer) this.renderers.get(i); + for (CategoryItemRenderer renderer : this.renderers.values()) { if (renderer != null) { renderer.addChangeListener(this); } Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/XYPlot.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/XYPlot.java 2014-07-03 12:47:47 UTC (rev 3236) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/XYPlot.java 2014-07-03 13:08:34 UTC (rev 3237) @@ -259,6 +259,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.ResourceBundle; import java.util.Set; import java.util.TreeMap; @@ -291,7 +292,6 @@ import org.jfree.chart.util.ResourceBundleWrapper; import org.jfree.chart.util.ShadowGenerator; import org.jfree.data.Range; -import org.jfree.data.general.Dataset; import org.jfree.data.general.DatasetChangeEvent; import org.jfree.data.general.DatasetUtilities; import org.jfree.data.xy.XYDataset; @@ -375,7 +375,7 @@ * entry for a dataset, it is assumed to map to the primary domain axis * (index = 0). */ - private Map datasetToDomainAxesMap; + private Map<Integer, List<Integer>> datasetToDomainAxesMap; /** * Storage for the mapping between datasets/renderers and range axes. The @@ -385,7 +385,7 @@ * entry for a dataset, it is assumed to map to the primary domain axis * (index = 0). */ - private Map datasetToRangeAxesMap; + private Map<Integer, List<Integer>> datasetToRangeAxesMap; /** The origin point for the quadrants (if drawn). */ private transient Point2D quadrantOrigin = new Point2D.Double(0.0, 0.0); @@ -541,7 +541,7 @@ * be initialised in the constructor and never allowed to be * <code>null</code>. */ - private List annotations; + private List<XYAnnotation> annotations; /** The paint used for the domain tick bands (if any). */ private transient Paint domainTickBandPaint; @@ -793,19 +793,17 @@ } /** - * Returns the domain axis with the specified index, or <code>null</code>. + * Returns the domain axis with the specified index, or {@code null} if + * there is no axis with that index. * * @param index the axis index. * - * @return The axis (<code>null</code> possible). + * @return The axis ({@code null} possible). * * @see #setDomainAxis(int, ValueAxis) */ public ValueAxis getDomainAxis(int index) { - ValueAxis result = null; - if (index < this.domainAxes.size()) { - result = (ValueAxis) this.domainAxes.get(index); - } + ValueAxis result = this.domainAxes.get(index); if (result == null) { Plot parent = getParent(); if (parent instanceof XYPlot) { @@ -956,8 +954,7 @@ * @see #clearRangeAxes() */ public void clearDomainAxes() { - for (int i = 0; i < this.domainAxes.size(); i++) { - ValueAxis axis = (ValueAxis) this.domainAxes.get(i); + for (ValueAxis axis: this.domainAxes.values()) { if (axis != null) { axis.removeChangeListener(this); } @@ -970,8 +967,7 @@ * Configures the domain axes. */ public void configureDomainAxes() { - for (int i = 0; i < this.domainAxes.size(); i++) { - ValueAxis axis = (ValueAxis) this.domainAxes.get(i); + for (ValueAxis axis: this.domainAxes.values()) { if (axis != null) { axis.configure(); } @@ -983,17 +979,14 @@ * explicitly, the method returns the location that is opposite to the * primary domain axis location. * - * @param index the axis index. + * @param index the axis index (must be >= 0). * - * @return The location (never <code>null</code>). + * @return The location (never {@code null}). * * @see #setDomainAxisLocation(int, AxisLocation) */ public AxisLocation getDomainAxisLocation(int index) { - AxisLocation result = null; - if (index < this.domainAxisLocations.size()) { - result = (AxisLocation) this.domainAxisLocations.get(index); - } + AxisLocation result = this.domainAxisLocations.get(index); if (result == null) { result = AxisLocation.getOpposite(getDomainAxisLocation()); } @@ -1019,7 +1012,7 @@ * Sets the axis location for a domain axis and, if requested, sends a * {@link PlotChangeEvent} to all registered listeners. * - * @param index the axis index. + * @param index the axis index (must be >= 0). * @param location the location (<code>null</code> not permitted for * index 0). * @param notify notify listeners? @@ -1147,19 +1140,17 @@ } /** - * Returns a range axis. + * Returns the range axis with the specified index, or {@code null} if + * there is no axis with that index. * - * @param index the axis index. + * @param index the axis index (must be >= 0). * - * @return The axis (<code>null</code> possible). + * @return The axis ({@code null} possible). * * @see #setRangeAxis(int, ValueAxis) */ public ValueAxis getRangeAxis(int index) { - ValueAxis result = null; - if (index < this.rangeAxes.size()) { - result = (ValueAxis) this.rangeAxes.get(index); - } + ValueAxis result = this.rangeAxes.get(index); if (result == null) { Plot parent = getParent(); if (parent instanceof XYPlot) { @@ -1244,8 +1235,7 @@ * @see #clearDomainAxes() */ public void clearRangeAxes() { - for (int i = 0; i < this.rangeAxes.size(); i++) { - ValueAxis axis = (ValueAxis) this.rangeAxes.get(i); + for (ValueAxis axis: this.rangeAxes.values()) { if (axis != null) { axis.removeChangeListener(this); } @@ -1260,8 +1250,7 @@ * @see #configureDomainAxes() */ public void configureRangeAxes() { - for (int i = 0; i < this.rangeAxes.size(); i++) { - ValueAxis axis = (ValueAxis) this.rangeAxes.get(i); + for (ValueAxis axis: this.rangeAxes.values()) { if (axis != null) { axis.configure(); } @@ -1273,17 +1262,14 @@ * explicitly, the method returns the location that is opposite to the * primary range axis location. * - * @param index the axis index. + * @param index the axis index (must be >= 0). * - * @return The location (never <code>null</code>). + * @return The location (never {@code null}). * * @see #setRangeAxisLocation(int, AxisLocation) */ public AxisLocation getRangeAxisLocation(int index) { - AxisLocation result = null; - if (index < this.rangeAxisLocations.size()) { - result = (AxisLocation) this.rangeAxisLocations.get(index); - } + AxisLocation result = this.rangeAxisLocations.get(index); if (result == null) { result = AxisLocation.getOpposite(getRangeAxisLocation()); } @@ -1358,27 +1344,24 @@ } /** - * Returns a dataset. + * Returns the dataset with the specified index, or {@code null} if there + * is no dataset with that index. * - * @param index the dataset index. + * @param index the dataset index (must be >= 0). * - * @return The dataset (possibly <code>null</code>). + * @return The dataset (possibly {@code null}). * * @see #setDataset(int, XYDataset) */ public XYDataset getDataset(int index) { - XYDataset result = null; - if (this.datasets.size() > index) { - result = (XYDataset) this.datasets.get(index); - } - return result; + return (XYDataset) this.datasets.get(index); } /** * Sets the primary dataset for the plot, replacing the existing dataset if * there is one. * - * @param dataset the dataset (<code>null</code> permitted). + * @param dataset the dataset ({@code null} permitted). * * @see #getDataset() * @see #setDataset(int, XYDataset) @@ -1388,9 +1371,10 @@ } /** - * Sets a dataset for the plot. + * Sets a dataset for the plot and sends a change event to all registered + * listeners. * - * @param index the dataset index. + * @param index the dataset index (must be >= 0). * @param dataset the dataset (<code>null</code> permitted). * * @see #getDataset(int) @@ -1420,22 +1404,20 @@ } /** - * Returns the index of the specified dataset, or <code>-1</code> if the + * Returns the index of the specified dataset, or {@code -1} if the * dataset does not belong to the plot. * - * @param dataset the dataset (<code>null</code> not permitted). + * @param dataset the dataset ({@code null} not permitted). * - * @return The index. + * @return The index or -1. */ public int indexOf(XYDataset dataset) { - int result = -1; - for (int i = 0; i < this.datasets.size(); i++) { - if (dataset == this.datasets.get(i)) { - result = i; - break; + for (Map.Entry<Integer, XYDataset> entry: this.datasets.entrySet()) { + if (dataset == entry.getValue()) { + return entry.getKey(); } } - return result; + return -1; } /** @@ -1464,9 +1446,7 @@ * @since 1.0.12 */ public void mapDatasetToDomainAxes(int index, List axisIndices) { - if (index < 0) { - throw new IllegalArgumentException("Requires 'index' >= 0."); - } + ParamChecks.requireNonNegative(index, "index"); checkAxisIndices(axisIndices); Integer key = new Integer(index); this.datasetToDomainAxesMap.put(key, new ArrayList(axisIndices)); @@ -1500,9 +1480,7 @@ * @since 1.0.12 */ public void mapDatasetToRangeAxes(int index, List axisIndices) { - if (index < 0) { - throw new IllegalArgumentException("Requires 'index' >= 0."); - } + ParamChecks.requireNonNegative(index, "index"); checkAxisIndices(axisIndices); Integer key = new Integer(index); this.datasetToRangeAxesMap.put(key, new ArrayList(axisIndices)); @@ -1517,7 +1495,7 @@ * * @param indices the list of indices (<code>null</code> permitted). */ - private void checkAxisIndices(List indices) { + private void checkAxisIndices(List<Integer> indices) { // axisIndices can be: // 1. null; // 2. non-empty, containing only Integer objects that are unique. @@ -1528,13 +1506,8 @@ if (count == 0) { throw new IllegalArgumentException("Empty list not permitted."); } - HashSet set = new HashSet(); - for (int i = 0; i < count; i++) { - Object item = indices.get(i); - if (!(item instanceof Integer)) { - throw new IllegalArgumentException( - "Indices must be Integer instances."); - } + Set<Integer> set = new HashSet<Integer>(); + for (Integer item : indices) { if (set.contains(item)) { throw new IllegalArgumentException("Indices must be unique."); } @@ -1565,21 +1538,16 @@ } /** - * Returns the renderer for a dataset, or <code>null</code>. + * Returns the renderer with the specified index, or {@code null}. * - * @param index the renderer index. + * @param index the renderer index (must be >= 0). * - * @return The renderer (possibly <code>null</code>). + * @return The renderer (possibly {@code null}). * * @see #setRenderer(int, XYItemRenderer) */ public XYItemRenderer getRenderer(int index) { - XYItemRenderer result = null; - if (this.renderers.size() > index) { - result = (XYItemRenderer) this.renderers.get(index); - } - return result; - + return (XYItemRenderer) this.renderers.get(index); } /** @@ -1587,7 +1555,7 @@ * all registered listeners. If the renderer is set to <code>null</code>, * no data will be displayed. * - * @param renderer the renderer (<code>null</code> permitted). + * @param renderer the renderer ({@code null} permitted). * * @see #getRenderer() */ @@ -1601,7 +1569,7 @@ * have its own renderer, you should not use one renderer for multiple * datasets. * - * @param index the index. + * @param index the index (must be >= 0). * @param renderer the renderer. * * @see #getRenderer(int) @@ -1616,7 +1584,7 @@ * each dataset should have its own renderer, you should not use one * renderer for multiple datasets. * - * @param index the index. + * @param index the index (must be >= 0). * @param renderer the renderer. * @param notify notify listeners? * @@ -1726,24 +1694,23 @@ } /** - * Returns the renderer for the specified dataset. The code first - * determines the index of the dataset, then checks if there is a - * renderer with the same index (if not, the method returns renderer(0). + * Returns the renderer for the specified dataset (this is either the + * renderer with the same index as the dataset or, if there isn't a + * renderer with the same index, the default renderer). If the dataset + * does not belong to the plot, this method will return {@code null}. * - * @param dataset the dataset (<code>null</code> permitted). + * @param dataset the dataset ({@code null} permitted). * - * @return The renderer (possibly <code>null</code>). + * @return The renderer (possibly {@code null}). */ public XYItemRenderer getRendererForDataset(XYDataset dataset) { - XYItemRenderer result = null; - for (int i = 0; i < this.datasets.size(); i++) { - if (this.datasets.get(i) == dataset) { - result = (XYItemRenderer) this.renderers.get(i); - if (result == null) { - result = getRenderer(); - } - break; - } + int datasetIndex = indexOf(dataset); + if (datasetIndex < 0) { + return null; + } + XYItemRenderer result = this.renderers.get(datasetIndex); + if (result == null) { + result = getRenderer(); } return result; } @@ -2454,20 +2421,16 @@ */ public void clearDomainMarkers() { if (this.backgroundDomainMarkers != null) { - Set keys = this.backgroundDomainMarkers.keySet(); - Iterator iterator = keys.iterator(); - while (iterator.hasNext()) { - Integer key = (Integer) iterator.next(); - clearDomainMarkers(key.intValue()); + Set<Integer> keys = this.backgroundDomainMarkers.keySet(); + for (Integer key : keys) { + clearDomainMarkers(key); } this.backgroundDomainMarkers.clear(); } if (this.foregroundDomainMarkers != null) { - Set keys = this.foregroundDomainMarkers.keySet(); - Iterator iterator = keys.iterator(); - while (iterator.hasNext()) { - Integer key = (Integer) iterator.next(); - clearDomainMarkers(key.intValue()); + Set<Integer> keys = this.foregroundDomainMarkers.keySet(); + for (Integer key : keys) { + clearDomainMarkers(key); } this.foregroundDomainMarkers.clear(); } @@ -2696,20 +2659,16 @@ */ public void clearRangeMarkers() { if (this.backgroundRangeMarkers != null) { - Set keys = this.backgroundRangeMarkers.keySet(); - Iterator iterator = keys.iterator(); - while (iterator.hasNext()) { - Integer key = (Integer) iterator.next(); - clearRangeMarkers(key.intValue()); + Set<Integer> keys = this.backgroundRangeMarkers.keySet(); + for (Integer key : keys) { + clearRangeMarkers(key); } this.backgroundRangeMarkers.clear(); } if (this.foregroundRangeMarkers != null) { - Set keys = this.foregroundRangeMarkers.keySet(); - Iterator iterator = keys.iterator(); - while (iterator.hasNext()) { - Integer key = (Integer) iterator.next(); - clearRangeMarkers(key.intValue()); + Set<Integer> keys = this.foregroundRangeMarkers.keySet(); + for (Integer key : keys) { + clearRangeMarkers(key); } this.foregroundRangeMarkers.clear(); } @@ -2982,8 +2941,7 @@ * @see #addAnnotation(XYAnnotation) */ public void clearAnnotations() { - for(int i = 0; i < this.annotations.size(); i++){ - XYAnnotation annotation = (XYAnnotation) this.annotations.get(i); + for (XYAnnotation annotation : this.annotations) { annotation.removeChangeListener(this); } this.annotations.clear(); @@ -3064,10 +3022,10 @@ } else { // reserve space for the domain axes... - for (int i = 0; i < this.domainAxes.size(); i++) { - Axis axis = (Axis) this.domainAxes.get(i); + for (ValueAxis axis: this.domainAxes.values()) { if (axis != null) { - RectangleEdge edge = getDomainAxisEdge(i); + RectangleEdge edge = getDomainAxisEdge( + findDomainAxisIndex(axis)); space = axis.reserveSpace(g2, this, plotArea, edge, space); } } @@ -3110,10 +3068,10 @@ } else { // reserve space for the range axes... - for (int i = 0; i < this.rangeAxes.size(); i++) { - Axis axis = (Axis) this.rangeAxes.get(i); + for (ValueAxis axis: this.rangeAxes.values()) { if (axis != null) { - RectangleEdge edge = getRangeAxisEdge(i); + RectangleEdge edge = getRangeAxisEdge( + findRangeAxisIndex(axis)); space = axis.reserveSpace(g2, this, plotArea, edge, space); } } @@ -3279,91 +3237,54 @@ g2.setRenderingHints(savedG2.getRenderingHints()); } - // draw the markers that are associated with a specific renderer... - for (int i = 0; i < this.renderers.size(); i++) { - drawDomainMarkers(g2, dataArea, i, Layer.BACKGROUND); + // draw the markers that are associated with a specific dataset... + for (XYDataset dataset: this.datasets.values()) { + int datasetIndex = indexOf(dataset); + drawDomainMarkers(g2, dataArea, datasetIndex, Layer.BACKGROUND); } - for (int i = 0; i < this.renderers.size(); i++) { - drawRangeMarkers(g2, dataArea, i, Layer.BACKGROUND); + for (XYDataset dataset: this.datasets.values()) { + int datasetIndex = indexOf(dataset); + drawRangeMarkers(g2, dataArea, datasetIndex, Layer.BACKGROUND); } // now draw annotations and render data items... boolean foundData = false; DatasetRenderingOrder order = getDatasetRenderingOrder(); - if (order == DatasetRenderingOrder.FORWARD) { - + List<Integer> rendererIndices = getRendererIndices(order); + List<Integer> datasetIndices = getDatasetIndices(order); // draw background annotations - int rendererCount = this.renderers.size(); - for (int i = 0; i < rendererCount; i++) { - XYItemRenderer r = getRenderer(i); - if (r != null) { + for (int i : rendererIndices) { + XYItemRenderer renderer = getRenderer(i); + if (renderer != null) { ValueAxis domainAxis = getDomainAxisForDataset(i); ValueAxis rangeAxis = getRangeAxisForDataset(i); - r.drawAnnotations(g2, dataArea, domainAxis, rangeAxis, + renderer.drawAnnotations(g2, dataArea, domainAxis, rangeAxis, Layer.BACKGROUND, info); } } // render data items... - for (int i = 0; i < getDatasetCount(); i++) { - foundData = render(g2, dataArea, i, info, crosshairState) - || foundData; + for (int datasetIndex : datasetIndices) { + XYDataset dataset = this.getDataset(datasetIndex); + foundData = render(g2, dataArea, datasetIndex, info, + crosshairState) || foundData; } // draw foreground annotations - for (int i = 0; i < rendererCount; i++) { - XYItemRenderer r = getRenderer(i); - if (r != null) { + for (int i : rendererIndices) { + XYItemRenderer renderer = getRenderer(i); + if (renderer != null) { ValueAxis domainAxis = getDomainAxisForDataset(i); ValueAxis rangeAxis = getRangeAxisForDataset(i); - r.drawAnnotations(g2, dataArea, domainAxis, rangeAxis, + renderer.drawAnnotations(g2, dataArea, domainAxis, rangeAxis, Layer.FOREGROUND, info); } } - } - else if (order == DatasetRenderingOrder.REVERSE) { - - // draw background annotations - int rendererCount = this.renderers.size(); - for (int i = rendererCount - 1; i >= 0; i--) { - XYItemRenderer r = getRenderer(i); - if (i >= getDatasetCount()) { // we need the dataset to make - continue; // a link to the axes - } - if (r != null) { - ValueAxis domainAxis = getDomainAxisForDataset(i); - ValueAxis rangeAxis = getRangeAxisForDataset(i); - r.drawAnnotations(g2, dataArea, domainAxis, rangeAxis, - Layer.BACKGROUND, info); - } - } - - for (int i = getDatasetCount() - 1; i >= 0; i--) { - foundData = render(g2, dataArea, i, info, crosshairState) - || foundData; - } - - // draw foreground annotations - for (int i = rendererCount - 1; i >= 0; i--) { - XYItemRenderer r = getRenderer(i); - if (i >= getDatasetCount()) { // we need the dataset to make - continue; // a link to the axes - } - if (r != null) { - ValueAxis domainAxis = getDomainAxisForDataset(i); - ValueAxis rangeAxis = getRangeAxisForDataset(i); - r.drawAnnotations(g2, dataArea, domainAxis, rangeAxis, - Layer.FOREGROUND, info); - } - } - - } - // draw domain crosshair if required... - int xAxisIndex = crosshairState.getDomainAxisIndex(); - ValueAxis xAxis = getDomainAxis(xAxisIndex); - RectangleEdge xAxisEdge = getDomainAxisEdge(xAxisIndex); + int datasetIndex = crosshairState.getDatasetIndex(); + ValueAxis xAxis = this.getDomainAxisForDataset(datasetIndex); + RectangleEdge xAxisEdge = getDomainAxisEdge(getDomainAxisIndex(xAxis)); if (!this.domainCrosshairLockedOnData && anchor != null) { double xx; if (orient == PlotOrientation.VERTICAL) { @@ -3383,9 +3304,8 @@ } // draw range crosshair if required... - int yAxisIndex = crosshairState.getRangeAxisIndex(); - ValueAxis yAxis = getRangeAxis(yAxisIndex); - RectangleEdge yAxisEdge = getRangeAxisEdge(yAxisIndex); + ValueAxis yAxis = getRangeAxisForDataset(datasetIndex); + RectangleEdge yAxisEdge = getRangeAxisEdge(getRangeAxisIndex(yAxis)); if (!this.rangeCrosshairLockedOnData && anchor != null) { double yy; if (orient == PlotOrientation.VERTICAL) { @@ -3407,10 +3327,10 @@ drawNoDataMessage(g2, dataArea); } - for (int i = 0; i < this.renderers.size(); i++) { + for (int i : rendererIndices) { drawDomainMarkers(g2, dataArea, i, Layer.FOREGROUND); } - for (int i = 0; i < this.renderers.size(); i++) { + for (int i : rendererIndices) { drawRangeMarkers(g2, dataArea, i, Layer.FOREGROUND); } @@ -3434,6 +3354,41 @@ } /** + * Returns the indices of the non-null datasets in the specified order. + * + * @param order the order (<code>null</code> not permitted). + * + * @return The list of indices. + */ + private List<Integer> getDatasetIndices(DatasetRenderingOrder order) { + List<Integer> result = new ArrayList<Integer>(); + for (Entry<Integer, XYDataset> entry : this.datasets.entrySet()) { + if (entry.getValue() != null) { + result.add(entry.getKey()); + } + } + Collections.sort(result); + if (order == DatasetRenderingOrder.REVERSE) { + Collections.reverse(result); + } + return result; + } + + private List<Integer> getRendererIndices(DatasetRenderingOrder order) { + List<Integer> result = new ArrayList<Integer>(); + for (Entry<Integer, XYItemRenderer> entry : this.renderers.entrySet()) { + if (entry.getValue() != null) { + result.add(entry.getKey()); + } + } + Collections.sort(result); + if (order == DatasetRenderingOrder.REVERSE) { + Collections.reverse(result); + } + return result; + } + + /** * Draws the background for the plot. * * @param g2 the graphics device. @@ -3643,26 +3598,24 @@ * * @return A map containing the state for each axis drawn. */ - protected Map drawAxes(Graphics2D g2, - Rectangle2D plotArea, - Rectangle2D dataArea, - PlotRenderingInfo plotState) { + protected Map<Axis, AxisState> drawAxes(Graphics2D g2, Rectangle2D plotArea, + Rectangle2D dataArea, PlotRenderingInfo plotState) { AxisCollection axisCollection = new AxisCollec... [truncated message content] |
From: <mu...@us...> - 2014-07-03 12:47:49
|
Revision: 3236 http://sourceforge.net/p/jfreechart/code/3236 Author: mungady Date: 2014-07-03 12:47:47 +0000 (Thu, 03 Jul 2014) Log Message: ----------- New tests. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/plot/CategoryPlotTest.java branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/plot/XYPlotTest.java Modified: branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/plot/CategoryPlotTest.java =================================================================== --- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/plot/CategoryPlotTest.java 2014-07-02 15:53:18 UTC (rev 3235) +++ branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/plot/CategoryPlotTest.java 2014-07-03 12:47:47 UTC (rev 3236) @@ -1059,5 +1059,207 @@ plot.mapDatasetToRangeAxes(0, axisIndices); assertEquals(yAxis2, plot.getRangeAxisForDataset(0)); } + + /** + * Datasets are now stored in a Map, and it should be possible to assign + * them an arbitrary key (index). + */ + @Test + public void testDatasetIndices() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + + assertEquals(dataset, plot.getDataset(0)); + + DefaultCategoryDataset dataset2 = new DefaultCategoryDataset(); + dataset2.setValue(1, "R1", "C1"); + + // we should be able to give a dataset an arbitrary index + plot.setDataset(99, dataset2); + assertEquals(2, plot.getDatasetCount()); + assertEquals(dataset2, plot.getDataset(99)); + + assertEquals(0, plot.indexOf(dataset)); + assertEquals(99, plot.indexOf(dataset2)); + } + + @Test + public void testAxisIndices() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + assertEquals(xAxis, plot.getDomainAxis(0)); + assertEquals(yAxis, plot.getRangeAxis(0)); + + CategoryAxis xAxis2 = new CategoryAxis("X2"); + plot.setDomainAxis(99, xAxis2); + assertEquals(xAxis2, plot.getDomainAxis(99)); + + NumberAxis yAxis2 = new NumberAxis("Y2"); + plot.setRangeAxis(99, yAxis2); + assertEquals(yAxis2, plot.getRangeAxis(99)); + } + + @Test + public void testAxisLocationIndices() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + CategoryAxis xAxis2 = new CategoryAxis("X2"); + NumberAxis yAxis2 = new NumberAxis("Y2"); + plot.setDomainAxis(99, xAxis2); + plot.setRangeAxis(99, yAxis2); + + plot.setDomainAxisLocation(99, AxisLocation.BOTTOM_OR_RIGHT); + assertEquals(AxisLocation.BOTTOM_OR_RIGHT, + plot.getDomainAxisLocation(99)); + plot.setRangeAxisLocation(99, AxisLocation.BOTTOM_OR_LEFT); + assertEquals(AxisLocation.BOTTOM_OR_LEFT, + plot.getRangeAxisLocation(99)); + } + + @Test + public void testRendererIndices() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + + assertEquals(renderer, plot.getRenderer(0)); + + // we should be able to give a renderer an arbitrary index + CategoryItemRenderer renderer2 = new LineAndShapeRenderer(); + plot.setRenderer(20, renderer2); + assertEquals(2, plot.getRendererCount()); + assertEquals(renderer2, plot.getRenderer(20)); + + assertEquals(20, plot.getIndexOf(renderer2)); + } + + @Test + public void testGetRendererForDataset2() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + + // add a second dataset + DefaultCategoryDataset dataset2 = new DefaultCategoryDataset(); + dataset2.setValue(1, "R1", "C1"); + plot.setDataset(99, dataset2); + + // by default, the renderer with index 0 is used + assertEquals(renderer, plot.getRendererForDataset(dataset2)); + + // add a second renderer with the same index as dataset2, now it will + // be used + CategoryItemRenderer renderer2 = new LineAndShapeRenderer(); + plot.setRenderer(99, renderer2); + assertEquals(renderer2, plot.getRendererForDataset(dataset2)); + } + + @Test + public void testMapDatasetToDomainAxis() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + + CategoryAxis xAxis2 = new CategoryAxis("X2"); + plot.setDomainAxis(11, xAxis2); + + // add a second dataset + DefaultCategoryDataset dataset2 = new DefaultCategoryDataset(); + dataset2.setValue(1, "R1", "C1"); + plot.setDataset(99, dataset); + + assertEquals(xAxis, plot.getDomainAxisForDataset(99)); + + // now map the dataset to the second xAxis + plot.mapDatasetToDomainAxis(99, 11); + assertEquals(xAxis2, plot.getDomainAxisForDataset(99)); + } + + @Test + public void testMapDatasetToRangeAxis() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + + NumberAxis yAxis2 = new NumberAxis("Y2"); + plot.setRangeAxis(22, yAxis2); + + // add a second dataset + DefaultCategoryDataset dataset2 = new DefaultCategoryDataset(); + dataset2.setValue(1, "R1", "C1"); + plot.setDataset(99, dataset); + + assertEquals(yAxis, plot.getRangeAxisForDataset(99)); + + // now map the dataset to the second xAxis + plot.mapDatasetToRangeAxis(99, 22); + assertEquals(yAxis2, plot.getRangeAxisForDataset(99)); + } + + @Test + public void testDomainMarkerIndices() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + + // add a second dataset, plotted against a second x axis + DefaultCategoryDataset dataset2 = new DefaultCategoryDataset(); + dataset2.setValue(1, "R1", "C1"); + plot.setDataset(99, dataset); + CategoryAxis xAxis2 = new CategoryAxis("X2"); + plot.setDomainAxis(1, xAxis2); + LineAndShapeRenderer renderer2 = new LineAndShapeRenderer(); + plot.setRenderer(99, renderer2); + plot.mapDatasetToDomainAxis(99, 1); + + CategoryMarker xMarker1 = new CategoryMarker(123); + plot.addDomainMarker(99, xMarker1, Layer.FOREGROUND); + assertTrue(plot.getDomainMarkers(99, Layer.FOREGROUND).contains( + xMarker1)); + } + + @Test + public void testRangeMarkerIndices() { + CategoryDataset dataset = new DefaultCategoryDataset(); + CategoryAxis xAxis = new CategoryAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + CategoryItemRenderer renderer = new BarRenderer(); + CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer); + + // add a second dataset, plotted against a second axis + DefaultCategoryDataset dataset2 = new DefaultCategoryDataset(); + dataset2.setValue(1, "R1", "C1"); + plot.setDataset(99, dataset); + NumberAxis yAxis2 = new NumberAxis("Y2"); + plot.setRangeAxis(1, yAxis2); + LineAndShapeRenderer renderer2 = new LineAndShapeRenderer(); + plot.setRenderer(99, renderer2); + plot.mapDatasetToRangeAxis(99, 1); + + ValueMarker yMarker1 = new ValueMarker(123); + plot.addRangeMarker(99, yMarker1, Layer.FOREGROUND); + assertTrue(plot.getRangeMarkers(99, Layer.FOREGROUND).contains( + yMarker1)); + } + } Modified: branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/plot/XYPlotTest.java =================================================================== --- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/plot/XYPlotTest.java 2014-07-02 15:53:18 UTC (rev 3235) +++ branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/plot/XYPlotTest.java 2014-07-03 12:47:47 UTC (rev 3236) @@ -104,16 +104,13 @@ */ public class XYPlotTest { -// FIXME: the getDatasetCount() method is returning a count of the slots -// available for datasets, rather than the number of datasets actually -// specified...see if there is some way to clean this up. -// /** -// * Added this test in response to a bug report. -// */ -// public void testGetDatasetCount() { -// XYPlot plot = new XYPlot(); -// assertEquals(0, plot.getDatasetCount()); -// } + /** + * Added this test in response to a bug report. + */ + public void testGetDatasetCount() { + XYPlot plot = new XYPlot(); + assertEquals(0, plot.getDatasetCount()); + } /** * Some checks for the equals() method. @@ -1112,16 +1109,6 @@ } assertTrue(pass); - // should get IllegalArgumentException for index too high - pass = false; - try { - plot.getDomainAxisForDataset(1); - } - catch (IllegalArgumentException e) { - pass = true; - } - assertTrue(pass); - // if multiple axes are mapped, the first in the list should be // returned... NumberAxis xAxis2 = new NumberAxis("X2"); @@ -1164,16 +1151,6 @@ } assertTrue(pass); - // should get IllegalArgumentException for index too high - pass = false; - try { - plot.getRangeAxisForDataset(1); - } - catch (IllegalArgumentException e) { - pass = true; - } - assertTrue(pass); - // if multiple axes are mapped, the first in the list should be // returned... NumberAxis yAxis2 = new NumberAxis("Y2"); @@ -1193,4 +1170,206 @@ plot.mapDatasetToRangeAxes(0, axisIndices); assertEquals(yAxis2, plot.getRangeAxisForDataset(0)); } + + /** + * Datasets are now stored in a Map, and it should be possible to assign + * them an arbitrary key (index). + */ + @Test + public void testDatasetIndices() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + + assertEquals(dataset, plot.getDataset(0)); + + XYSeriesCollection dataset2 = new XYSeriesCollection(); + dataset2.addSeries(new XYSeries("Series in dataset 2")); + + // we should be able to give a dataset an arbitrary index + plot.setDataset(99, dataset2); + assertEquals(2, plot.getDatasetCount()); + assertEquals(dataset2, plot.getDataset(99)); + + assertEquals(0, plot.indexOf(dataset)); + assertEquals(99, plot.indexOf(dataset2)); + } + + @Test + public void testAxisIndices() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + assertEquals(xAxis, plot.getDomainAxis(0)); + assertEquals(yAxis, plot.getRangeAxis(0)); + + NumberAxis xAxis2 = new NumberAxis("X2"); + plot.setDomainAxis(99, xAxis2); + assertEquals(xAxis2, plot.getDomainAxis(99)); + + NumberAxis yAxis2 = new NumberAxis("Y2"); + plot.setRangeAxis(99, yAxis2); + assertEquals(yAxis2, plot.getRangeAxis(99)); + } + + @Test + public void testAxisLocationIndices() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + + NumberAxis xAxis2 = new NumberAxis("X2"); + NumberAxis yAxis2 = new NumberAxis("Y2"); + plot.setDomainAxis(99, xAxis2); + plot.setRangeAxis(99, yAxis2); + + plot.setDomainAxisLocation(99, AxisLocation.BOTTOM_OR_RIGHT); + assertEquals(AxisLocation.BOTTOM_OR_RIGHT, + plot.getDomainAxisLocation(99)); + plot.setRangeAxisLocation(99, AxisLocation.BOTTOM_OR_LEFT); + assertEquals(AxisLocation.BOTTOM_OR_LEFT, + plot.getRangeAxisLocation(99)); + } + + @Test + public void testRendererIndices() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + + assertEquals(renderer, plot.getRenderer(0)); + + // we should be able to give a renderer an arbitrary index + XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(); + plot.setRenderer(20, renderer2); + assertEquals(2, plot.getRendererCount()); + assertEquals(renderer2, plot.getRenderer(20)); + + assertEquals(20, plot.getIndexOf(renderer2)); + } + + @Test + public void testGetRendererForDataset2() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + + // add a second dataset + XYSeriesCollection dataset2 = new XYSeriesCollection(); + dataset2.addSeries(new XYSeries("Series in dataset 2")); + plot.setDataset(99, dataset2); + + // by default, the renderer with index 0 is used + assertEquals(renderer, plot.getRendererForDataset(dataset2)); + + // add a second renderer with the same index as dataset2, now it will + // be used + XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(); + plot.setRenderer(99, renderer); + assertEquals(renderer2, plot.getRendererForDataset(dataset2)); + } + + @Test + public void testMapDatasetToDomainAxis() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + + NumberAxis xAxis2 = new NumberAxis("X2"); + plot.setDomainAxis(11, xAxis2); + + // add a second dataset + XYSeriesCollection dataset2 = new XYSeriesCollection(); + dataset2.addSeries(new XYSeries("Series in dataset 2")); + plot.setDataset(99, dataset); + + assertEquals(xAxis, plot.getDomainAxisForDataset(99)); + + // now map the dataset to the second xAxis + plot.mapDatasetToDomainAxis(99, 11); + assertEquals(xAxis2, plot.getDomainAxisForDataset(99)); + } + + @Test + public void testMapDatasetToRangeAxis() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + + NumberAxis yAxis2 = new NumberAxis("Y2"); + plot.setRangeAxis(22, yAxis2); + + // add a second dataset + XYSeriesCollection dataset2 = new XYSeriesCollection(); + dataset2.addSeries(new XYSeries("Series in dataset 2")); + plot.setDataset(99, dataset); + + assertEquals(yAxis, plot.getRangeAxisForDataset(99)); + + // now map the dataset to the second xAxis + plot.mapDatasetToRangeAxis(99, 22); + assertEquals(yAxis2, plot.getRangeAxisForDataset(99)); + } + + @Test + public void testDomainMarkerIndices() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + + // add a second dataset, plotted against a second x axis + XYSeriesCollection dataset2 = new XYSeriesCollection(); + dataset2.addSeries(new XYSeries("Series in dataset 2")); + plot.setDataset(99, dataset); + NumberAxis xAxis2 = new NumberAxis("X2"); + plot.setDomainAxis(1, xAxis2); + XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(); + plot.setRenderer(99, renderer2); + plot.mapDatasetToDomainAxis(99, 1); + + ValueMarker xMarker1 = new ValueMarker(123); + plot.addDomainMarker(99, xMarker1, Layer.FOREGROUND); + assertTrue(plot.getDomainMarkers(99, Layer.FOREGROUND).contains( + xMarker1)); + } + + @Test + public void testRangeMarkerIndices() { + XYDataset dataset = new XYSeriesCollection(); + NumberAxis xAxis = new NumberAxis("X"); + NumberAxis yAxis = new NumberAxis("Y"); + XYItemRenderer renderer = new DefaultXYItemRenderer(); + XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer); + + // add a second dataset, plotted against a second axis + XYSeriesCollection dataset2 = new XYSeriesCollection(); + dataset2.addSeries(new XYSeries("Series in dataset 2")); + plot.setDataset(99, dataset); + NumberAxis yAxis2 = new NumberAxis("Y2"); + plot.setRangeAxis(1, yAxis2); + XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer(); + plot.setRenderer(99, renderer2); + plot.mapDatasetToRangeAxis(99, 1); + + ValueMarker yMarker1 = new ValueMarker(123); + plot.addRangeMarker(99, yMarker1, Layer.FOREGROUND); + assertTrue(plot.getRangeMarkers(99, Layer.FOREGROUND).contains(yMarker1)); + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-02 15:53:27
|
Revision: 3235 http://sourceforge.net/p/jfreechart/code/3235 Author: mungady Date: 2014-07-02 15:53:18 +0000 (Wed, 02 Jul 2014) Log Message: ----------- Added requireNonNegative(). Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/util/ParamChecks.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/util/ParamChecks.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/util/ParamChecks.java 2014-07-01 15:41:03 UTC (rev 3234) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/util/ParamChecks.java 2014-07-02 15:53:18 UTC (rev 3235) @@ -65,4 +65,19 @@ throw new IllegalArgumentException("Null '" + name + "' argument."); } } + + /** + * Throws an {@code IllegalArgumentException} if {@code value} is negative. + * + * @param value the value. + * @param name the parameter name (for use in the exception message). + * + * @since 1.0.18 + */ + public static void requireNonNegative(int value, String name) { + if (value < 0) { + throw new IllegalArgumentException("Require '" + name + "' (" + + value + ") to be non-negative."); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:41:11
|
Revision: 3234 http://sourceforge.net/p/jfreechart/code/3234 Author: mungady Date: 2014-07-01 15:41:03 +0000 (Tue, 01 Jul 2014) Log Message: ----------- New class. Added Paths: ----------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/ChartHints.java Added: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/ChartHints.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/ChartHints.java (rev 0) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/ChartHints.java 2014-07-01 15:41:03 UTC (rev 3234) @@ -0,0 +1,109 @@ +/* =========================================================== + * JFreeChart : a free chart library for the Java(tm) platform + * =========================================================== + * + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. + * + * Project Info: http://www.jfree.org/jfreechart/index.html + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + * USA. + * + * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners.] + * + * --------------- + * ChartHints.java + * --------------- + * (C) Copyright 2014, by Object Refinery Limited and Contributors. + * + * Original Author: David Gilbert (for Object Refinery Limited); + * Contributor(s): -; + * + * Changes + * ------- + * 27-Jun-2014 : Version 1 (DG); + * + */ + +package org.jfree.chart; + +import java.util.Map; + +/** + * Special rendering hints that can be used internally by JFreeChart to provide + * links between rendered items and the chart elements that they represent. + * Most <code>Graphics2D</code> implementations will ignore these hints but + * some, for example JFreeSVG's SVGGraphics2D class, will use the hints to + * drive the output content. + * + * @since 1.0.18 + */ +public final class ChartHints { + + private ChartHints() { + // no need to instantiate this + } + + /** + * The key for a hint to signal the beginning of an element. The value + * should be a string containing the element id or, alternatively, a Map + * containing the 'id' (String) and 'ref' (String in JSON format). + */ + public static final Key KEY_BEGIN_ELEMENT = new ChartHints.Key(0); + + /** + * The key for a hint that ends an element. + */ + public static final Key KEY_END_ELEMENT = new ChartHints.Key(1); + + /** + * A key for rendering hints that can be used with JFreeChart (in + * addition to the regular Java2D rendering hints). + */ + public static class Key extends java.awt.RenderingHints.Key { + + /** + * Creates a new key. + * + * @param privateKey the private key. + */ + public Key(int privateKey) { + super(privateKey); + } + + /** + * Returns <code>true</code> if <code>val</code> is a value that is + * compatible with this key, and <code>false</code> otherwise. + * + * @param val the value. + * + * @return A boolean. + */ + @Override + public boolean isCompatibleValue(Object val) { + switch (intKey()) { + case 0: + return val == null || val instanceof String + || val instanceof Map; + case 1: + return val == null || val instanceof Object; + default: + throw new RuntimeException("Not possible!"); + } + } + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:40:55
|
Revision: 3233 http://sourceforge.net/p/jfreechart/code/3233 Author: mungady Date: 2014-07-01 15:40:46 +0000 (Tue, 01 Jul 2014) Log Message: ----------- New class. Added Paths: ----------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/util/TextUtils.java Added: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/util/TextUtils.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/util/TextUtils.java (rev 0) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/util/TextUtils.java 2014-07-01 15:40:46 UTC (rev 3233) @@ -0,0 +1,264 @@ +/* =========================================================== + * JFreeChart : a free chart library for the Java(tm) platform + * =========================================================== + * + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. + * + * Project Info: http://www.jfree.org/jfreechart/index.html + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + * USA. + * + * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. + * Other names may be trademarks of their respective owners.] + * + * -------------- + * TextUtils.java + * -------------- + * (C) Copyright 2014, by Object Refinery Limited. + * + * Original Author: David Gilbert (for Object Refinery Limited); + * Contributor(s): -; + * + * Changes + * ------- + * 30-Jun-2014 : Version 1 (DG); + * + */ + +package org.jfree.chart.util; + +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics2D; +import java.awt.font.FontRenderContext; +import java.awt.font.LineMetrics; +import java.awt.geom.Rectangle2D; +import org.jfree.ui.TextAnchor; + +/** + * Text utility functions. + * + * @since 1.0.18 + */ +public class TextUtils { + + /** + * Draws a string such that the specified anchor point is aligned to the + * given <code>(x, y)</code> location, and returns a bounding rectangle + * for the text. + * + * @param text the text. + * @param g2 the graphics device. + * @param x the x coordinate (Java 2D). + * @param y the y coordinate (Java 2D). + * @param anchor the anchor location. + * + * @return The text bounds (adjusted for the text position). + */ + public static Rectangle2D drawAlignedString(String text, + Graphics2D g2, float x, float y, TextAnchor anchor) { + + Rectangle2D textBounds = new Rectangle2D.Double(); + float[] adjust = deriveTextBoundsAnchorOffsets(g2, text, anchor, + textBounds); + // adjust text bounds to match string position + textBounds.setRect(x + adjust[0], y + adjust[1] + adjust[2], + textBounds.getWidth(), textBounds.getHeight()); + g2.drawString(text, x + adjust[0], y + adjust[1]); + return textBounds; + } + + /** + * Returns the bounds of an aligned string. + * + * @param text the string (<code>null</code> not permitted). + * @param g2 the graphics target (<code>null</code> not permitted). + * @param x the x-coordinate. + * @param y the y-coordinate. + * @param anchor the anchor point that will be aligned to + * <code>(x, y)</code> (<code>null</code> not permitted). + * + * @return The text bounds (never <code>null</code>). + * + * @since 1.3 + */ + public static Rectangle2D calcAlignedStringBounds(String text, + Graphics2D g2, float x, float y, TextAnchor anchor) { + + Rectangle2D textBounds = new Rectangle2D.Double(); + float[] adjust = deriveTextBoundsAnchorOffsets(g2, text, anchor, + textBounds); + // adjust text bounds to match string position + textBounds.setRect(x + adjust[0], y + adjust[1] + adjust[2], + textBounds.getWidth(), textBounds.getHeight()); + return textBounds; + } + + /** + * A utility method that calculates the anchor offsets for a string. + * Normally, the (x, y) coordinate for drawing text is a point on the + * baseline at the left of the text string. If you add these offsets to + * (x, y) and draw the string, then the anchor point should coincide with + * the (x, y) point. + * + * @param g2 the graphics device (not <code>null</code>). + * @param text the text. + * @param anchor the anchor point. + * + * @return The offsets. + */ + private static float[] deriveTextBoundsAnchorOffsets(Graphics2D g2, + String text, TextAnchor anchor) { + + float[] result = new float[2]; + FontRenderContext frc = g2.getFontRenderContext(); + Font f = g2.getFont(); + FontMetrics fm = g2.getFontMetrics(f); + Rectangle2D bounds = getTextBounds(text, fm); + LineMetrics metrics = f.getLineMetrics(text, frc); + float ascent = metrics.getAscent(); + float halfAscent = ascent / 2.0f; + float descent = metrics.getDescent(); + float leading = metrics.getLeading(); + float xAdj = 0.0f; + float yAdj = 0.0f; + + if (anchor.isHorizontalCenter()) { + xAdj = (float) -bounds.getWidth() / 2.0f; + } + else if (anchor.isRight()) { + xAdj = (float) -bounds.getWidth(); + } + + if (anchor.isTop()) { + yAdj = -descent - leading + (float) bounds.getHeight(); + } + else if (anchor.isHalfAscent()) { + yAdj = halfAscent; + } + else if (anchor.isVerticalCenter()) { + yAdj = -descent - leading + (float) (bounds.getHeight() / 2.0); + } + else if (anchor.isBaseline()) { + yAdj = 0.0f; + } + else if (anchor.isBottom()) { + yAdj = -metrics.getDescent() - metrics.getLeading(); + } + result[0] = xAdj; + result[1] = yAdj; + return result; + + } + + /** + * A utility method that calculates the anchor offsets for a string. + * Normally, the (x, y) coordinate for drawing text is a point on the + * baseline at the left of the text string. If you add these offsets to + * (x, y) and draw the string, then the anchor point should coincide with + * the (x, y) point. + * + * @param g2 the graphics device (not <code>null</code>). + * @param text the text. + * @param anchor the anchor point. + * @param textBounds the text bounds (if not <code>null</code>, this + * object will be updated by this method to match the + * string bounds). + * + * @return The offsets. + */ + private static float[] deriveTextBoundsAnchorOffsets(Graphics2D g2, + String text, TextAnchor anchor, Rectangle2D textBounds) { + + float[] result = new float[3]; + FontRenderContext frc = g2.getFontRenderContext(); + Font f = g2.getFont(); + FontMetrics fm = g2.getFontMetrics(f); + Rectangle2D bounds = getTextBounds(text, fm); + LineMetrics metrics = f.getLineMetrics(text, frc); + float ascent = metrics.getAscent(); + result[2] = -ascent; + float halfAscent = ascent / 2.0f; + float descent = metrics.getDescent(); + float leading = metrics.getLeading(); + float xAdj = 0.0f; + float yAdj = 0.0f; + + if (anchor.isHorizontalCenter()) { + xAdj = (float) -bounds.getWidth() / 2.0f; + } + else if (anchor.isRight()) { + xAdj = (float) -bounds.getWidth(); + } + + if (anchor.isTop()) { + yAdj = -descent - leading + (float) bounds.getHeight(); + } + else if (anchor.isHalfAscent()) { + yAdj = halfAscent; + } + else if (anchor.isHorizontalCenter()) { + yAdj = -descent - leading + (float) (bounds.getHeight() / 2.0); + } + else if (anchor.isBaseline()) { + yAdj = 0.0f; + } + else if (anchor.isBottom()) { + yAdj = -metrics.getDescent() - metrics.getLeading(); + } + if (textBounds != null) { + textBounds.setRect(bounds); + } + result[0] = xAdj; + result[1] = yAdj; + return result; + } + + /** + * Returns the bounds for the specified text. The supplied text is + * assumed to be on a single line (no carriage return or newline + * characters). + * + * @param text the text (<code>null</code> not permitted). + * @param fm the font metrics (<code>null</code> not permitted). + * + * @return The text bounds. + */ + public static Rectangle2D getTextBounds(String text, FontMetrics fm) { + return getTextBounds(text, 0.0, 0.0, fm); + } + + /** + * Returns the bounds for the specified text when it is drawn with the + * left-baseline aligned to the point <code>(x, y)</code>. + * + * @param text the text (<code>null</code> not permitted). + * @param x the x-coordinate. + * @param y the y-coordinate. + * @param fm the font metrics (<code>null</code> not permitted). + * + * @return The bounding rectangle (never <code>null</code>). + */ + public static Rectangle2D getTextBounds(String text, double x, double y, + FontMetrics fm) { + ParamChecks.nullNotPermitted(text, "text"); + ParamChecks.nullNotPermitted(fm, "fm"); + double width = fm.stringWidth(text); + double height = fm.getHeight(); + return new Rectangle2D.Double(x, y - fm.getAscent(), width, height); + + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:39:41
|
Revision: 3232 http://sourceforge.net/p/jfreechart/code/3232 Author: mungady Date: 2014-07-01 15:39:33 +0000 (Tue, 01 Jul 2014) Log Message: ----------- 2014-07-01 David Gilbert <dav...@ob...> * org/jfree/chart/plot/Marker.java (labelBackgroundColor): New field, (Marker): Initialise new field, (getLabelBackgroundColor): New method, (setLabelBackgroundColor): Likewise, (equals): Check new field, * org/jfree/chart/renderer/AbstractCategoryItemRenderer.java (drawRangeMarker): Paint background color. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/Marker.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/Marker.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/Marker.java 2014-07-01 15:38:57 UTC (rev 3231) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/Marker.java 2014-07-01 15:39:33 UTC (rev 3232) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ----------- * Marker.java * ----------- - * (C) Copyright 2002-2013, by Object Refinery Limited. + * (C) Copyright 2002-2014, by Object Refinery Limited. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): Nicolas Brodu; @@ -120,6 +120,9 @@ /** The label paint. */ private transient Paint labelPaint; + + /** The label background color. */ + private Color labelBackgroundColor; /** The label position. */ private RectangleAnchor labelAnchor; @@ -131,7 +134,7 @@ private RectangleInsets labelOffset; /** - * The offset type for the domain or range axis (never <code>null</code>). + * The offset type for the domain or range axis (never {@code null}). */ private LengthAdjustmentType labelOffsetType; @@ -148,7 +151,7 @@ /** * Constructs a new marker. * - * @param paint the paint (<code>null</code> not permitted). + * @param paint the paint ({@code null} not permitted). */ protected Marker(Paint paint) { this(paint, new BasicStroke(0.5f), Color.gray, new BasicStroke(0.5f), @@ -158,15 +161,15 @@ /** * Constructs a new marker. * - * @param paint the paint (<code>null</code> not permitted). - * @param stroke the stroke (<code>null</code> not permitted). - * @param outlinePaint the outline paint (<code>null</code> permitted). - * @param outlineStroke the outline stroke (<code>null</code> permitted). + * @param paint the paint ({@code null} not permitted). + * @param stroke the stroke ({@code null} not permitted). + * @param outlinePaint the outline paint ({@code null} permitted). + * @param outlineStroke the outline stroke ({@code null} permitted). * @param alpha the alpha transparency (must be in the range 0.0f to * 1.0f). * - * @throws IllegalArgumentException if <code>paint</code> or - * <code>stroke</code> is <code>null</code>, or <code>alpha</code> is + * @throws IllegalArgumentException if {@code paint} or + * {@code stroke} is {@code null}, or {@code alpha} is * not in the specified range. */ protected Marker(Paint paint, Stroke stroke, Paint outlinePaint, @@ -187,6 +190,7 @@ this.labelFont = new Font("SansSerif", Font.PLAIN, 9); this.labelPaint = Color.black; + this.labelBackgroundColor = new Color(100, 100, 100, 100); this.labelAnchor = RectangleAnchor.TOP_LEFT; this.labelOffset = new RectangleInsets(3.0, 3.0, 3.0, 3.0); this.labelOffsetType = LengthAdjustmentType.CONTRACT; @@ -198,7 +202,7 @@ /** * Returns the paint. * - * @return The paint (never <code>null</code>). + * @return The paint (never {@code null}). * * @see #setPaint(Paint) */ @@ -210,7 +214,7 @@ * Sets the paint and sends a {@link MarkerChangeEvent} to all registered * listeners. * - * @param paint the paint (<code>null</code> not permitted). + * @param paint the paint ({@code null} not permitted). * * @see #getPaint() */ @@ -223,7 +227,7 @@ /** * Returns the stroke. * - * @return The stroke (never <code>null</code>). + * @return The stroke (never {@code null}). * * @see #setStroke(Stroke) */ @@ -235,7 +239,7 @@ * Sets the stroke and sends a {@link MarkerChangeEvent} to all registered * listeners. * - * @param stroke the stroke (<code>null</code> not permitted). + * @param stroke the stroke ({@code null}not permitted). * * @see #getStroke() */ @@ -248,7 +252,7 @@ /** * Returns the outline paint. * - * @return The outline paint (possibly <code>null</code>). + * @return The outline paint (possibly {@code null}). * * @see #setOutlinePaint(Paint) */ @@ -260,7 +264,7 @@ * Sets the outline paint and sends a {@link MarkerChangeEvent} to all * registered listeners. * - * @param paint the paint (<code>null</code> permitted). + * @param paint the paint ({@code null} permitted). * * @see #getOutlinePaint() */ @@ -272,7 +276,7 @@ /** * Returns the outline stroke. * - * @return The outline stroke (possibly <code>null</code>). + * @return The outline stroke (possibly {@code null}). * * @see #setOutlineStroke(Stroke) */ @@ -284,7 +288,7 @@ * Sets the outline stroke and sends a {@link MarkerChangeEvent} to all * registered listeners. * - * @param stroke the stroke (<code>null</code> permitted). + * @param stroke the stroke ({@code null} permitted). * * @see #getOutlineStroke() */ @@ -313,7 +317,7 @@ * @param alpha the alpha transparency (must be in the range 0.0f to * 1.0f). * - * @throws IllegalArgumentException if <code>alpha</code> is not in the + * @throws IllegalArgumentException if {@code alpha} is not in the * specified range. * * @see #getAlpha() @@ -328,9 +332,9 @@ } /** - * Returns the label (if <code>null</code> no label is displayed). + * Returns the label (if {@code null} no label is displayed). * - * @return The label (possibly <code>null</code>). + * @return The label (possibly {@code null}). * * @see #setLabel(String) */ @@ -339,10 +343,10 @@ } /** - * Sets the label (if <code>null</code> no label is displayed) and sends a + * Sets the label (if {@code null} no label is displayed) and sends a * {@link MarkerChangeEvent} to all registered listeners. * - * @param label the label (<code>null</code> permitted). + * @param label the label ({@code null} permitted). * * @see #getLabel() */ @@ -354,7 +358,7 @@ /** * Returns the label font. * - * @return The label font (never <code>null</code>). + * @return The label font (never {@code null}). * * @see #setLabelFont(Font) */ @@ -366,7 +370,7 @@ * Sets the label font and sends a {@link MarkerChangeEvent} to all * registered listeners. * - * @param font the font (<code>null</code> not permitted). + * @param font the font ({@code null} not permitted). * * @see #getLabelFont() */ @@ -379,7 +383,7 @@ /** * Returns the label paint. * - * @return The label paint (never </code>null</code>). + * @return The label paint (never {@code null}). * * @see #setLabelPaint(Paint) */ @@ -391,7 +395,7 @@ * Sets the label paint and sends a {@link MarkerChangeEvent} to all * registered listeners. * - * @param paint the paint (<code>null</code> not permitted). + * @param paint the paint ({@code null} not permitted). * * @see #getLabelPaint() */ @@ -400,12 +404,36 @@ this.labelPaint = paint; notifyListeners(new MarkerChangeEvent(this)); } + + /** + * Returns the label background color. The default value is + * {@code Color(100, 100, 100, 100)}.. + * + * @return The label background color (never {@code null}). + * + * @since 1.0.18 + */ + public Color getLabelBackgroundColor() { + return this.labelBackgroundColor; + } /** + * Sets the label background color. + * + * @param color the color ({@code null} not permitted). + * + * @since 1.0.18 + */ + public void setLabelBackgroundColor(Color color) { + ParamChecks.nullNotPermitted(color, "color"); + this.labelBackgroundColor = color; + } + + /** * Returns the label anchor. This defines the position of the label * anchor, relative to the bounds of the marker. * - * @return The label anchor (never <code>null</code>). + * @return The label anchor (never {@code null}). * * @see #setLabelAnchor(RectangleAnchor) */ @@ -418,7 +446,7 @@ * registered listeners. The anchor defines the position of the label * anchor, relative to the bounds of the marker. * - * @param anchor the anchor (<code>null</code> not permitted). + * @param anchor the anchor ({@code null} not permitted). * * @see #getLabelAnchor() */ @@ -431,7 +459,7 @@ /** * Returns the label offset. * - * @return The label offset (never <code>null</code>). + * @return The label offset (never {@code null}). * * @see #setLabelOffset(RectangleInsets) */ @@ -443,7 +471,7 @@ * Sets the label offset and sends a {@link MarkerChangeEvent} to all * registered listeners. * - * @param offset the label offset (<code>null</code> not permitted). + * @param offset the label offset ({@code null} not permitted). * * @see #getLabelOffset() */ @@ -456,7 +484,7 @@ /** * Returns the label offset type. * - * @return The type (never <code>null</code>). + * @return The type (never {@code null}). * * @see #setLabelOffsetType(LengthAdjustmentType) */ @@ -468,7 +496,7 @@ * Sets the label offset type and sends a {@link MarkerChangeEvent} to all * registered listeners. * - * @param adj the type (<code>null</code> not permitted). + * @param adj the type ({@code null} not permitted). * * @see #getLabelOffsetType() */ @@ -481,7 +509,7 @@ /** * Returns the label text anchor. * - * @return The label text anchor (never <code>null</code>). + * @return The label text anchor (never {@code null}). * * @see #setLabelTextAnchor(TextAnchor) */ @@ -493,7 +521,7 @@ * Sets the label text anchor and sends a {@link MarkerChangeEvent} to * all registered listeners. * - * @param anchor the label text anchor (<code>null</code> not permitted). + * @param anchor the label text anchor ({@code null} not permitted). * * @see #getLabelTextAnchor() */ @@ -563,7 +591,7 @@ /** * Tests the marker for equality with an arbitrary object. * - * @param obj the object (<code>null</code> permitted). + * @param obj the object ({@code null} permitted). * * @return A boolean. */ @@ -600,6 +628,9 @@ if (!PaintUtilities.equal(this.labelPaint, that.labelPaint)) { return false; } + if (!this.labelBackgroundColor.equals(that.labelBackgroundColor)) { + return false; + } if (this.labelAnchor != that.labelAnchor) { return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:39:05
|
Revision: 3231 http://sourceforge.net/p/jfreechart/code/3231 Author: mungady Date: 2014-07-01 15:38:57 +0000 (Tue, 01 Jul 2014) Log Message: ----------- 2014-07-01 David Gilbert <dav...@ob...> * org/jfree/chart/plot/Marker.java (labelBackgroundColor): New field, (Marker): Initialise new field, (getLabelBackgroundColor): New method, (setLabelBackgroundColor): Likewise, (equals): Check new field, * org/jfree/chart/renderer/AbstractCategoryItemRenderer.java (drawRangeMarker): Paint background color. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java 2014-07-01 15:35:39 UTC (rev 3230) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/AbstractCategoryItemRenderer.java 2014-07-01 15:38:57 UTC (rev 3231) @@ -111,6 +111,7 @@ package org.jfree.chart.renderer.category; import java.awt.AlphaComposite; +import java.awt.Color; import java.awt.Composite; import java.awt.Font; import java.awt.GradientPaint; @@ -153,6 +154,7 @@ import org.jfree.chart.urls.CategoryURLGenerator; import org.jfree.chart.util.CloneUtils; import org.jfree.chart.util.ParamChecks; +import org.jfree.chart.util.TextUtils; import org.jfree.data.Range; import org.jfree.data.category.CategoryDataset; import org.jfree.data.general.DatasetUtilities; @@ -993,12 +995,17 @@ if (label != null) { Font labelFont = marker.getLabelFont(); g2.setFont(labelFont); - g2.setPaint(marker.getLabelPaint()); Point2D coordinates = calculateRangeMarkerTextAnchorPoint( g2, orientation, dataArea, line.getBounds2D(), marker.getLabelOffset(), LengthAdjustmentType.EXPAND, anchor); - TextUtilities.drawAlignedString(label, g2, + Rectangle2D rect = TextUtils.calcAlignedStringBounds(label, g2, + (float) coordinates.getX(), (float) coordinates.getY(), + marker.getLabelTextAnchor()); + g2.setPaint(marker.getLabelBackgroundColor()); + g2.fill(rect); + g2.setPaint(marker.getLabelPaint()); + TextUtils.drawAlignedString(label, g2, (float) coordinates.getX(), (float) coordinates.getY(), marker.getLabelTextAnchor()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:35:42
|
Revision: 3230 http://sourceforge.net/p/jfreechart/code/3230 Author: mungady Date: 2014-07-01 15:35:39 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Fixed Javadoc warnings. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogAxis.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogAxis.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogAxis.java 2014-07-01 15:35:02 UTC (rev 3229) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogAxis.java 2014-07-01 15:35:39 UTC (rev 3230) @@ -160,7 +160,7 @@ * Sets the base for the logarithm calculation and sends a change event to * all registered listeners. * - * @param base the base value (must be > 1.0). + * @param base the base value (must be > 1.0). * * @see #getBase() */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:35:09
|
Revision: 3229 http://sourceforge.net/p/jfreechart/code/3229 Author: mungady Date: 2014-07-01 15:35:02 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Fixed Javadoc warnings. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogarithmicAxis.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LayeredBarRenderer.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LineRenderer3D.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogarithmicAxis.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogarithmicAxis.java 2014-07-01 15:34:24 UTC (rev 3228) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/LogarithmicAxis.java 2014-07-01 15:35:02 UTC (rev 3229) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * -------------------- * LogarithmicAxis.java * -------------------- - * (C) Copyright 2000-2008, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Original Author: Michael Duffy / Eric Thomas; * Contributor(s): David Gilbert (for Object Refinery Limited); @@ -124,8 +124,8 @@ protected boolean allowNegativesFlag = false; /** - * Flag set true make axis throw exception if any values are - * <= 0 and 'allowNegativesFlag' is false. + * Flag set true make axis throw exception if any values are <= 0 and + * 'allowNegativesFlag' is false. */ protected boolean strictValuesFlag = true; Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LayeredBarRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LayeredBarRenderer.java 2014-07-01 15:34:24 UTC (rev 3228) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LayeredBarRenderer.java 2014-07-01 15:35:02 UTC (rev 3229) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ----------------------- * LayeredBarRenderer.java * ----------------------- - * (C) Copyright 2003-2009, by Arnaud Lelievre and Contributors. + * (C) Copyright 2003-2014, by Arnaud Lelievre and Contributors. * * Original Author: Arnaud Lelievre (for Garden); * Contributor(s): David Gilbert (for Object Refinery Limited); @@ -78,7 +78,7 @@ * Demo Collection: * <br><br> * <img src="../../../../../images/LayeredBarRendererSample.png" - * alt="LayeredBarRendererSample.png" /> + * alt="LayeredBarRendererSample.png"> */ public class LayeredBarRenderer extends BarRenderer implements Serializable { Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java 2014-07-01 15:34:24 UTC (rev 3228) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LineAndShapeRenderer.java 2014-07-01 15:35:02 UTC (rev 3229) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ------------------------- * LineAndShapeRenderer.java * ------------------------- - * (C) Copyright 2001-2009, by Object Refinery Limited and Contributors. + * (C) Copyright 2001-2014, by Object Refinery Limited and Contributors. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): Mark Watson (www.markwatson.com); @@ -123,7 +123,7 @@ * program included in the JFreeChart Demo Collection: * <br><br> * <img src="../../../../../images/LineAndShapeRendererSample.png" - * alt="LineAndShapeRendererSample.png" /> + * alt="LineAndShapeRendererSample.png"> */ public class LineAndShapeRenderer extends AbstractCategoryItemRenderer implements Cloneable, PublicCloneable, Serializable { @@ -798,7 +798,7 @@ * (expressed as a percentage of the overall category width), and sends * a {@link RendererChangeEvent} to all registered listeners. * - * @param margin the margin (0.0 <= margin < 1.0). + * @param margin the margin (0.0 <= margin < 1.0). * * @see #getItemMargin() * @see #getUseSeriesOffset() Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LineRenderer3D.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LineRenderer3D.java 2014-07-01 15:34:24 UTC (rev 3228) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/LineRenderer3D.java 2014-07-01 15:35:02 UTC (rev 3229) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ------------------- * LineRenderer3D.java * ------------------- - * (C) Copyright 2004-2013, by Tobias Selb and Contributors. + * (C) Copyright 2004-2014, by Tobias Selb and Contributors. * * Original Author: Tobias Selb (http://www.uepselon.com); * Contributor(s): David Gilbert (for Object Refinery Limited); @@ -94,7 +94,7 @@ * Demo Collection: * <br><br> * <img src="../../../../../images/LineRenderer3DSample.png" - * alt="LineRenderer3DSample.png" /> + * alt="LineRenderer3DSample.png"> */ public class LineRenderer3D extends LineAndShapeRenderer implements Effect3D, Serializable { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:34:27
|
Revision: 3228 http://sourceforge.net/p/jfreechart/code/3228 Author: mungady Date: 2014-07-01 15:34:24 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Fixed Javadoc warnings. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GanttRenderer.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GradientBarPainter.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/IntervalBarRenderer.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GanttRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GanttRenderer.java 2014-07-01 15:33:50 UTC (rev 3227) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GanttRenderer.java 2014-07-01 15:34:24 UTC (rev 3228) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ------------------ * GanttRenderer.java * ------------------ - * (C) Copyright 2003-2013, by Object Refinery Limited. + * (C) Copyright 2003-2014, by Object Refinery Limited. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; @@ -85,7 +85,7 @@ * included in the JFreeChart Demo Collection: * <br><br> * <img src="../../../../../images/GanttRendererSample.png" - * alt="GanttRendererSample.png" /> + * alt="GanttRendererSample.png"> */ public class GanttRenderer extends IntervalBarRenderer implements Serializable { Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GradientBarPainter.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GradientBarPainter.java 2014-07-01 15:33:50 UTC (rev 3227) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GradientBarPainter.java 2014-07-01 15:34:24 UTC (rev 3228) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ----------------------- * GradientBarPainter.java * ----------------------- - * (C) Copyright 2008-2013, by Object Refinery Limited. + * (C) Copyright 2008-2014, by Object Refinery Limited. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; @@ -81,9 +81,9 @@ /** * Creates a new instance. * - * @param g1 - * @param g2 - * @param g3 + * @param g1 percentage value defining the line between regions 1 and 2. + * @param g2 percentage value defining the line between regions 2 and 3. + * @param g3 percentage value defining the line between regions 3 and 4. */ public GradientBarPainter(double g1, double g2, double g3) { this.g1 = g1; Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java 2014-07-01 15:33:50 UTC (rev 3227) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GroupedStackedBarRenderer.java 2014-07-01 15:34:24 UTC (rev 3228) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ------------------------------ * GroupedStackedBarRenderer.java * ------------------------------ - * (C) Copyright 2004-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2004-2014, by Object Refinery Limited and Contributors. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; @@ -75,7 +75,7 @@ * program included in the JFreeChart Demo Collection: * <br><br> * <img src="../../../../../images/GroupedStackedBarRendererSample.png" - * alt="GroupedStackedBarRendererSample.png" /> + * alt="GroupedStackedBarRendererSample.png"> */ public class GroupedStackedBarRenderer extends StackedBarRenderer implements Cloneable, PublicCloneable, Serializable { Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/IntervalBarRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/IntervalBarRenderer.java 2014-07-01 15:33:50 UTC (rev 3227) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/IntervalBarRenderer.java 2014-07-01 15:34:24 UTC (rev 3228) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ------------------------ * IntervalBarRenderer.java * ------------------------ - * (C) Copyright 2002-2011, by Jeremy Bowman. + * (C) Copyright 2002-2014, by Jeremy Bowman. * * Original Author: Jeremy Bowman; * Contributor(s): David Gilbert (for Object Refinery Limited); @@ -89,7 +89,7 @@ * Demo Collection: * <br><br> * <img src="../../../../../images/IntervalBarRendererSample.png" - * alt="IntervalBarRendererSample.png" /> + * alt="IntervalBarRendererSample.png"> */ public class IntervalBarRenderer extends BarRenderer { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:33:52
|
Revision: 3227 http://sourceforge.net/p/jfreechart/code/3227 Author: mungady Date: 2014-07-01 15:33:50 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Fixed Javadoc warnings. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/CyclicNumberAxis.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/CyclicNumberAxis.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/CyclicNumberAxis.java 2014-07-01 15:30:10 UTC (rev 3226) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/CyclicNumberAxis.java 2014-07-01 15:33:50 UTC (rev 3227) @@ -913,7 +913,7 @@ /** * The cycle bound is a multiple of the period, plus optionally a start * offset. - * <p><pre>cb = n * period + offset</pre></p> + * <pre>cb = n * period + offset</pre> * * @return The current offset. * @@ -926,7 +926,7 @@ /** * The cycle bound is a multiple of the period, plus optionally a start * offset. - * <p><pre>cb = n * period + offset</pre></p> + * <pre>cb = n * period + offset</pre> * * @param offset The offset to set. * @@ -939,7 +939,7 @@ /** * The cycle bound is a multiple of the period, plus optionally a start * offset. - * <p><pre>cb = n * period + offset</pre></p> + * <pre>cb = n * period + offset</pre> * * @return The current period. * @@ -952,7 +952,7 @@ /** * The cycle bound is a multiple of the period, plus optionally a start * offset. - * <p><pre>cb = n * period + offset</pre></p> + * <pre>cb = n * period + offset</pre> * * @param period The period to set. * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:30:17
|
Revision: 3226 http://sourceforge.net/p/jfreechart/code/3226 Author: mungady Date: 2014-07-01 15:30:10 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Updated for release. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/README.txt Modified: branches/jfreechart-1.0.x-branch/README.txt =================================================================== --- branches/jfreechart-1.0.x-branch/README.txt 2014-07-01 15:29:07 UTC (rev 3225) +++ branches/jfreechart-1.0.x-branch/README.txt 2014-07-01 15:30:10 UTC (rev 3226) @@ -2,7 +2,7 @@ * JFREECHART: Version 1.0.18 * ******************************** -11 April 2014 +?? July 2014 (C)opyright 2000-2014, by Object Refinery Limited and Contributors. @@ -133,8 +133,8 @@ libraries are not free, licenses can be purchased from Object Refinery Limited. An additional tab added to the demo application in version 1.0.18 showcases -Orson Charts 3D, a new library by Object Refinery Limited. You can find out -more about Orson Charts at: +Orson Charts, a new 3D chart library by Object Refinery Limited. You can find +out more about Orson Charts at: http://www.object-refinery.com/orsoncharts/ @@ -161,7 +161,8 @@ -------------- A list of changes in recent versions: -1.0.18 : (11-Apr-2014) +1.0.18 : (??-Jul-2014) + - added JavaFX support; - improved LogAxis labelling; - center text support in RingPlot; - 'stepPoint' attribute in the XYStepAreaRenderer; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:29:12
|
Revision: 3225 http://sourceforge.net/p/jfreechart/code/3225 Author: mungady Date: 2014-07-01 15:29:07 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Updated NEWS. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/NEWS Modified: branches/jfreechart-1.0.x-branch/NEWS =================================================================== --- branches/jfreechart-1.0.x-branch/NEWS 2014-07-01 15:28:00 UTC (rev 3224) +++ branches/jfreechart-1.0.x-branch/NEWS 2014-07-01 15:29:07 UTC (rev 3225) @@ -1,15 +1,17 @@ JFreeChart 1.0.18 ----------------- -11 April 2014 +?? July 2014 -Modified LogAxis to support super-scripted labels, enhanced XYStepAreaRenderer -to support a 'stepPoint' attribute (patch from Lukasz Rzeszotarski), provided +Added JavaFX support with a new ChartViewer control that supports tooltips, +mouse clicks, panning, zooming and a context menu. Modified LogAxis to +support super-scripted labels, enhanced XYStepAreaRenderer to support a +'stepPoint' attribute (patch from Lukasz Rzeszotarski), provided configurable direction labels in CompassFormat (patch from Simon Legner), added methods to add data item objects to VectorSeries, XIntervalSeries, YIntervalSeries and XYIntervalSeries (for consistency with other data series objects), improved the TimeSeries range calculations, provided center text -support for the RingPlot class, updated JCommon to version 1.0.22 (this fixes -a bug in pie label rendering). +support for the RingPlot class, and updated JCommon to version 1.0.22 (this +fixes a bug in pie label rendering). Bug Fixes: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:28:08
|
Revision: 3224 http://sourceforge.net/p/jfreechart/code/3224 Author: mungady Date: 2014-07-01 15:28:00 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Fix Javadoc warnings. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java 2014-07-01 15:26:59 UTC (rev 3223) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/MinMaxCategoryRenderer.java 2014-07-01 15:28:00 UTC (rev 3224) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * --------------------------- * MinMaxCategoryRenderer.java * --------------------------- - * (C) Copyright 2002-2013, by Object Refinery Limited. + * (C) Copyright 2002-2014, by Object Refinery Limited. * * Original Author: Tomer Peretz; * Contributor(s): David Gilbert (for Object Refinery Limited); @@ -99,7 +99,7 @@ * JFreeChart Demo Collection: * <br><br> * <img src="../../../../../images/MinMaxCategoryRendererSample.png" - * alt="MinMaxCategoryRendererSample.png" /> + * alt="MinMaxCategoryRendererSample.png"> */ public class MinMaxCategoryRenderer extends AbstractCategoryItemRenderer { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2014-07-01 15:27:07
|
Revision: 3223 http://sourceforge.net/p/jfreechart/code/3223 Author: mungady Date: 2014-07-01 15:26:59 +0000 (Tue, 01 Jul 2014) Log Message: ----------- Fix Javadoc warnings. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StackedAreaRenderer.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StackedBarRenderer.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StackedAreaRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StackedAreaRenderer.java 2014-07-01 15:26:17 UTC (rev 3222) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StackedAreaRenderer.java 2014-07-01 15:26:59 UTC (rev 3223) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ------------------------ * StackedAreaRenderer.java * ------------------------ - * (C) Copyright 2002-2009, by Dan Rivett (d.r...@uk...) and + * (C) Copyright 2002-2014, by Dan Rivett (d.r...@uk...) and * Contributors. * * Original Author: Dan Rivett (adapted from AreaRenderer); @@ -94,7 +94,7 @@ * JFreeChart Demo Collection: * <br><br> * <img src="../../../../../images/StackedAreaRendererSample.png" - * alt="StackedAreaRendererSample.png" /> + * alt="StackedAreaRendererSample.png"> */ public class StackedAreaRenderer extends AreaRenderer implements Cloneable, PublicCloneable, Serializable { Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StackedBarRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StackedBarRenderer.java 2014-07-01 15:26:17 UTC (rev 3222) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StackedBarRenderer.java 2014-07-01 15:26:59 UTC (rev 3223) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ----------------------- * StackedBarRenderer.java * ----------------------- - * (C) Copyright 2000-2009, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): Richard Atkinson; @@ -122,7 +122,7 @@ * JFreeChart Demo Collection: * <br><br> * <img src="../../../../../images/StackedBarRendererSample.png" - * alt="StackedBarRendererSample.png" /> + * alt="StackedBarRendererSample.png"> */ public class StackedBarRenderer extends BarRenderer implements Cloneable, PublicCloneable, Serializable { Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java 2014-07-01 15:26:17 UTC (rev 3222) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StatisticalBarRenderer.java 2014-07-01 15:26:59 UTC (rev 3223) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * --------------------------- * StatisticalBarRenderer.java * --------------------------- - * (C) Copyright 2002-2011, by Pascal Collet and Contributors. + * (C) Copyright 2002-2014, by Pascal Collet and Contributors. * * Original Author: Pascal Collet; * Contributor(s): David Gilbert (for Object Refinery Limited); @@ -101,7 +101,7 @@ * included in the JFreeChart Demo Collection: * <br><br> * <img src="../../../../../images/StatisticalBarRendererSample.png" - * alt="StatisticalBarRendererSample.png" /> + * alt="StatisticalBarRendererSample.png"> */ public class StatisticalBarRenderer extends BarRenderer implements CategoryItemRenderer, Cloneable, PublicCloneable, Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java 2014-07-01 15:26:17 UTC (rev 3222) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/StatisticalLineAndShapeRenderer.java 2014-07-01 15:26:59 UTC (rev 3223) @@ -2,7 +2,7 @@ * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * - * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. + * (C) Copyright 2000-2014, by Object Refinery Limited and Contributors. * * Project Info: http://www.jfree.org/jfreechart/index.html * @@ -27,7 +27,7 @@ * ------------------------------------ * StatisticalLineAndShapeRenderer.java * ------------------------------------ - * (C) Copyright 2005-2009, by Object Refinery Limited and Contributors. + * (C) Copyright 2005-2014, by Object Refinery Limited and Contributors. * * Original Author: Mofeed Shahin; * Contributor(s): David Gilbert (for Object Refinery Limited); @@ -94,7 +94,7 @@ * included in the JFreeChart Demo Collection: * <br><br> * <img src="../../../../../images/StatisticalLineRendererSample.png" - * alt="StatisticalLineRendererSample.png" /> + * alt="StatisticalLineRendererSample.png"> */ public class StatisticalLineAndShapeRenderer extends LineAndShapeRenderer implements Cloneable, PublicCloneable, Serializable { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |