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...> - 2013-11-21 06:30:53
|
Revision: 2947 http://sourceforge.net/p/jfreechart/code/2947 Author: mungady Date: 2013-11-21 06:30:50 +0000 (Thu, 21 Nov 2013) Log Message: ----------- New class. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/ChangeLog Modified: branches/jfreechart-1.0.x-branch/ChangeLog =================================================================== --- branches/jfreechart-1.0.x-branch/ChangeLog 2013-11-21 06:23:23 UTC (rev 2946) +++ branches/jfreechart-1.0.x-branch/ChangeLog 2013-11-21 06:30:50 UTC (rev 2947) @@ -1,3 +1,24 @@ +2013-11-21 David Gilbert <dav...@ob...> + + * org/jfree/chart/utils/HMSNumberFormat.java: New class. + +2013-11-20 David Gilbert <dav...@ob...> + + * org/jfree/chart/renderer/xy/XYSplineRenderer.java + (FillType): New enumeration of fill types, + (XYSplineState): New class, + (fillType): New attribute, + (gradientPaintTransformer): Likewise, + (XYSplineRenderer(int, FillType)): New constructor, + (getFillType): New method, + (setFillType): Likewise, + (getGradientPaintTransformer): Likewise, + (setGradientPaintTransformer): Likewise, + (initialise): Use new XYSplineState class, + (drawPrimaryLineAsPath): Add filling options, + (equals): Check new attributes, + (ControlPoint): Removed. + 2013-09-17 David Gilbert <dav...@ob...> * org/jfree/chart/renderer/category/GradientBarPainter.java This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-11-21 06:23:27
|
Revision: 2946 http://sourceforge.net/p/jfreechart/code/2946 Author: mungady Date: 2013-11-21 06:23:23 +0000 (Thu, 21 Nov 2013) Log Message: ----------- Add @override tags. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/data/DefaultKeyedValues2D.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/data/DefaultKeyedValues2D.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/data/DefaultKeyedValues2D.java 2013-11-20 16:44:12 UTC (rev 2945) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/data/DefaultKeyedValues2D.java 2013-11-21 06:23:23 UTC (rev 2946) @@ -116,6 +116,7 @@ * * @see #getColumnCount() */ + @Override public int getRowCount() { return this.rowKeys.size(); } @@ -127,6 +128,7 @@ * * @see #getRowCount() */ + @Override public int getColumnCount() { return this.columnKeys.size(); } @@ -141,6 +143,7 @@ * * @see #getValue(Comparable, Comparable) */ + @Override public Number getValue(int row, int column) { Number result = null; DefaultKeyedValues rowData = (DefaultKeyedValues) this.rows.get(row); @@ -166,6 +169,7 @@ * @see #getRowIndex(Comparable) * @see #getColumnKey(int) */ + @Override public Comparable getRowKey(int row) { return (Comparable) this.rowKeys.get(row); } @@ -180,6 +184,7 @@ * @see #getRowKey(int) * @see #getColumnIndex(Comparable) */ + @Override public int getRowIndex(Comparable key) { ParamChecks.nullNotPermitted(key, "key"); if (this.sortRowKeys) { @@ -197,6 +202,7 @@ * * @see #getColumnKeys() */ + @Override public List getRowKeys() { return Collections.unmodifiableList(this.rowKeys); } @@ -212,6 +218,7 @@ * @see #getColumnIndex(Comparable) * @see #getRowKey(int) */ + @Override public Comparable getColumnKey(int column) { return (Comparable) this.columnKeys.get(column); } @@ -226,6 +233,7 @@ * @see #getColumnKey(int) * @see #getRowIndex(Comparable) */ + @Override public int getColumnIndex(Comparable key) { ParamChecks.nullNotPermitted(key, "key"); return this.columnKeys.indexOf(key); @@ -238,6 +246,7 @@ * * @see #getRowKeys() */ + @Override public List getColumnKeys() { return Collections.unmodifiableList(this.columnKeys); } @@ -255,6 +264,7 @@ * @see #addValue(Number, Comparable, Comparable) * @see #removeValue(Comparable, Comparable) */ + @Override public Number getValue(Comparable rowKey, Comparable columnKey) { ParamChecks.nullNotPermitted(rowKey, "rowKey"); ParamChecks.nullNotPermitted(columnKey, "columnKey"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-11-20 16:44:15
|
Revision: 2945 http://sourceforge.net/p/jfreechart/code/2945 Author: mungady Date: 2013-11-20 16:44:12 +0000 (Wed, 20 Nov 2013) Log Message: ----------- Rename test. Added Paths: ----------- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineAdditionalTest.java Removed Paths: ------------- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineTest2.java Copied: branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineAdditionalTest.java (from rev 2928, branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineTest2.java) =================================================================== --- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineAdditionalTest.java (rev 0) +++ branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineAdditionalTest.java 2013-11-20 16:44:12 UTC (rev 2945) @@ -0,0 +1,445 @@ +/* =========================================================== + * JFreeChart : a free chart library for the Java(tm) platform + * =========================================================== + * + * (C) Copyright 2000-2013, 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.] + * + * --------------------------- + * SegmentedTimelineTest2.java + * --------------------------- + * (C) Copyright 2004-2013, by Object Refinery Limited and Contributors. + * + * Original Author: David Gilbert (for Object Refinery Limited); + * Contributor(s): -; + * + * Changes + * ------- + * 02-Aug-2004 : Added standard header (DG); + * 02-Feb-2007 : Removed author tags all over JFreeChart sources (DG); + * + */ + +package org.jfree.chart.axis; + +import static org.junit.Assert.assertTrue; + +import java.util.Calendar; +import java.util.Date; +import java.util.Locale; +import java.util.TimeZone; +import org.junit.Test; + +/** + * Some tests for the {@link SegmentedTimeline} class. + */ +public class SegmentedTimelineAdditionalTest { + + /** + * Constructor + */ + public SegmentedTimelineAdditionalTest() { + super(); + } + + /** + * Test 1 checks 9am Friday 26 March 2004 converts to a timeline value and + * back again correctly. This is prior to Daylight Saving. + */ + @Test + public void test1() { + TimeZone savedZone = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); + Locale savedLocale = Locale.getDefault(); + Locale.setDefault(Locale.UK); + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 26); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date date = cal.getTime(); + + SegmentedTimeline timeline = getTimeline(); + long value = timeline.toTimelineValue(date); + long ms = timeline.toMillisecond(value); + Calendar cal2 = Calendar.getInstance(Locale.UK); + cal2.setTime(new Date(ms)); + Date reverted = cal2.getTime(); + assertTrue("test1", value == (900000 * 34) + && date.getTime() == reverted.getTime()); + TimeZone.setDefault(savedZone); + Locale.setDefault(savedLocale); + } + + /** + * Test 2 checks 9.15am Friday 26 March 2004 converts to a timeline value + * and back again correctly. This is prior to Daylight Saving. + */ + @Test + public void test2() { + TimeZone savedZone = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 26); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 15); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date date = cal.getTime(); + + SegmentedTimeline timeline = getTimeline(); + + long value = timeline.toTimelineValue(date); + long ms = timeline.toMillisecond(value); + Calendar cal2 = Calendar.getInstance(Locale.UK); + cal2.setTime(new Date(ms)); + Date reverted = cal2.getTime(); + assertTrue("test2", value == (900000 * 34 + 900000) + && date.getTime() == reverted.getTime()); + TimeZone.setDefault(savedZone); + } + + /** + * Test 3 checks 9.30am Friday 26 March 2004 converts to a timeline value + * and back again correctly. This is prior to Daylight Saving. + */ + @Test + public void test3() { + TimeZone savedZone = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 26); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 30); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date date = cal.getTime(); + SegmentedTimeline timeline = getTimeline(); + + long value = timeline.toTimelineValue(date); + long ms = timeline.toMillisecond(value); + + Calendar cal2 = Calendar.getInstance(Locale.UK); + cal2.setTime(new Date(ms)); + Date reverted = cal2.getTime(); + assertTrue("test3", value == (900000 * 34 + 900000 * 2) + && date.getTime() == reverted.getTime()); + TimeZone.setDefault(savedZone); + } + + /** + * Test 4 checks 9.30am Friday 26 March 2004 (+ 1 millisecond) converts to + * a timeline value and back again correctly. This is prior to Daylight + * Saving. + */ + @Test + public void test4() { + TimeZone savedZone = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 26); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 30); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 1); + Date date = cal.getTime(); + SegmentedTimeline timeline = getTimeline(); + + long value = timeline.toTimelineValue(date); + long ms = timeline.toMillisecond(value); + Calendar cal2 = Calendar.getInstance(Locale.UK); + cal2.setTime(new Date(ms)); + Date reverted = cal2.getTime(); + assertTrue("test4", value == (900000 * 34 + 900000 * 2 + 1) + && date.getTime() == reverted.getTime()); + TimeZone.setDefault(savedZone); + } + + /** + * Test 5 checks 5.30pm Thursday 25 March 2004 converts to a timeline + * value and back again correctly. As it is in the excluded segment, we + * expect it to map to 9am, Friday 26 March 2004. This is prior to + * Daylight Saving. + */ + @Test + public void test5() { + TimeZone savedZone = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 25); + cal.set(Calendar.HOUR_OF_DAY, 17); + cal.set(Calendar.MINUTE, 30); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date date = cal.getTime(); + SegmentedTimeline timeline = getTimeline(); + + long value = timeline.toTimelineValue(date); + long ms = timeline.toMillisecond(value); + Calendar cal2 = Calendar.getInstance(Locale.UK); + cal2.setTime(new Date(ms)); + Date reverted = cal2.getTime(); + Calendar expectedReverted = Calendar.getInstance(Locale.UK); + expectedReverted.set(Calendar.YEAR, 2004); + expectedReverted.set(Calendar.MONTH, Calendar.MARCH); + expectedReverted.set(Calendar.DAY_OF_MONTH, 26); + expectedReverted.set(Calendar.HOUR_OF_DAY, 9); + expectedReverted.set(Calendar.MINUTE, 0); + expectedReverted.set(Calendar.SECOND, 0); + expectedReverted.set(Calendar.MILLISECOND, 0); + + assertTrue("test5", value == (900000 * 34) + && expectedReverted.getTime().getTime() == reverted.getTime()); + TimeZone.setDefault(savedZone); + } + + /** + * Test 6 checks that 9am on Sunday 28 March 2004 converts to the timeline + * value and back again correctly. Note that Saturday and Sunday are + * excluded from the timeline, so we expect the value to map to 9am on + * Monday 29 March 2004. This is during daylight saving. + */ + @Test + public void test6() { + TimeZone savedZone = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 28); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date date = cal.getTime(); + SegmentedTimeline timeline = getTimeline(); + + long value = timeline.toTimelineValue(date); + long ms = timeline.toMillisecond(value); + Calendar cal2 = Calendar.getInstance(Locale.UK); + cal2.setTime(new Date(ms)); + Date reverted = cal2.getTime(); + + Calendar expectedReverted = Calendar.getInstance(Locale.UK); + expectedReverted.set(Calendar.YEAR, 2004); + expectedReverted.set(Calendar.MONTH, Calendar.MARCH); + expectedReverted.set(Calendar.DAY_OF_MONTH, 29); + expectedReverted.set(Calendar.HOUR_OF_DAY, 9); + expectedReverted.set(Calendar.MINUTE, 0); + expectedReverted.set(Calendar.SECOND, 0); + expectedReverted.set(Calendar.MILLISECOND, 0); + + assertTrue("test6", value == (900000 * 34 * 2) + && expectedReverted.getTime().getTime() == reverted.getTime()); + TimeZone.setDefault(savedZone); + } + + /** + * Test 7 checks 9am Monday 29 March 2004 converts to a timeline value and + * back again correctly. This is during Daylight Saving. + */ + @Test + public void test7() { + TimeZone savedZone = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 29); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date date = cal.getTime(); + + SegmentedTimeline timeline = getTimeline(); + long value = timeline.toTimelineValue(date); + long ms = timeline.toMillisecond(value); + + Calendar cal2 = Calendar.getInstance(Locale.UK); + cal2.setTime(new Date(ms)); + Date reverted = cal2.getTime(); + + Calendar expectedReverted = Calendar.getInstance(); + expectedReverted.set(Calendar.YEAR, 2004); + expectedReverted.set(Calendar.MONTH, Calendar.MARCH); + expectedReverted.set(Calendar.DAY_OF_MONTH, 29); + expectedReverted.set(Calendar.HOUR_OF_DAY, 9); + expectedReverted.set(Calendar.MINUTE, 0); + expectedReverted.set(Calendar.SECOND, 0); + expectedReverted.set(Calendar.MILLISECOND, 0); + + assertTrue("test7", value == (900000 * 34 * 2) + && expectedReverted.getTime().getTime() == reverted.getTime()); + TimeZone.setDefault(savedZone); + } + + /** + * Test 8. + */ + @Test + public void test8() { + TimeZone savedZone = TimeZone.getDefault(); + TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 29); + cal.set(Calendar.HOUR_OF_DAY, 10); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date date = cal.getTime(); + + SegmentedTimeline timeline = getTimeline(); + + // Add exception in included segments + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 29); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 15); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + timeline.addException(cal.getTime()); + + long value = timeline.toTimelineValue(date); + long ms = timeline.toMillisecond(value); + + Calendar cal2 = Calendar.getInstance(Locale.UK); + cal2.setTime(new Date(ms)); + Date reverted = cal2.getTime(); + + Calendar expectedReverted = Calendar.getInstance(); + expectedReverted.set(Calendar.YEAR, 2004); + expectedReverted.set(Calendar.MONTH, Calendar.MARCH); + expectedReverted.set(Calendar.DAY_OF_MONTH, 29); + expectedReverted.set(Calendar.HOUR_OF_DAY, 10); + expectedReverted.set(Calendar.MINUTE, 0); + expectedReverted.set(Calendar.SECOND, 0); + expectedReverted.set(Calendar.MILLISECOND, 0); + + assertTrue("test8", value == (900000 * 34 * 2 + 900000 * (4 - 1)) + && expectedReverted.getTime().getTime() == reverted.getTime()); + TimeZone.setDefault(savedZone); + } + + /** + * Creates a timeline from 9am on Thursday 25 March 2004 to 5pm on + * Tuesday 30 March 2004, for the UK locale. + * + * @return A timeline. + */ + private SegmentedTimeline getTimeline() { + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 25); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date from = cal.getTime(); + + cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 2004); + cal.set(Calendar.MONTH, Calendar.MARCH); + cal.set(Calendar.DAY_OF_MONTH, 30); + cal.set(Calendar.HOUR_OF_DAY, 17); + cal.set(Calendar.MINUTE, 30); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date to = cal.getTime(); + + return getTimeline(from, to); + } + + /** + * Returns a segmented timeline for 15 minute segments, Monday to Friday + * only, between 9am and 5pm. The UK locale is used. + * + * @param start the start date. + * @param end the end date. + * + * @return The timeline. + */ + private SegmentedTimeline getTimeline(Date start, Date end) { + + Calendar cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 1970); + cal.set(Calendar.MONTH, Calendar.JANUARY); + cal.set(Calendar.DAY_OF_MONTH, 1); + cal.set(Calendar.HOUR_OF_DAY, 9); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date open = cal.getTime(); + + cal = Calendar.getInstance(Locale.UK); + cal.set(Calendar.YEAR, 1970); + cal.set(Calendar.MONTH, Calendar.JANUARY); + cal.set(Calendar.DAY_OF_MONTH, 1); + cal.set(Calendar.HOUR_OF_DAY, 17); + cal.set(Calendar.MINUTE, 30); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + Date close = cal.getTime(); + + SegmentedTimeline result = null; + // Create a segmented time line (segment size : 15 minutes) + long quarterHourCount = (close.getTime() - open.getTime()) + / SegmentedTimeline.FIFTEEN_MINUTE_SEGMENT_SIZE; + long totalQuarterHourCount = SegmentedTimeline.DAY_SEGMENT_SIZE + / SegmentedTimeline.FIFTEEN_MINUTE_SEGMENT_SIZE; + result = new SegmentedTimeline( + SegmentedTimeline.FIFTEEN_MINUTE_SEGMENT_SIZE, + (int) quarterHourCount, + (int) (totalQuarterHourCount - quarterHourCount) + ); + result.setAdjustForDaylightSaving(true); + // Set start time + result.setStartTime(start.getTime()); + // Saturday and Sundays are non business hours + result.setBaseTimeline( + SegmentedTimeline.newMondayThroughFridayTimeline() + ); + /* PUT exclusions in test */ + if (start != null && end != null) { + result.addBaseTimelineExclusions(start.getTime(), end.getTime()); + } + + return result; + } + + +} Deleted: branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineTest2.java =================================================================== --- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineTest2.java 2013-11-20 15:48:40 UTC (rev 2944) +++ branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/axis/SegmentedTimelineTest2.java 2013-11-20 16:44:12 UTC (rev 2945) @@ -1,445 +0,0 @@ -/* =========================================================== - * JFreeChart : a free chart library for the Java(tm) platform - * =========================================================== - * - * (C) Copyright 2000-2013, 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.] - * - * --------------------------- - * SegmentedTimelineTest2.java - * --------------------------- - * (C) Copyright 2004-2013, by Object Refinery Limited and Contributors. - * - * Original Author: David Gilbert (for Object Refinery Limited); - * Contributor(s): -; - * - * Changes - * ------- - * 02-Aug-2004 : Added standard header (DG); - * 02-Feb-2007 : Removed author tags all over JFreeChart sources (DG); - * - */ - -package org.jfree.chart.axis; - -import static org.junit.Assert.assertTrue; - -import java.util.Calendar; -import java.util.Date; -import java.util.Locale; -import java.util.TimeZone; -import org.junit.Test; - -/** - * Some tests for the {@link SegmentedTimeline} class. - */ -public class SegmentedTimelineTest2 { - - /** - * Constructor - */ - public SegmentedTimelineTest2() { - super(); - } - - /** - * Test 1 checks 9am Friday 26 March 2004 converts to a timeline value and - * back again correctly. This is prior to Daylight Saving. - */ - @Test - public void test1() { - TimeZone savedZone = TimeZone.getDefault(); - TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); - Locale savedLocale = Locale.getDefault(); - Locale.setDefault(Locale.UK); - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 26); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date date = cal.getTime(); - - SegmentedTimeline timeline = getTimeline(); - long value = timeline.toTimelineValue(date); - long ms = timeline.toMillisecond(value); - Calendar cal2 = Calendar.getInstance(Locale.UK); - cal2.setTime(new Date(ms)); - Date reverted = cal2.getTime(); - assertTrue("test1", value == (900000 * 34) - && date.getTime() == reverted.getTime()); - TimeZone.setDefault(savedZone); - Locale.setDefault(savedLocale); - } - - /** - * Test 2 checks 9.15am Friday 26 March 2004 converts to a timeline value - * and back again correctly. This is prior to Daylight Saving. - */ - @Test - public void test2() { - TimeZone savedZone = TimeZone.getDefault(); - TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 26); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 15); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date date = cal.getTime(); - - SegmentedTimeline timeline = getTimeline(); - - long value = timeline.toTimelineValue(date); - long ms = timeline.toMillisecond(value); - Calendar cal2 = Calendar.getInstance(Locale.UK); - cal2.setTime(new Date(ms)); - Date reverted = cal2.getTime(); - assertTrue("test2", value == (900000 * 34 + 900000) - && date.getTime() == reverted.getTime()); - TimeZone.setDefault(savedZone); - } - - /** - * Test 3 checks 9.30am Friday 26 March 2004 converts to a timeline value - * and back again correctly. This is prior to Daylight Saving. - */ - @Test - public void test3() { - TimeZone savedZone = TimeZone.getDefault(); - TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 26); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 30); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date date = cal.getTime(); - SegmentedTimeline timeline = getTimeline(); - - long value = timeline.toTimelineValue(date); - long ms = timeline.toMillisecond(value); - - Calendar cal2 = Calendar.getInstance(Locale.UK); - cal2.setTime(new Date(ms)); - Date reverted = cal2.getTime(); - assertTrue("test3", value == (900000 * 34 + 900000 * 2) - && date.getTime() == reverted.getTime()); - TimeZone.setDefault(savedZone); - } - - /** - * Test 4 checks 9.30am Friday 26 March 2004 (+ 1 millisecond) converts to - * a timeline value and back again correctly. This is prior to Daylight - * Saving. - */ - @Test - public void test4() { - TimeZone savedZone = TimeZone.getDefault(); - TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 26); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 30); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 1); - Date date = cal.getTime(); - SegmentedTimeline timeline = getTimeline(); - - long value = timeline.toTimelineValue(date); - long ms = timeline.toMillisecond(value); - Calendar cal2 = Calendar.getInstance(Locale.UK); - cal2.setTime(new Date(ms)); - Date reverted = cal2.getTime(); - assertTrue("test4", value == (900000 * 34 + 900000 * 2 + 1) - && date.getTime() == reverted.getTime()); - TimeZone.setDefault(savedZone); - } - - /** - * Test 5 checks 5.30pm Thursday 25 March 2004 converts to a timeline - * value and back again correctly. As it is in the excluded segment, we - * expect it to map to 9am, Friday 26 March 2004. This is prior to - * Daylight Saving. - */ - @Test - public void test5() { - TimeZone savedZone = TimeZone.getDefault(); - TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 25); - cal.set(Calendar.HOUR_OF_DAY, 17); - cal.set(Calendar.MINUTE, 30); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date date = cal.getTime(); - SegmentedTimeline timeline = getTimeline(); - - long value = timeline.toTimelineValue(date); - long ms = timeline.toMillisecond(value); - Calendar cal2 = Calendar.getInstance(Locale.UK); - cal2.setTime(new Date(ms)); - Date reverted = cal2.getTime(); - Calendar expectedReverted = Calendar.getInstance(Locale.UK); - expectedReverted.set(Calendar.YEAR, 2004); - expectedReverted.set(Calendar.MONTH, Calendar.MARCH); - expectedReverted.set(Calendar.DAY_OF_MONTH, 26); - expectedReverted.set(Calendar.HOUR_OF_DAY, 9); - expectedReverted.set(Calendar.MINUTE, 0); - expectedReverted.set(Calendar.SECOND, 0); - expectedReverted.set(Calendar.MILLISECOND, 0); - - assertTrue("test5", value == (900000 * 34) - && expectedReverted.getTime().getTime() == reverted.getTime()); - TimeZone.setDefault(savedZone); - } - - /** - * Test 6 checks that 9am on Sunday 28 March 2004 converts to the timeline - * value and back again correctly. Note that Saturday and Sunday are - * excluded from the timeline, so we expect the value to map to 9am on - * Monday 29 March 2004. This is during daylight saving. - */ - @Test - public void test6() { - TimeZone savedZone = TimeZone.getDefault(); - TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 28); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date date = cal.getTime(); - SegmentedTimeline timeline = getTimeline(); - - long value = timeline.toTimelineValue(date); - long ms = timeline.toMillisecond(value); - Calendar cal2 = Calendar.getInstance(Locale.UK); - cal2.setTime(new Date(ms)); - Date reverted = cal2.getTime(); - - Calendar expectedReverted = Calendar.getInstance(Locale.UK); - expectedReverted.set(Calendar.YEAR, 2004); - expectedReverted.set(Calendar.MONTH, Calendar.MARCH); - expectedReverted.set(Calendar.DAY_OF_MONTH, 29); - expectedReverted.set(Calendar.HOUR_OF_DAY, 9); - expectedReverted.set(Calendar.MINUTE, 0); - expectedReverted.set(Calendar.SECOND, 0); - expectedReverted.set(Calendar.MILLISECOND, 0); - - assertTrue("test6", value == (900000 * 34 * 2) - && expectedReverted.getTime().getTime() == reverted.getTime()); - TimeZone.setDefault(savedZone); - } - - /** - * Test 7 checks 9am Monday 29 March 2004 converts to a timeline value and - * back again correctly. This is during Daylight Saving. - */ - @Test - public void test7() { - TimeZone savedZone = TimeZone.getDefault(); - TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 29); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date date = cal.getTime(); - - SegmentedTimeline timeline = getTimeline(); - long value = timeline.toTimelineValue(date); - long ms = timeline.toMillisecond(value); - - Calendar cal2 = Calendar.getInstance(Locale.UK); - cal2.setTime(new Date(ms)); - Date reverted = cal2.getTime(); - - Calendar expectedReverted = Calendar.getInstance(); - expectedReverted.set(Calendar.YEAR, 2004); - expectedReverted.set(Calendar.MONTH, Calendar.MARCH); - expectedReverted.set(Calendar.DAY_OF_MONTH, 29); - expectedReverted.set(Calendar.HOUR_OF_DAY, 9); - expectedReverted.set(Calendar.MINUTE, 0); - expectedReverted.set(Calendar.SECOND, 0); - expectedReverted.set(Calendar.MILLISECOND, 0); - - assertTrue("test7", value == (900000 * 34 * 2) - && expectedReverted.getTime().getTime() == reverted.getTime()); - TimeZone.setDefault(savedZone); - } - - /** - * Test 8. - */ - @Test - public void test8() { - TimeZone savedZone = TimeZone.getDefault(); - TimeZone.setDefault(TimeZone.getTimeZone("Europe/London")); - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 29); - cal.set(Calendar.HOUR_OF_DAY, 10); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date date = cal.getTime(); - - SegmentedTimeline timeline = getTimeline(); - - // Add exception in included segments - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 29); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 15); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - timeline.addException(cal.getTime()); - - long value = timeline.toTimelineValue(date); - long ms = timeline.toMillisecond(value); - - Calendar cal2 = Calendar.getInstance(Locale.UK); - cal2.setTime(new Date(ms)); - Date reverted = cal2.getTime(); - - Calendar expectedReverted = Calendar.getInstance(); - expectedReverted.set(Calendar.YEAR, 2004); - expectedReverted.set(Calendar.MONTH, Calendar.MARCH); - expectedReverted.set(Calendar.DAY_OF_MONTH, 29); - expectedReverted.set(Calendar.HOUR_OF_DAY, 10); - expectedReverted.set(Calendar.MINUTE, 0); - expectedReverted.set(Calendar.SECOND, 0); - expectedReverted.set(Calendar.MILLISECOND, 0); - - assertTrue("test8", value == (900000 * 34 * 2 + 900000 * (4 - 1)) - && expectedReverted.getTime().getTime() == reverted.getTime()); - TimeZone.setDefault(savedZone); - } - - /** - * Creates a timeline from 9am on Thursday 25 March 2004 to 5pm on - * Tuesday 30 March 2004, for the UK locale. - * - * @return A timeline. - */ - private SegmentedTimeline getTimeline() { - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 25); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date from = cal.getTime(); - - cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 2004); - cal.set(Calendar.MONTH, Calendar.MARCH); - cal.set(Calendar.DAY_OF_MONTH, 30); - cal.set(Calendar.HOUR_OF_DAY, 17); - cal.set(Calendar.MINUTE, 30); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date to = cal.getTime(); - - return getTimeline(from, to); - } - - /** - * Returns a segmented timeline for 15 minute segments, Monday to Friday - * only, between 9am and 5pm. The UK locale is used. - * - * @param start the start date. - * @param end the end date. - * - * @return The timeline. - */ - private SegmentedTimeline getTimeline(Date start, Date end) { - - Calendar cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 1970); - cal.set(Calendar.MONTH, Calendar.JANUARY); - cal.set(Calendar.DAY_OF_MONTH, 1); - cal.set(Calendar.HOUR_OF_DAY, 9); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date open = cal.getTime(); - - cal = Calendar.getInstance(Locale.UK); - cal.set(Calendar.YEAR, 1970); - cal.set(Calendar.MONTH, Calendar.JANUARY); - cal.set(Calendar.DAY_OF_MONTH, 1); - cal.set(Calendar.HOUR_OF_DAY, 17); - cal.set(Calendar.MINUTE, 30); - cal.set(Calendar.SECOND, 0); - cal.set(Calendar.MILLISECOND, 0); - Date close = cal.getTime(); - - SegmentedTimeline result = null; - // Create a segmented time line (segment size : 15 minutes) - long quarterHourCount = (close.getTime() - open.getTime()) - / SegmentedTimeline.FIFTEEN_MINUTE_SEGMENT_SIZE; - long totalQuarterHourCount = SegmentedTimeline.DAY_SEGMENT_SIZE - / SegmentedTimeline.FIFTEEN_MINUTE_SEGMENT_SIZE; - result = new SegmentedTimeline( - SegmentedTimeline.FIFTEEN_MINUTE_SEGMENT_SIZE, - (int) quarterHourCount, - (int) (totalQuarterHourCount - quarterHourCount) - ); - result.setAdjustForDaylightSaving(true); - // Set start time - result.setStartTime(start.getTime()); - // Saturday and Sundays are non business hours - result.setBaseTimeline( - SegmentedTimeline.newMondayThroughFridayTimeline() - ); - /* PUT exclusions in test */ - if (start != null && end != null) { - result.addBaseTimelineExclusions(start.getTime(), end.getTime()); - } - - return result; - } - - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-11-20 15:48:43
|
Revision: 2944 http://sourceforge.net/p/jfreechart/code/2944 Author: mungady Date: 2013-11-20 15:48:40 +0000 (Wed, 20 Nov 2013) Log Message: ----------- New tests. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/renderer/xy/XYSplineRendererTest.java Modified: branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/renderer/xy/XYSplineRendererTest.java =================================================================== --- branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/renderer/xy/XYSplineRendererTest.java 2013-11-20 15:48:14 UTC (rev 2943) +++ branches/jfreechart-1.0.x-branch/tests/org/jfree/chart/renderer/xy/XYSplineRendererTest.java 2013-11-20 15:48:40 UTC (rev 2944) @@ -36,7 +36,8 @@ * ------- * 25-Jul-2007 : Version 1 (DG); * 22-Apr-2008 : Added testPublicCloneable() (DG); - * + * 20-Nov-2013 : Add tests for new fields (DG); + * */ package org.jfree.chart.renderer.xy; @@ -48,6 +49,8 @@ import java.awt.geom.Rectangle2D; import org.jfree.chart.TestUtilities; +import org.jfree.ui.GradientPaintTransformType; +import org.jfree.ui.StandardGradientPaintTransformer; import org.jfree.util.PublicCloneable; import org.junit.Test; @@ -71,6 +74,23 @@ assertFalse(r1.equals(r2)); r2.setPrecision(9); assertTrue(r1.equals(r2)); + + r1.setFillType(XYSplineRenderer.FillType.TO_ZERO); + assertFalse(r1.equals(r2)); + r2.setFillType(XYSplineRenderer.FillType.TO_ZERO); + assertTrue(r1.equals(r2)); + + r1.setGradientPaintTransformer(null); + assertFalse(r1.equals(r2)); + r2.setGradientPaintTransformer(null); + assertTrue(r1.equals(r2)); + + r1.setGradientPaintTransformer(new StandardGradientPaintTransformer( + GradientPaintTransformType.HORIZONTAL)); + assertFalse(r1.equals(r2)); + r2.setGradientPaintTransformer(new StandardGradientPaintTransformer( + GradientPaintTransformType.HORIZONTAL)); + assertTrue(r1.equals(r2)); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-11-20 15:48:16
|
Revision: 2943 http://sourceforge.net/p/jfreechart/code/2943 Author: mungady Date: 2013-11-20 15:48:14 +0000 (Wed, 20 Nov 2013) Log Message: ----------- 2013-11-20 David Gilbert <dav...@ob...> * org/jfree/chart/renderer/xy/XYSplineRenderer.java (FillType): New enumeration of fill types, (XYSplineState): New class, (fillType): New attribute, (gradientPaintTransformer): Likewise, (XYSplineRenderer(int, FillType)): New constructor, (getFillType): New method, (setFillType): Likewise, (getGradientPaintTransformer): Likewise, (setGradientPaintTransformer): Likewise, (initialise): Use new XYSplineState class, (drawPrimaryLineAsPath): Add filling options, (equals): Check new attributes, (ControlPoint): Removed. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/XYSplineRenderer.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/XYSplineRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/XYSplineRenderer.java 2013-11-20 15:38:40 UTC (rev 2942) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/XYSplineRenderer.java 2013-11-20 15:48:14 UTC (rev 2943) @@ -27,7 +27,7 @@ * --------------------- * XYSplineRenderer.java * --------------------- - * (C) Copyright 2007-2011, by Klaus Rheinwald and Contributors. + * (C) Copyright 2007-2013, by Klaus Rheinwald and Contributors. * * Original Author: Klaus Rheinwald; * Contributor(s): Tobias von Petersdorff (tv...@ma..., @@ -40,22 +40,34 @@ * 03-Aug-2007 : Added new constructor (KR); * 25-Oct-2007 : Prevent duplicate control points (KR); * 19-May-2009 : Fixed FindBugs warnings, patch by Michal Wozniak (DG); + * 14-Sep-2013 : Replaced Vector with List, general cleanup (KR); + * 15-Sep-2013 : Added support to fill the area 'under' (between '0' and) the + * spline(KR); + * 15-Sep-2013 : Replaced ControlPoint with Point2D.Float (KR); * */ package org.jfree.chart.renderer.xy; +import java.awt.GradientPaint; import java.awt.Graphics2D; +import java.awt.Paint; +import java.awt.geom.GeneralPath; +import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; -import java.util.Vector; +import java.util.ArrayList; +import java.util.List; import org.jfree.chart.axis.ValueAxis; -import org.jfree.chart.event.RendererChangeEvent; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.PlotRenderingInfo; import org.jfree.chart.plot.XYPlot; +import org.jfree.chart.util.ParamChecks; import org.jfree.data.xy.XYDataset; +import org.jfree.ui.GradientPaintTransformer; import org.jfree.ui.RectangleEdge; +import org.jfree.ui.StandardGradientPaintTransformer; +import org.jfree.util.ObjectUtilities; /** * A renderer that connects data points with natural cubic splines and/or @@ -72,38 +84,95 @@ public class XYSplineRenderer extends XYLineAndShapeRenderer { /** - * To collect data points for later splining. + * An enumeration of the fill types for the renderer. + * + * @since 1.0.17 */ - private Vector points; - + public static enum FillType { + NONE, + TO_ZERO, + TO_LOWER_BOUND, + TO_UPPER_BOUND + } + /** + * Represents state information that applies to a single rendering of + * a chart. + */ + public static class XYSplineState extends State { + + /** The area to fill under the curve. */ + public GeneralPath fillArea; + + /** The points. */ + public List<Point2D> points; + + /** + * Creates a new state instance. + * + * @param info the plot rendering info. + */ + public XYSplineState(PlotRenderingInfo info) { + super(info); + this.fillArea = new GeneralPath(); + this.points = new ArrayList<Point2D>(); + } + } + + /** * Resolution of splines (number of line segments between points) */ private int precision; /** - * Creates a new instance with the 'precision' attribute defaulting to - * 5. + * A flag that can be set to specify + * to fill the area under the spline. */ + private FillType fillType; + + private GradientPaintTransformer gradientPaintTransformer; + + /** + * Creates a new instance with the precision attribute defaulting to 5 + * and no fill of the area 'under' the spline. + */ public XYSplineRenderer() { - this(5); + this(5, FillType.NONE); } /** - * Creates a new renderer with the specified precision. + * Creates a new renderer with the specified precision + * and no fill of the area 'under' (between '0' and) the spline. * * @param precision the number of points between data items. */ public XYSplineRenderer(int precision) { + this(precision, FillType.NONE); + } + + /** + * Creates a new renderer with the specified precision + * and specified fill of the area 'under' (between '0' and) the spline. + * + * @param precision the number of points between data items. + * @param fillType the type of fill beneath the curve (<code>null</code> + * not permitted). + * + * @since 1.0.17 + */ + public XYSplineRenderer(int precision, FillType fillType) { super(); if (precision <= 0) { throw new IllegalArgumentException("Requires precision > 0."); } + ParamChecks.nullNotPermitted(fillType, "fillType"); this.precision = precision; + this.fillType = fillType; + this.gradientPaintTransformer = new StandardGradientPaintTransformer(); } /** - * Get the resolution of splines. + * Returns the resolution of splines. * * @return Number of line segments between points. * @@ -130,6 +199,58 @@ } /** + * Returns the type of fill that the renderer draws beneath the curve. + * + * @return The type of fill (never <code>null</code>). + * + * @see #setFillMode(FillType) + * + * @since 1.0.17 + */ + public FillType getFillType() { + return this.fillType; + } + + /** + * Set the fill type and sends a {@link RendererChangeEvent} + * to all registered listeners. + * + * @param fillType the fill type (<code>null</code> not permitted). + * + * @see #getFillType() + * + * @since 1.0.17 + */ + public void setFillType(FillType fillType) { + this.fillType = fillType; + fireChangeEvent(); + } + + /** + * Returns the gradient paint transformer, or <code>null</code>. + * + * @return The gradient paint transformer (possibly <code>null</code>). + * + * @since 1.0.17 + */ + public GradientPaintTransformer getGradientPaintTransformer() { + return this.gradientPaintTransformer; + } + + /** + * Sets the gradient paint transformer and sends a + * {@link RendererChangeEvent} to all registered listeners. + * + * @param gpt the transformer (<code>null</code> permitted). + * + * @since 1.0.17 + */ + public void setGradientPaintTransformer(GradientPaintTransformer gpt) { + this.gradientPaintTransformer = gpt; + fireChangeEvent(); + } + + /** * Initialises the renderer. * <P> * This method will be called before the first item is rendered, giving the @@ -145,13 +266,13 @@ * * @return The renderer state. */ + @Override public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info) { - State state = (State) super.initialise(g2, dataArea, plot, data, info); + setDrawSeriesLineAsPath(true); + XYSplineState state = new XYSplineState(info); state.setProcessVisibleItemsOnly(false); - this.points = new Vector(); - setDrawSeriesLineAsPath(true); return state; } @@ -169,57 +290,92 @@ * @param pass the pass. * @param series the series index (zero-based). * @param item the item index (zero-based). - * @param domainAxis the domain axis. - * @param rangeAxis the range axis. + * @param xAxis the domain axis. + * @param yAxis the range axis. * @param dataArea the area within which the data is being drawn. */ + @Override protected void drawPrimaryLineAsPath(XYItemRendererState state, Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, - int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, + int series, int item, ValueAxis xAxis, ValueAxis yAxis, Rectangle2D dataArea) { + XYSplineState s = (XYSplineState) state; RectangleEdge xAxisLocation = plot.getDomainAxisEdge(); RectangleEdge yAxisLocation = plot.getRangeAxisEdge(); // get the data points double x1 = dataset.getXValue(series, item); double y1 = dataset.getYValue(series, item); - double transX1 = domainAxis.valueToJava2D(x1, dataArea, xAxisLocation); - double transY1 = rangeAxis.valueToJava2D(y1, dataArea, yAxisLocation); + double transX1 = xAxis.valueToJava2D(x1, dataArea, xAxisLocation); + double transY1 = yAxis.valueToJava2D(y1, dataArea, yAxisLocation); - // collect points + // Collect points if (!Double.isNaN(transX1) && !Double.isNaN(transY1)) { - ControlPoint p = new ControlPoint(plot.getOrientation() - == PlotOrientation.HORIZONTAL ? (float) transY1 - : (float) transX1, plot.getOrientation() - == PlotOrientation.HORIZONTAL ? (float) transX1 - : (float) transY1); - if (!this.points.contains(p)) { - this.points.add(p); - } + Point2D p = plot.getOrientation() == PlotOrientation.HORIZONTAL + ? new Point2D.Float((float) transY1, (float) transX1) + : new Point2D.Float((float) transX1, (float) transY1); + if (!s.points.contains(p)) + s.points.add(p); } - if (item == dataset.getItemCount(series) - 1) { - State s = (State) state; - // construct path - if (this.points.size() > 1) { + + if (item == dataset.getItemCount(series) - 1) { // construct path + if (s.points.size() > 1) { + Point2D origin; + if (this.fillType == FillType.TO_ZERO) { + float xz = (float) xAxis.valueToJava2D(0, dataArea, + yAxisLocation); + float yz = (float) yAxis.valueToJava2D(0, dataArea, + yAxisLocation); + origin = plot.getOrientation() == PlotOrientation.HORIZONTAL + ? new Point2D.Float(yz, xz) + : new Point2D.Float(xz, yz); + } else if (this.fillType == FillType.TO_LOWER_BOUND) { + float xlb = (float) xAxis.valueToJava2D( + xAxis.getLowerBound(), dataArea, xAxisLocation); + float ylb = (float) yAxis.valueToJava2D( + yAxis.getLowerBound(), dataArea, yAxisLocation); + origin = plot.getOrientation() == PlotOrientation.HORIZONTAL + ? new Point2D.Float(ylb, xlb) + : new Point2D.Float(xlb, ylb); + } else {// fillType == TO_UPPER_BOUND + float xub = (float) xAxis.valueToJava2D( + xAxis.getUpperBound(), dataArea, xAxisLocation); + float yub = (float) yAxis.valueToJava2D( + yAxis.getUpperBound(), dataArea, yAxisLocation); + origin = plot.getOrientation() == PlotOrientation.HORIZONTAL + ? new Point2D.Float(yub, xub) + : new Point2D.Float(xub, yub); + } + // we need at least two points to draw something - ControlPoint cp0 = (ControlPoint) this.points.get(0); - s.seriesPath.moveTo(cp0.x, cp0.y); - if (this.points.size() == 2) { + Point2D cp0 = s.points.get(0); + s.seriesPath.moveTo(cp0.getX(), cp0.getY()); + if (this.fillType != FillType.NONE) { + if (plot.getOrientation() == PlotOrientation.HORIZONTAL) { + s.fillArea.moveTo(origin.getX(), cp0.getY()); + } else { + s.fillArea.moveTo(cp0.getX(), origin.getY()); + } + s.fillArea.lineTo(cp0.getX(), cp0.getY()); + } + if (s.points.size() == 2) { // we need at least 3 points to spline. Draw simple line // for two points - ControlPoint cp1 = (ControlPoint) this.points.get(1); - s.seriesPath.lineTo(cp1.x, cp1.y); - } - else { + Point2D cp1 = s.points.get(1); + if (this.fillType != FillType.NONE) { + s.fillArea.lineTo(cp1.getX(), cp1.getY()); + s.fillArea.lineTo(cp1.getX(), origin.getY()); + s.fillArea.closePath(); + } + s.seriesPath.lineTo(cp1.getX(), cp1.getY()); + } else { // construct spline - int np = this.points.size(); // number of points + int np = s.points.size(); // number of points float[] d = new float[np]; // Newton form coefficients float[] x = new float[np]; // x-coordinates of nodes - float y; - float t; - float oldy = 0; - float oldt = 0; + float y, oldy; + float t, oldt; float[] a = new float[np]; float t1; @@ -227,14 +383,14 @@ float[] h = new float[np]; for (int i = 0; i < np; i++) { - ControlPoint cpi = (ControlPoint) this.points.get(i); + Point2D.Float cpi = (Point2D.Float) s.points.get(i); x[i] = cpi.x; d[i] = cpi.y; } - for (int i = 1; i <= np - 1; i++) { + for (int i = 1; i <= np - 1; i++) h[i] = x[i] - x[i - 1]; - } + float[] sub = new float[np - 1]; float[] diag = new float[np - 1]; float[] sup = new float[np - 1]; @@ -249,10 +405,8 @@ solveTridiag(sub, diag, sup, a, np - 2); // note that a[0]=a[np-1]=0 - // draw oldt = x[0]; oldy = d[0]; - s.seriesPath.moveTo(oldt, oldy); for (int i = 1; i <= np - 1; i++) { // loop over intervals between nodes for (int j = 1; j <= this.precision; j++) { @@ -263,18 +417,46 @@ + d[i]) * t1) / h[i]; t = x[i - 1] + t1; s.seriesPath.lineTo(t, y); + if (this.fillType != FillType.NONE) { + s.fillArea.lineTo(t, y); + } } } } - // draw path + // Add last point @ y=0 for fillPath and close path + if (this.fillType != FillType.NONE) { + if (plot.getOrientation() == PlotOrientation.HORIZONTAL) { + s.fillArea.lineTo(origin.getX(), s.points.get( + s.points.size() - 1).getY()); + } else { + s.fillArea.lineTo(s.points.get( + s.points.size() - 1).getX(), origin.getY()); + } + s.fillArea.closePath(); + } + + // fill under the curve... + if (this.fillType != FillType.NONE) { + Paint fp = getSeriesFillPaint(series); + if (this.gradientPaintTransformer != null + && fp instanceof GradientPaint) { + GradientPaint gp = this.gradientPaintTransformer + .transform((GradientPaint) fp, s.fillArea); + g2.setPaint(gp); + } else { + g2.setPaint(fp); + } + g2.fill(s.fillArea); + s.fillArea.reset(); + } + // then draw the line... drawFirstPassShape(g2, pass, series, item, s.seriesPath); } - // reset points vector - this.points = new Vector(); + s.points = new ArrayList<Point2D>(); } } - + private void solveTridiag(float[] sub, float[] diag, float[] sup, float[] b, int n) { /* solve linear system with tridiagonal n by n matrix a @@ -286,16 +468,15 @@ right hand side vector b[1:n] is overwritten with solution NOTE: 1...n is used in all arrays, 0 is unused */ int i; -/* factorization and forward substitution */ +/* factorization and forward substitution */ for (i = 2; i <= n; i++) { - sub[i] = sub[i] / diag[i - 1]; - diag[i] = diag[i] - sub[i] * sup[i - 1]; - b[i] = b[i] - sub[i] * b[i - 1]; + sub[i] /= diag[i - 1]; + diag[i] -= sub[i] * sup[i - 1]; + b[i] -= sub[i] * b[i - 1]; } - b[n] = b[n] / diag[n]; - for (i = n - 1; i >= 1; i--) { + b[n] /= diag[n]; + for (i = n - 1; i >= 1; i--) b[i] = (b[i] - sup[i] * b[i + 1]) / diag[i]; - } } /** @@ -305,6 +486,7 @@ * * @return A boolean. */ + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -316,52 +498,13 @@ if (this.precision != that.precision) { return false; } - return super.equals(obj); - } - - /** - * Represents a control point. - */ - class ControlPoint { - - /** The x-coordinate. */ - public float x; - - /** The y-coordinate. */ - public float y; - - /** - * Creates a new control point. - * - * @param x the x-coordinate. - * @param y the y-coordinate. - */ - public ControlPoint(float x, float y) { - this.x = x; - this.y = y; + if (this.fillType != that.fillType) { + return false; } - - /** - * Tests this point for equality with an arbitrary object. - * - * @param obj the object (<code>null</code> permitted. - * - * @return A boolean. - */ - public boolean equals(Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof ControlPoint)) { - return false; - } - ControlPoint that = (ControlPoint) obj; - if (this.x != that.x) { - return false; - } - /*&& y == ((ControlPoint) obj).y;*/ - return true; + if (!ObjectUtilities.equal(this.gradientPaintTransformer, + that.gradientPaintTransformer)) { + return false; } - + return super.equals(obj); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-11-20 15:38:42
|
Revision: 2942 http://sourceforge.net/p/jfreechart/code/2942 Author: mungady Date: 2013-11-20 15:38:40 +0000 (Wed, 20 Nov 2013) Log Message: ----------- Initialise the series path in the State constructor. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java 2013-11-20 15:37:36 UTC (rev 2941) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/XYLineAndShapeRenderer.java 2013-11-20 15:38:40 UTC (rev 2942) @@ -794,6 +794,7 @@ */ public State(PlotRenderingInfo info) { super(info); + this.seriesPath = new GeneralPath(); } /** @@ -853,16 +854,10 @@ * * @return The renderer state. */ - public XYItemRendererState initialise(Graphics2D g2, - Rectangle2D dataArea, - XYPlot plot, - XYDataset data, - PlotRenderingInfo info) { - - State state = new State(info); - state.seriesPath = new GeneralPath(); - return state; - + @Override + public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, + XYPlot plot, XYDataset data, PlotRenderingInfo info) { + return new State(info); } /** @@ -883,10 +878,11 @@ * (<code>null</code> permitted). * @param pass the pass index. */ + @Override public void drawItem(Graphics2D g2, XYItemRendererState state, - Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, - ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, - int series, int item, CrosshairState crosshairState, int pass) { + Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, + ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, + int series, int item, CrosshairState crosshairState, int pass) { // do nothing if item is not visible if (!getItemVisible(series, item)) { @@ -1052,16 +1048,10 @@ * @param dataArea the area within which the data is being drawn. */ protected void drawPrimaryLineAsPath(XYItemRendererState state, - Graphics2D g2, XYPlot plot, - XYDataset dataset, - int pass, - int series, - int item, - ValueAxis domainAxis, - ValueAxis rangeAxis, - Rectangle2D dataArea) { + Graphics2D g2, XYPlot plot, XYDataset dataset, int pass, + int series, int item, ValueAxis domainAxis, ValueAxis rangeAxis, + Rectangle2D dataArea) { - RectangleEdge xAxisLocation = plot.getDomainAxisEdge(); RectangleEdge yAxisLocation = plot.getRangeAxisEdge(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-11-20 15:37:39
|
Revision: 2941 http://sourceforge.net/p/jfreechart/code/2941 Author: mungady Date: 2013-11-20 15:37:36 +0000 (Wed, 20 Nov 2013) Log Message: ----------- Minor cleanup. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java 2013-11-20 10:25:43 UTC (rev 2940) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java 2013-11-20 15:37:36 UTC (rev 2941) @@ -302,8 +302,7 @@ @Override public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, XYPlot plot, XYDataset data, PlotRenderingInfo info) { - XYItemRendererState state = new XYItemRendererState(info); - return state; + return new XYItemRendererState(info); } // ITEM LABEL GENERATOR This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-11-20 10:25:46
|
Revision: 2940 http://sourceforge.net/p/jfreechart/code/2940 Author: mungady Date: 2013-11-20 10:25:43 +0000 (Wed, 20 Nov 2013) Log Message: ----------- Fixed some compiler warnings including those mentioned in bug #1115. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/JFreeChart.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/JFreeChart.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/JFreeChart.java 2013-11-20 10:18:51 UTC (rev 2939) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/JFreeChart.java 2013-11-20 10:25:43 UTC (rev 2940) @@ -1119,6 +1119,7 @@ * @param g2 the graphics device. * @param area the area within which the chart should be drawn. */ + @Override public void draw(Graphics2D g2, Rectangle2D area) { draw(g2, area, null, null); } @@ -1214,7 +1215,7 @@ if (this.title != null && this.title.isVisible()) { EntityCollection e = drawTitle(this.title, g2, nonTitleArea, (entities != null)); - if (e != null) { + if (e != null && entities != null) { entities.addAll(e); } } @@ -1225,7 +1226,7 @@ if (currentTitle.isVisible()) { EntityCollection e = drawTitle(currentTitle, g2, nonTitleArea, (entities != null)); - if (e != null) { + if (e != null && entities != null) { entities.addAll(e); } } @@ -1565,6 +1566,7 @@ * * @param event information about the chart title change. */ + @Override public void titleChanged(TitleChangeEvent event) { event.setChart(this); notifyListeners(event); @@ -1576,6 +1578,7 @@ * * @param event information about the plot change. */ + @Override public void plotChanged(PlotChangeEvent event) { event.setChart(this); notifyListeners(event); @@ -1588,6 +1591,7 @@ * * @return A boolean. */ + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -1703,6 +1707,7 @@ * * @throws CloneNotSupportedException if the chart is not cloneable. */ + @Override public Object clone() throws CloneNotSupportedException { JFreeChart chart = (JFreeChart) super.clone(); @@ -1873,8 +1878,8 @@ * * @return The JFreeChart logo. */ + @Override public Image getLogo() { - Image logo = super.getLogo(); if (logo == null) { URL imageURL = this.getClass().getClassLoader().getResource( @@ -1887,7 +1892,6 @@ } } return logo; - } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-11-20 10:18:56
|
Revision: 2939 http://sourceforge.net/p/jfreechart/code/2939 Author: mungady Date: 2013-11-20 10:18:51 +0000 (Wed, 20 Nov 2013) Log Message: ----------- Added some asserts to suppress compiler warnings as suggested in bug #1115. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/ChartFactory.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/ChartFactory.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/ChartFactory.java 2013-10-02 20:33:38 UTC (rev 2938) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/ChartFactory.java 2013-11-20 10:18:51 UTC (rev 2939) @@ -428,6 +428,7 @@ plot.setSectionPaint(key, Color.red); } if (showDifference) { + assert series != null; // suppresses compiler warning series.setValue(key + " (+100%)", newValue); } } @@ -447,6 +448,7 @@ plot.setSectionPaint(key, new Color((int) shade, 0, 0)); } if (showDifference) { + assert series != null; // suppresses compiler warning series.setValue(key + " (" + (percentChange >= 0 ? "+" : "") + NumberFormat.getPercentInstance().format( percentChange / 100.0) + ")", newValue); @@ -547,6 +549,7 @@ plot.setSectionPaint(key, Color.red); } if (showDifference) { + assert series != null; // suppresses compiler warning series.setValue(key + " (+100%)", newValue); } } @@ -566,6 +569,7 @@ plot.setSectionPaint(key, new Color((int) shade, 0, 0)); } if (showDifference) { + assert series != null; // suppresses compiler warning series.setValue(key + " (" + (percentChange >= 0 ? "+" : "") + NumberFormat.getPercentInstance().format( percentChange / 100.0) + ")", newValue); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-10-02 20:33:41
|
Revision: 2938 http://sourceforge.net/p/jfreechart/code/2938 Author: mungady Date: 2013-10-02 20:33:38 +0000 (Wed, 02 Oct 2013) Log Message: ----------- Fix failing test. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/tests/org/jfree/data/xy/XYSeriesCollectionTest.java Modified: branches/jfreechart-1.0.x-branch/tests/org/jfree/data/xy/XYSeriesCollectionTest.java =================================================================== --- branches/jfreechart-1.0.x-branch/tests/org/jfree/data/xy/XYSeriesCollectionTest.java 2013-10-02 20:24:15 UTC (rev 2937) +++ branches/jfreechart-1.0.x-branch/tests/org/jfree/data/xy/XYSeriesCollectionTest.java 2013-10-02 20:33:38 UTC (rev 2938) @@ -391,8 +391,7 @@ fail("Should have thrown IllegalArgumentException on negative key"); } catch (IllegalArgumentException e) { - assertEquals("java.beans.PropertyVetoException: Duplicate key2", - e.getMessage()); + assertEquals("Duplicate key2", e.getMessage()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-10-02 20:24:18
|
Revision: 2937 http://sourceforge.net/p/jfreechart/code/2937 Author: mungady Date: 2013-10-02 20:24:15 +0000 (Wed, 02 Oct 2013) Log Message: ----------- Update test include Modified Paths: -------------- branches/jfreechart-1.0.x-branch/pom.xml Modified: branches/jfreechart-1.0.x-branch/pom.xml =================================================================== --- branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:16:29 UTC (rev 2936) +++ branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:24:15 UTC (rev 2937) @@ -167,7 +167,7 @@ <version>2.10</version> <configuration> <includes> - <include>**/*Tests.java</include> + <include>**/*Test.java</include> </includes> <excludes> <exclude>**/JFreeChartTestSuite.java</exclude> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-10-02 20:16:32
|
Revision: 2936 http://sourceforge.net/p/jfreechart/code/2936 Author: mungady Date: 2013-10-02 20:16:29 +0000 (Wed, 02 Oct 2013) Log Message: ----------- Added Hamcrest dependency. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/pom.xml Modified: branches/jfreechart-1.0.x-branch/pom.xml =================================================================== --- branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:13:59 UTC (rev 2935) +++ branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:16:29 UTC (rev 2936) @@ -78,13 +78,6 @@ </dependency> <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.11</version> - <scope>test</scope> - </dependency> - - <dependency> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>1.3.04</version> @@ -97,6 +90,20 @@ <scope>provided</scope> </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.11</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.hamcrest</groupId> + <artifactId>hamcrest-core</artifactId> + <version>1.3</version> + <scope>test</scope> + </dependency> + </dependencies> <build> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-10-02 20:14:02
|
Revision: 2935 http://sourceforge.net/p/jfreechart/code/2935 Author: mungady Date: 2013-10-02 20:13:59 +0000 (Wed, 02 Oct 2013) Log Message: ----------- Update JUnit to 4.11 Modified Paths: -------------- branches/jfreechart-1.0.x-branch/pom.xml Modified: branches/jfreechart-1.0.x-branch/pom.xml =================================================================== --- branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:05:03 UTC (rev 2934) +++ branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:13:59 UTC (rev 2935) @@ -80,7 +80,7 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>3.8.2</version> + <version>4.11</version> <scope>test</scope> </dependency> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-10-02 20:05:06
|
Revision: 2934 http://sourceforge.net/p/jfreechart/code/2934 Author: mungady Date: 2013-10-02 20:05:03 +0000 (Wed, 02 Oct 2013) Log Message: ----------- Update source and target levels. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/pom.xml Modified: branches/jfreechart-1.0.x-branch/pom.xml =================================================================== --- branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:04:18 UTC (rev 2933) +++ branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:05:03 UTC (rev 2934) @@ -222,7 +222,7 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <project.source.level>1.3</project.source.level> - <project.target.level>1.3</project.target.level> + <project.source.level>1.6</project.source.level> + <project.target.level>1.6</project.target.level> </properties> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-10-02 20:04:20
|
Revision: 2933 http://sourceforge.net/p/jfreechart/code/2933 Author: mungady Date: 2013-10-02 20:04:18 +0000 (Wed, 02 Oct 2013) Log Message: ----------- Update animal sniffer plugin to check for Java 1.6 compliance. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/pom.xml Modified: branches/jfreechart-1.0.x-branch/pom.xml =================================================================== --- branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:03:15 UTC (rev 2932) +++ branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:04:18 UTC (rev 2933) @@ -122,7 +122,7 @@ <configuration> <signature> <groupId>org.codehaus.mojo.signature</groupId> - <artifactId>java14</artifactId> + <artifactId>java16</artifactId> <version>1.0</version> </signature> </configuration> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-10-02 20:03:18
|
Revision: 2932 http://sourceforge.net/p/jfreechart/code/2932 Author: mungady Date: 2013-10-02 20:03:15 +0000 (Wed, 02 Oct 2013) Log Message: ----------- Update version number and remove iText dependency. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/pom.xml Modified: branches/jfreechart-1.0.x-branch/pom.xml =================================================================== --- branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 19:58:38 UTC (rev 2931) +++ branches/jfreechart-1.0.x-branch/pom.xml 2013-10-02 20:03:15 UTC (rev 2932) @@ -10,7 +10,7 @@ <artifactId>jfreechart</artifactId> <groupId>org.jfree</groupId> - <version>1.0.15-SNAPSHOT</version> + <version>1.0.16-SNAPSHOT</version> <packaging>jar</packaging> <!-- this is required to host it on Sonatype's OSSRH --> @@ -96,11 +96,6 @@ <version>2.5</version> <scope>provided</scope> </dependency> - <dependency> - <groupId>com.lowagie</groupId> - <artifactId>itext</artifactId> - <version>2.1.5</version> - </dependency> </dependencies> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-10-02 19:58:40
|
Revision: 2931 http://sourceforge.net/p/jfreechart/code/2931 Author: mungady Date: 2013-10-02 19:58:38 +0000 (Wed, 02 Oct 2013) Log Message: ----------- Set version for next release. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/resources/JFreeChartResources.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/resources/JFreeChartResources.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/resources/JFreeChartResources.java 2013-09-29 18:12:04 UTC (rev 2930) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/resources/JFreeChartResources.java 2013-10-02 19:58:38 UTC (rev 2931) @@ -27,7 +27,7 @@ * ------------------------ * JFreeChartResources.java * ------------------------ - * (C) Copyright 2002-2009, by Object Refinery Limited. + * (C) Copyright 2002-2013, by Object Refinery Limited. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; @@ -55,7 +55,7 @@ /** The resources to be localised. */ private static final Object[][] CONTENTS = { {"project.name", "JFreeChart"}, - {"project.version", "1.0.15"}, + {"project.version", "1.0.17"}, {"project.info", "http://www.jfree.org/jfreechart/index.html"}, {"project.copyright", "(C)opyright 2000-2013, by Object Refinery Limited and Contributors"} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-09-29 18:12:06
|
Revision: 2930 http://sourceforge.net/p/jfreechart/code/2930 Author: mungady Date: 2013-09-29 18:12:04 +0000 (Sun, 29 Sep 2013) Log Message: ----------- Remove unused JDK1.7 import. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/SubCategoryAxis.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/SubCategoryAxis.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/SubCategoryAxis.java 2013-09-25 21:03:38 UTC (rev 2929) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/axis/SubCategoryAxis.java 2013-09-29 18:12:04 UTC (rev 2930) @@ -47,7 +47,7 @@ * report 2275695 (DG); * 02-Jul-2013 : Use ParamChecks (DG); * 01-Aug-2013 : Added attributedLabel override to support superscripts, - * subscripts and more (DG); * + * subscripts and more (DG); */ package org.jfree.chart.axis; @@ -64,7 +64,6 @@ import java.io.Serializable; import java.util.Iterator; import java.util.List; -import java.util.Objects; import org.jfree.chart.event.AxisChangeEvent; import org.jfree.chart.plot.CategoryPlot; @@ -178,6 +177,7 @@ * * @return The space required to draw the axis. */ + @Override public AxisSpace reserveSpace(Graphics2D g2, Plot plot, Rectangle2D plotArea, RectangleEdge edge, AxisSpace space) { @@ -248,6 +248,7 @@ * * @return The axis state (never <code>null</code>). */ + @Override public AxisState draw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState) { @@ -393,6 +394,7 @@ * * @return A boolean. */ + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -413,6 +415,12 @@ return false; } + /** + * Returns a hashcode for this instance. + * + * @return A hashcode for this instance. + */ + @Override public int hashCode() { return super.hashCode(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-09-25 21:03:41
|
Revision: 2929 http://sourceforge.net/p/jfreechart/code/2929 Author: mungady Date: 2013-09-25 21:03:38 +0000 (Wed, 25 Sep 2013) Log Message: ----------- Fix Javadoc error. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/CategoryPlot.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 2013-09-24 17:57:21 UTC (rev 2928) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/plot/CategoryPlot.java 2013-09-25 21:03:38 UTC (rev 2929) @@ -1737,7 +1737,7 @@ * Returns the order in which the columns are rendered. The default value * is <code>SortOrder.ASCENDING</code>. * - * @return The column rendering order (never <code>null</code). + * @return The column rendering order (never <code>null</code>). * * @see #setColumnRenderingOrder(SortOrder) */ @@ -2314,6 +2314,7 @@ * * @param event the event. */ + @Override public void rendererChanged(RendererChangeEvent event) { Plot parent = getParent(); if (parent != null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-09-24 17:57:23
|
Revision: 2928 http://sourceforge.net/p/jfreechart/code/2928 Author: mungady Date: 2013-09-24 17:57:21 +0000 (Tue, 24 Sep 2013) Log Message: ----------- Add override tags. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/data/category/DefaultCategoryDataset.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/data/category/DefaultCategoryDataset.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/data/category/DefaultCategoryDataset.java 2013-09-17 09:51:34 UTC (rev 2927) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/data/category/DefaultCategoryDataset.java 2013-09-24 17:57:21 UTC (rev 2928) @@ -27,7 +27,7 @@ * --------------------------- * DefaultCategoryDataset.java * --------------------------- - * (C) Copyright 2002-2008, by Object Refinery Limited. + * (C) Copyright 2002-2013, by Object Refinery Limited. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; @@ -83,6 +83,7 @@ * * @see #getColumnCount() */ + @Override public int getRowCount() { return this.data.getRowCount(); } @@ -94,6 +95,7 @@ * * @see #getRowCount() */ + @Override public int getColumnCount() { return this.data.getColumnCount(); } @@ -109,6 +111,7 @@ * @see #addValue(Number, Comparable, Comparable) * @see #removeValue(Comparable, Comparable) */ + @Override public Number getValue(int row, int column) { return this.data.getValue(row, column); } @@ -124,6 +127,7 @@ * @see #getRowKeys() * @see #getColumnKey(int) */ + @Override public Comparable getRowKey(int row) { return this.data.getRowKey(row); } @@ -137,6 +141,7 @@ * * @see #getRowKey(int) */ + @Override public int getRowIndex(Comparable key) { // defer null argument check return this.data.getRowIndex(key); @@ -149,6 +154,7 @@ * * @see #getRowKey(int) */ + @Override public List getRowKeys() { return this.data.getRowKeys(); } @@ -162,6 +168,7 @@ * * @see #getColumnIndex(Comparable) */ + @Override public Comparable getColumnKey(int column) { return this.data.getColumnKey(column); } @@ -175,6 +182,7 @@ * * @see #getColumnKey(int) */ + @Override public int getColumnIndex(Comparable key) { // defer null argument check return this.data.getColumnIndex(key); @@ -187,6 +195,7 @@ * * @see #getColumnKey(int) */ + @Override public List getColumnKeys() { return this.data.getColumnKeys(); } @@ -203,6 +212,7 @@ * * @see #addValue(Number, Comparable, Comparable) */ + @Override public Number getValue(Comparable rowKey, Comparable columnKey) { return this.data.getValue(rowKey, columnKey); } @@ -374,6 +384,7 @@ * * @return A boolean. */ + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -412,6 +423,7 @@ * * @return A hash code. */ + @Override public int hashCode() { return this.data.hashCode(); } @@ -424,6 +436,7 @@ * @throws CloneNotSupportedException if there is a problem cloning the * dataset. */ + @Override public Object clone() throws CloneNotSupportedException { DefaultCategoryDataset clone = (DefaultCategoryDataset) super.clone(); clone.data = (DefaultKeyedValues2D) this.data.clone(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-09-17 09:51:37
|
Revision: 2927 http://sourceforge.net/p/jfreechart/code/2927 Author: mungady Date: 2013-09-17 09:51:34 +0000 (Tue, 17 Sep 2013) Log Message: ----------- Add override tags. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GradientBarPainter.java 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 2013-09-17 09:49:42 UTC (rev 2926) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GradientBarPainter.java 2013-09-17 09:51:34 UTC (rev 2927) @@ -102,6 +102,7 @@ * @param base indicates which side of the rectangle is the base of the * bar. */ + @Override public void paintBar(Graphics2D g2, BarRenderer renderer, int row, int column, RectangularShape bar, RectangleEdge base) { @@ -118,8 +119,8 @@ c1 = gp.getColor2(); } else { - c0 = Color.blue; - c1 = Color.blue.brighter(); + c0 = Color.BLUE; + c1 = Color.BLUE.brighter(); } // as a special case, if the bar colour has alpha == 0, we draw @@ -132,12 +133,12 @@ Rectangle2D[] regions = splitVerticalBar(bar, this.g1, this.g2, this.g3); GradientPaint gp = new GradientPaint((float) regions[0].getMinX(), - 0.0f, c0, (float) regions[0].getMaxX(), 0.0f, Color.white); + 0.0f, c0, (float) regions[0].getMaxX(), 0.0f, Color.WHITE); g2.setPaint(gp); g2.fill(regions[0]); gp = new GradientPaint((float) regions[1].getMinX(), 0.0f, - Color.white, (float) regions[1].getMaxX(), 0.0f, c0); + Color.WHITE, (float) regions[1].getMaxX(), 0.0f, c0); g2.setPaint(gp); g2.fill(regions[1]); @@ -156,12 +157,12 @@ this.g3); GradientPaint gp = new GradientPaint(0.0f, (float) regions[0].getMinY(), c0, 0.0f, - (float) regions[0].getMaxY(), Color.white); + (float) regions[0].getMaxY(), Color.WHITE); g2.setPaint(gp); g2.fill(regions[0]); gp = new GradientPaint(0.0f, (float) regions[1].getMinY(), - Color.white, 0.0f, (float) regions[1].getMaxY(), c0); + Color.WHITE, 0.0f, (float) regions[1].getMaxY(), c0); g2.setPaint(gp); g2.fill(regions[1]); @@ -203,6 +204,7 @@ * bar. * @param pegShadow peg the shadow to the base of the bar? */ + @Override public void paintBarShadow(Graphics2D g2, BarRenderer renderer, int row, int column, RectangularShape bar, RectangleEdge base, boolean pegShadow) { @@ -341,6 +343,7 @@ * * @return A boolean. */ + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -366,6 +369,7 @@ * * @return A hash code. */ + @Override public int hashCode() { int hash = 37; hash = HashUtilities.hashCode(hash, this.g1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-09-17 09:49:45
|
Revision: 2926 http://sourceforge.net/p/jfreechart/code/2926 Author: mungady Date: 2013-09-17 09:49:42 +0000 (Tue, 17 Sep 2013) Log Message: ----------- 2013-09-17 David Gilbert <dav...@ob...> * org/jfree/chart/renderer/category/GradientBarPainter.java (paintBar): Fix coordinate bug for gradient paint. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/ChangeLog Modified: branches/jfreechart-1.0.x-branch/ChangeLog =================================================================== --- branches/jfreechart-1.0.x-branch/ChangeLog 2013-09-17 09:49:25 UTC (rev 2925) +++ branches/jfreechart-1.0.x-branch/ChangeLog 2013-09-17 09:49:42 UTC (rev 2926) @@ -1,3 +1,10 @@ +2013-09-17 David Gilbert <dav...@ob...> + + * org/jfree/chart/renderer/category/GradientBarPainter.java + (paintBar): Fix coordinate bug for gradient paint. + +---------- JFREECHART 1.0.16 RELEASED ------------------------ + 2013-09-12 David Gilbert <dav...@ob...> * org/jfree/chart/LocalizationBundle.properties This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-09-17 09:49:29
|
Revision: 2925 http://sourceforge.net/p/jfreechart/code/2925 Author: mungady Date: 2013-09-17 09:49:25 +0000 (Tue, 17 Sep 2013) Log Message: ----------- 2013-09-17 David Gilbert <dav...@ob...> * org/jfree/chart/renderer/category/GradientBarPainter.java (paintBar): Fix coordinate bug for gradient paint. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GradientBarPainter.java 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 2013-09-13 11:21:22 UTC (rev 2924) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/category/GradientBarPainter.java 2013-09-17 09:49:25 UTC (rev 2925) @@ -27,7 +27,7 @@ * ----------------------- * GradientBarPainter.java * ----------------------- - * (C) Copyright 2008, by Object Refinery Limited. + * (C) Copyright 2008-2013, by Object Refinery Limited. * * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; @@ -36,6 +36,7 @@ * -------- * 19-Jun-2008 : Version 1 (DG); * 15-Aug-2008 : Use outline paint and shadow paint (DG); + * 17-Sep-2013 : Fix coordinate error in gradient (DG); * */ @@ -155,7 +156,7 @@ this.g3); GradientPaint gp = new GradientPaint(0.0f, (float) regions[0].getMinY(), c0, 0.0f, - (float) regions[0].getMaxX(), Color.white); + (float) regions[0].getMaxY(), Color.white); g2.setPaint(gp); g2.fill(regions[0]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-09-13 11:21:25
|
Revision: 2924 http://sourceforge.net/p/jfreechart/code/2924 Author: mungady Date: 2013-09-13 11:21:22 +0000 (Fri, 13 Sep 2013) Log Message: ----------- Update README.txt 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 2013-09-13 11:17:08 UTC (rev 2923) +++ branches/jfreechart-1.0.x-branch/README.txt 2013-09-13 11:21:22 UTC (rev 2924) @@ -31,7 +31,7 @@ http://www.jfree.org/jfreechart/ -If you have an comments, suggestions or bugs to report, please post a +If you have any comments, suggestions or bugs to report, please post a message in the JFreeChart forum. ----------------- @@ -128,6 +128,10 @@ The complete source code for the demo application is available for download when you purchase the JFreeChart Developer Guide. +The demo application also links to the JFreeSVG and OrsonPDF libraries, to +provide export facilities to the SVG and PDF formats. These fast, lightweight +libraries are not free, licenses can be purchased from Object Refinery Limited. + --------------- 8. LIMITATIONS --------------- This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mu...@us...> - 2013-09-13 11:17:11
|
Revision: 2923 http://sourceforge.net/p/jfreechart/code/2923 Author: mungady Date: 2013-09-13 11:17:08 +0000 (Fri, 13 Sep 2013) Log Message: ----------- Add override tags. Modified Paths: -------------- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java Modified: branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java =================================================================== --- branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java 2013-09-13 11:09:47 UTC (rev 2922) +++ branches/jfreechart-1.0.x-branch/source/org/jfree/chart/renderer/xy/AbstractXYItemRenderer.java 2013-09-13 11:17:08 UTC (rev 2923) @@ -257,6 +257,7 @@ * * @return The pass count. */ + @Override public int getPassCount() { return 1; } @@ -266,6 +267,7 @@ * * @return The plot (possibly <code>null</code>). */ + @Override public XYPlot getPlot() { return this.plot; } @@ -275,6 +277,7 @@ * * @param plot the plot (<code>null</code> permitted). */ + @Override public void setPlot(XYPlot plot) { this.plot = plot; } @@ -296,15 +299,11 @@ * * @return The renderer state (never <code>null</code>). */ - public XYItemRendererState initialise(Graphics2D g2, - Rectangle2D dataArea, - XYPlot plot, - XYDataset data, - PlotRenderingInfo info) { - + @Override + public XYItemRendererState initialise(Graphics2D g2, Rectangle2D dataArea, + XYPlot plot, XYDataset data, PlotRenderingInfo info) { XYItemRendererState state = new XYItemRendererState(info); return state; - } // ITEM LABEL GENERATOR @@ -320,6 +319,7 @@ * * @return The generator (possibly <code>null</code>). */ + @Override public XYItemLabelGenerator getItemLabelGenerator(int series, int item) { // return the generator for ALL series, if there is one... if (this.itemLabelGenerator != null) { @@ -342,6 +342,7 @@ * * @return The generator (possibly <code>null</code>). */ + @Override public XYItemLabelGenerator getSeriesItemLabelGenerator(int series) { return (XYItemLabelGenerator) this.itemLabelGeneratorList.get(series); } @@ -353,6 +354,7 @@ * @param series the series index (zero based). * @param generator the generator (<code>null</code> permitted). */ + @Override public void setSeriesItemLabelGenerator(int series, XYItemLabelGenerator generator) { this.itemLabelGeneratorList.set(series, generator); @@ -364,6 +366,7 @@ * * @return The generator (possibly <code>null</code>). */ + @Override public XYItemLabelGenerator getBaseItemLabelGenerator() { return this.baseItemLabelGenerator; } @@ -374,6 +377,7 @@ * * @param generator the generator (<code>null</code> permitted). */ + @Override public void setBaseItemLabelGenerator(XYItemLabelGenerator generator) { this.baseItemLabelGenerator = generator; fireChangeEvent(); @@ -391,6 +395,7 @@ * * @return The generator (possibly <code>null</code>). */ + @Override public XYToolTipGenerator getToolTipGenerator(int series, int item) { // return the generator for ALL series, if there is one... if (this.toolTipGenerator != null) { @@ -413,6 +418,7 @@ * * @return The generator (possibly <code>null</code>). */ + @Override public XYToolTipGenerator getSeriesToolTipGenerator(int series) { return (XYToolTipGenerator) this.toolTipGeneratorList.get(series); } @@ -424,6 +430,7 @@ * @param series the series index (zero based). * @param generator the generator (<code>null</code> permitted). */ + @Override public void setSeriesToolTipGenerator(int series, XYToolTipGenerator generator) { this.toolTipGeneratorList.set(series, generator); @@ -437,6 +444,7 @@ * * @see #setBaseToolTipGenerator(XYToolTipGenerator) */ + @Override public XYToolTipGenerator getBaseToolTipGenerator() { return this.baseToolTipGenerator; } @@ -449,6 +457,7 @@ * * @see #getBaseToolTipGenerator() */ + @Override public void setBaseToolTipGenerator(XYToolTipGenerator generator) { this.baseToolTipGenerator = generator; fireChangeEvent(); @@ -461,6 +470,7 @@ * * @return The URL generator (possibly <code>null</code>). */ + @Override public XYURLGenerator getURLGenerator() { return this.urlGenerator; } @@ -471,6 +481,7 @@ * * @param urlGenerator the URL generator (<code>null</code> permitted). */ + @Override public void setURLGenerator(XYURLGenerator urlGenerator) { this.urlGenerator = urlGenerator; fireChangeEvent(); @@ -483,6 +494,7 @@ * * @param annotation the annotation (<code>null</code> not permitted). */ + @Override public void addAnnotation(XYAnnotation annotation) { // defer argument checking addAnnotation(annotation, Layer.FOREGROUND); @@ -495,6 +507,7 @@ * @param annotation the annotation (<code>null</code> not permitted). * @param layer the layer (<code>null</code> not permitted). */ + @Override public void addAnnotation(XYAnnotation annotation, Layer layer) { ParamChecks.nullNotPermitted(annotation, "annotation"); if (layer.equals(Layer.FOREGROUND)) { @@ -522,6 +535,7 @@ * @return A boolean to indicate whether or not the annotation was * successfully removed. */ + @Override public boolean removeAnnotation(XYAnnotation annotation) { boolean removed = this.foregroundAnnotations.remove(annotation); removed = removed & this.backgroundAnnotations.remove(annotation); @@ -534,6 +548,7 @@ * Removes all annotations and sends a {@link RendererChangeEvent} * to all registered listeners. */ + @Override public void removeAnnotations() { for(int i = 0; i < this.foregroundAnnotations.size(); i++){ XYAnnotation annotation @@ -559,6 +574,7 @@ * * @since 1.0.14 */ + @Override public void annotationChanged(AnnotationChangeEvent event) { fireChangeEvent(); } @@ -585,6 +601,7 @@ * * @see #setLegendItemLabelGenerator(XYSeriesLabelGenerator) */ + @Override public XYSeriesLabelGenerator getLegendItemLabelGenerator() { return this.legendItemLabelGenerator; } @@ -597,6 +614,7 @@ * * @see #getLegendItemLabelGenerator() */ + @Override public void setLegendItemLabelGenerator(XYSeriesLabelGenerator generator) { ParamChecks.nullNotPermitted(generator, "generator"); this.legendItemLabelGenerator = generator; @@ -663,6 +681,7 @@ * * @see #findRangeBounds(XYDataset) */ + @Override public Range findDomainBounds(XYDataset dataset) { return findDomainBounds(dataset, false); } @@ -709,6 +728,7 @@ * * @see #findDomainBounds(XYDataset) */ + @Override public Range findRangeBounds(XYDataset dataset) { return findRangeBounds(dataset, false); } @@ -768,6 +788,7 @@ * * @return The legend item collection (never <code>null</code>). */ + @Override public LegendItemCollection getLegendItems() { if (this.plot == null) { return new LegendItemCollection(); @@ -799,6 +820,7 @@ * * @return A legend item for the series. */ + @Override public LegendItem getLegendItem(int datasetIndex, int series) { XYPlot xyplot = getPlot(); if (xyplot == null) { @@ -862,6 +884,7 @@ * @param start the start value. * @param end the end value. */ + @Override public void fillDomainGridBand(Graphics2D g2, XYPlot plot, ValueAxis axis, Rectangle2D dataArea, double start, double end) { @@ -898,6 +921,7 @@ * @param start the start value. * @param end the end value. */ + @Override public void fillRangeGridBand(Graphics2D g2, XYPlot plot, ValueAxis axis, Rectangle2D dataArea, double start, double end) { @@ -932,11 +956,9 @@ * 3D effect). * @param value the value at which the grid line should be drawn. */ - public void drawDomainGridLine(Graphics2D g2, - XYPlot plot, - ValueAxis axis, - Rectangle2D dataArea, - double value) { + @Override + public void drawDomainGridLine(Graphics2D g2, XYPlot plot, ValueAxis axis, + Rectangle2D dataArea, double value) { Range range = axis.getRange(); if (!range.contains(value)) { @@ -1017,13 +1039,9 @@ * @param paint the paint. * @param stroke the stroke. */ - public void drawRangeLine(Graphics2D g2, - XYPlot plot, - ValueAxis axis, - Rectangle2D dataArea, - double value, - Paint paint, - Stroke stroke) { + @Override + public void drawRangeLine(Graphics2D g2, XYPlot plot, ValueAxis axis, + Rectangle2D dataArea, double value, Paint paint, Stroke stroke) { Range range = axis.getRange(); if (!range.contains(value)) { @@ -1057,11 +1075,9 @@ * @param marker the marker line. * @param dataArea the axis data area. */ - public void drawDomainMarker(Graphics2D g2, - XYPlot plot, - ValueAxis domainAxis, - Marker marker, - Rectangle2D dataArea) { + @Override + public void drawDomainMarker(Graphics2D g2, XYPlot plot, + ValueAxis domainAxis, Marker marker, Rectangle2D dataArea) { if (marker instanceof ValueMarker) { ValueMarker vm = (ValueMarker) marker; @@ -1228,12 +1244,9 @@ * @return The coordinates for drawing the marker label. */ protected Point2D calculateDomainMarkerTextAnchorPoint(Graphics2D g2, - PlotOrientation orientation, - Rectangle2D dataArea, - Rectangle2D markerArea, - RectangleInsets markerOffset, - LengthAdjustmentType labelOffsetType, - RectangleAnchor anchor) { + PlotOrientation orientation, Rectangle2D dataArea, + Rectangle2D markerArea, RectangleInsets markerOffset, + LengthAdjustmentType labelOffsetType, RectangleAnchor anchor) { Rectangle2D anchorRect = null; if (orientation == PlotOrientation.HORIZONTAL) { @@ -1257,11 +1270,9 @@ * @param marker the marker line. * @param dataArea the axis data area. */ - public void drawRangeMarker(Graphics2D g2, - XYPlot plot, - ValueAxis rangeAxis, - Marker marker, - Rectangle2D dataArea) { + @Override + public void drawRangeMarker(Graphics2D g2, XYPlot plot, ValueAxis rangeAxis, + Marker marker, Rectangle2D dataArea) { if (marker instanceof ValueMarker) { ValueMarker vm = (ValueMarker) marker; @@ -1428,12 +1439,9 @@ * @return The coordinates for drawing the marker label. */ private Point2D calculateRangeMarkerTextAnchorPoint(Graphics2D g2, - PlotOrientation orientation, - Rectangle2D dataArea, - Rectangle2D markerArea, - RectangleInsets markerOffset, - LengthAdjustmentType labelOffsetForRange, - RectangleAnchor anchor) { + PlotOrientation orientation, Rectangle2D dataArea, + Rectangle2D markerArea, RectangleInsets markerOffset, + LengthAdjustmentType labelOffsetForRange, RectangleAnchor anchor) { Rectangle2D anchorRect = null; if (orientation == PlotOrientation.HORIZONTAL) { @@ -1456,6 +1464,7 @@ * @throws CloneNotSupportedException if the renderer does not support * cloning. */ + @Override protected Object clone() throws CloneNotSupportedException { AbstractXYItemRenderer clone = (AbstractXYItemRenderer) super.clone(); // 'plot' : just retain reference, not a deep copy @@ -1514,6 +1523,7 @@ * * @return <code>true</code> or <code>false</code>. */ + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -1573,6 +1583,7 @@ * * @return The drawing supplier (possibly <code>null</code>). */ + @Override public DrawingSupplier getDrawingSupplier() { DrawingSupplier result = null; XYPlot p = getPlot(); @@ -1654,7 +1665,7 @@ String label = generator.generateLabel(dataset, series, item); // get the label position.. - ItemLabelPosition position = null; + ItemLabelPosition position; if (!negative) { position = getPositiveItemLabelPosition(series, item); } @@ -1683,12 +1694,10 @@ * @param layer the layer. * @param info the plot rendering info. */ - public void drawAnnotations(Graphics2D g2, - Rectangle2D dataArea, - ValueAxis domainAxis, - ValueAxis rangeAxis, - Layer layer, - PlotRenderingInfo info) { + @Override + public void drawAnnotations(Graphics2D g2, Rectangle2D dataArea, + ValueAxis domainAxis, ValueAxis rangeAxis, Layer layer, + PlotRenderingInfo info) { Iterator iterator = null; if (layer.equals(Layer.FOREGROUND)) { @@ -1851,6 +1860,7 @@ * used. You can use the base setting instead * ({@link #setBaseItemLabelGenerator(XYItemLabelGenerator)}). */ + @Override public void setItemLabelGenerator(XYItemLabelGenerator generator) { this.itemLabelGenerator = generator; fireChangeEvent(); @@ -1885,6 +1895,7 @@ * used. You can use the base setting instead * ({@link #setBaseToolTipGenerator(XYToolTipGenerator)}). */ + @Override public void setToolTipGenerator(XYToolTipGenerator generator) { this.toolTipGenerator = generator; fireChangeEvent(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |