From: David G. <mu...@us...> - 2007-04-04 10:58:26
|
Update of /cvsroot/jfreechart/jfreechart/source/org/jfree/chart/axis In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv14983/source/org/jfree/chart/axis Modified Files: Tag: STABLE_1-0-0 DateAxis.java DateTickUnit.java Log Message: 2007-04-04 Chris Boek <chr...@gm...> * source/org/jfree/chart/axis/DateAxis.java (previousStandardDate): Use time zone for Month, (refreshTicksHorizontal): Use time zone, (refreshTicksVertical): Likewise, * source/org/jfree/chart/axis/DateTickUnit.java (addToDate(Date, TimeZone)): New method, (rollDate(Date, TimeZone)): New method, * source/org/jfree/data/time/Hour.java (Hour(Date, TimeZone)): Peg to zone, * source/org/jfree/data/time/Millisecond.java (Millisecond(Date, TimeZone)): Peg to zone, * source/org/jfree/data/time/Month.java (Month(Date, TimeZone)): Peg to zone. Index: DateTickUnit.java =================================================================== RCS file: /cvsroot/jfreechart/jfreechart/source/org/jfree/chart/axis/DateTickUnit.java,v retrieving revision 1.7.2.2 retrieving revision 1.7.2.3 diff -C2 -d -r1.7.2.2 -r1.7.2.3 *** DateTickUnit.java 21 Mar 2007 10:07:47 -0000 1.7.2.2 --- DateTickUnit.java 4 Apr 2007 10:58:19 -0000 1.7.2.3 *************** *** 31,35 **** * * Original Author: David Gilbert (for Object Refinery Limited); ! * Contributor(s): -; * * $Id$ --- 31,35 ---- * * Original Author: David Gilbert (for Object Refinery Limited); ! * Contributor(s): Chris Boek; * * $Id$ *************** *** 48,51 **** --- 48,53 ---- * ------------- JFREECHART 1.0.x --------------------------------------------- * 21-Mar-2007 : Added toString() for debugging (DG); + * 04-Apr-2007 : Added new methods addToDate(Date, TimeZone) and rollDate(Date, + * TimeZone) (CB); * */ *************** *** 57,60 **** --- 59,63 ---- import java.util.Calendar; import java.util.Date; + import java.util.TimeZone; import org.jfree.util.ObjectUtilities; *************** *** 225,236 **** * * @return A new date one unit after the base date. */ public Date addToDate(Date base) { - Calendar calendar = Calendar.getInstance(); calendar.setTime(base); calendar.add(getCalendarField(this.unit), this.count); return calendar.getTime(); } --- 228,257 ---- * * @return A new date one unit after the base date. + * + * @see #addToDate(Date, TimeZone) */ public Date addToDate(Date base) { Calendar calendar = Calendar.getInstance(); calendar.setTime(base); calendar.add(getCalendarField(this.unit), this.count); return calendar.getTime(); + } + /** + * Calculates a new date by adding this unit to the base date. + * + * @param base the base date. + * @param zone the time zone for the date calculation. + * + * @return A new date one unit after the base date. + * + * @since 1.0.6 + * @see #addToDate(Date) + */ + public Date addToDate(Date base, TimeZone zone) { + Calendar calendar = Calendar.getInstance(zone); + calendar.setTime(base); + calendar.add(getCalendarField(this.unit), this.count); + return calendar.getTime(); } *************** *** 242,245 **** --- 263,268 ---- * @return The rolled date. + * + * @see #rollDate(Date, TimeZone) */ public Date rollDate(Date base) { *************** *** 251,254 **** --- 274,296 ---- /** + * Rolls the date forward by the amount specified by the roll unit and + * count. + * + * @param base the base date. + * @param zone the time zone. + * + * @return The rolled date. + * + * @since 1.0.6 + * @see #rollDate(Date) + */ + public Date rollDate(Date base, TimeZone zone) { + Calendar calendar = Calendar.getInstance(zone); + calendar.setTime(base); + calendar.add(getCalendarField(this.rollUnit), this.rollCount); + return calendar.getTime(); + } + + /** * Returns a field code that can be used with the <code>Calendar</code> * class. Index: DateAxis.java =================================================================== RCS file: /cvsroot/jfreechart/jfreechart/source/org/jfree/chart/axis/DateAxis.java,v retrieving revision 1.17.2.8 retrieving revision 1.17.2.9 diff -C2 -d -r1.17.2.8 -r1.17.2.9 *** DateAxis.java 18 Jan 2007 15:20:34 -0000 1.17.2.8 --- DateAxis.java 4 Apr 2007 10:58:19 -0000 1.17.2.9 *************** *** 36,39 **** --- 36,40 ---- * Bill Kelemen; * Pawel Pabis; + * Chris Boek; * * $Id$ *************** *** 112,115 **** --- 113,117 ---- * 18-Jan-2007 : Fixed bug 1638678, time zone for calendar in * previousStandardDate() (DG); + * 04-Apr-2007 : Use time zone in date calculations (CB); * */ *************** *** 908,912 **** calendar.clear(Calendar.MILLISECOND); calendar.set(years, value, 1, 0, 0, 0); ! Month month = new Month(calendar.getTime()); Date standardDate = calculateDateForPosition( month, this.tickMarkPosition); --- 910,914 ---- calendar.clear(Calendar.MILLISECOND); calendar.set(years, value, 1, 0, 0, 0); ! Month month = new Month(calendar.getTime(), this.timeZone); Date standardDate = calculateDateForPosition( month, this.tickMarkPosition); *************** *** 1459,1463 **** Date tickDate = calculateLowestVisibleTickValue(unit); Date upperDate = getMaximumDate(); ! // float lastX = Float.MIN_VALUE; while (tickDate.before(upperDate)) { --- 1461,1465 ---- Date tickDate = calculateLowestVisibleTickValue(unit); Date upperDate = getMaximumDate(); ! while (tickDate.before(upperDate)) { *************** *** 1496,1507 **** } ! Tick tick = new DateTick( ! tickDate, tickLabel, anchor, rotationAnchor, angle ! ); result.add(tick); ! tickDate = unit.addToDate(tickDate); } else { ! tickDate = unit.rollDate(tickDate); continue; } --- 1498,1508 ---- } ! Tick tick = new DateTick(tickDate, tickLabel, anchor, ! rotationAnchor, angle); result.add(tick); ! tickDate = unit.addToDate(tickDate, this.timeZone); } else { ! tickDate = unit.rollDate(tickDate, this.timeZone); continue; } *************** *** 1517,1526 **** break; case (DateTickUnit.MONTH) : ! tickDate = calculateDateForPosition(new Month(tickDate), ! this.tickMarkPosition); break; case(DateTickUnit.YEAR) : ! tickDate = calculateDateForPosition( ! new Year(tickDate), this.tickMarkPosition); break; --- 1518,1527 ---- break; case (DateTickUnit.MONTH) : ! tickDate = calculateDateForPosition(new Month(tickDate, ! this.timeZone), this.tickMarkPosition); break; case(DateTickUnit.YEAR) : ! tickDate = calculateDateForPosition(new Year(tickDate, ! this.timeZone), this.tickMarkPosition); break; *************** *** 1598,1605 **** rotationAnchor, angle); result.add(tick); ! tickDate = unit.addToDate(tickDate); } else { ! tickDate = unit.rollDate(tickDate); } } --- 1599,1606 ---- rotationAnchor, angle); result.add(tick); ! tickDate = unit.addToDate(tickDate, this.timeZone); } else { ! tickDate = unit.rollDate(tickDate, this.timeZone); } } |