You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2010/12/30 16:16:53 UTC

svn commit: r1053912 - in /wicket/trunk/wicket-datetime/src: main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java

Author: jdonnerstag
Date: Thu Dec 30 15:16:51 2010
New Revision: 1053912

URL: http://svn.apache.org/viewvc?rev=1053912&view=rev
Log:
changed DateTimeField implementation to new convertInput()

Modified:
    wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
    wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java

Modified: wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java?rev=1053912&r1=1053911&r2=1053912&view=diff
==============================================================================
--- wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java (original)
+++ wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java Thu Dec 30 15:16:51 2010
@@ -17,6 +17,7 @@
 package org.apache.wicket.extensions.yui.calendar;
 
 import java.util.Arrays;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.Locale;
 import java.util.Map;
@@ -324,59 +325,35 @@ public class DateTimeField extends FormC
 		{
 			// Get the converted input values
 			Date dateFieldInput = dateField.getConvertedInput();
-			Integer hours = hoursField.getConvertedInput();
-			Integer minutes = minutesField.getConvertedInput();
-			AM_PM amOrPm = amOrPmChoice.getConvertedInput();
-
-			// Default to today, if date entry was invisible
-			final MutableDateTime date;
-			if (dateFieldInput != null)
-			{
-				date = new MutableDateTime(dateFieldInput);
-			}
-			else
-			{
-				// Current date
-				date = new MutableDateTime();
-			}
-
-			// always set secs to 0
-			date.setSecondOfMinute(0);
-
-			// "Calculate" the date with the different input parameters
-
-			// The AM/PM field
-			boolean use12HourFormat = use12HourFormat();
-			if (use12HourFormat)
-			{
-				date.set(DateTimeFieldType.halfdayOfDay(), amOrPm == AM_PM.PM ? 1 : 0);
-			}
-
-			// The hours
-			if ((hoursField.isVisibleInHierarchy() == false) || (hours == null))
-			{
-				date.setHourOfDay(0);
-			}
-			else
-			{
-				date.set(DateTimeFieldType.hourOfDay(), hours % getMaximumHours(use12HourFormat));
-			}
-
-			// The minutes
-			if ((minutesField.isVisibleInHierarchy() == false) || (minutes == null))
-			{
-				date.setMinuteOfHour(0);
-			}
-			else
-			{
-				date.setMinuteOfHour(minutes);
-			}
-
-			// Use the client timezone to properly calculate the millisecs
-			TimeZone zone = getClientTimeZone();
-			if (zone != null)
-			{
-				date.setZoneRetainFields(DateTimeZone.forTimeZone(zone));
+			Integer hoursInput = hoursField.getConvertedInput();
+			Integer minutesInput = minutesField.getConvertedInput();
+			AM_PM amOrPmInput = amOrPmChoice.getConvertedInput();
+
+			// Default with "now"
+			if (dateFieldInput == null)
+			{
+				dateFieldInput = new Date();
+			}
+
+			// Get year, month and day ignoring any timezone of the Date object
+			Calendar cal = Calendar.getInstance();
+			cal.setTime(dateFieldInput);
+			int year = cal.get(Calendar.YEAR);
+			int month = cal.get(Calendar.MONTH) + 1;
+			int day = cal.get(Calendar.DAY_OF_MONTH);
+			int hours = (hoursInput == null ? 0 : hoursInput % 24);
+			int minutes = (minutesInput == null ? 0 : minutesInput);
+
+			// Use the input to create a date object with proper timezone
+			MutableDateTime date = new MutableDateTime(year, month, day, hours, minutes, 0, 0,
+				DateTimeZone.forTimeZone(getClientTimeZone()));
+
+			// Adjust for halfday if needed
+			if (use12HourFormat())
+			{
+				int halfday = (amOrPm == AM_PM.PM ? 1 : 0);
+				date.set(DateTimeFieldType.halfdayOfDay(), halfday);
+				date.set(DateTimeFieldType.hourOfDay(), hours % 12);
 			}
 
 			// The date will be in the server's timezone

Modified: wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java?rev=1053912&r1=1053911&r2=1053912&view=diff
==============================================================================
--- wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java (original)
+++ wicket/trunk/wicket-datetime/src/test/java/org/apache/wicket/extensions/yui/calendar/DatePickerTest.java Thu Dec 30 15:16:51 2010
@@ -18,6 +18,7 @@ package org.apache.wicket.extensions.yui
 
 import java.text.DateFormat;
 import java.text.ParseException;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.Locale;
@@ -186,21 +187,21 @@ public class DatePickerTest extends Wick
 		DateTimeZone.setDefault(DateTimeZone.forTimeZone(tzServer));
 		Locale.setDefault(Locale.GERMAN);
 
-		Date orig = convertDate("06.11.2010", null, null, null, false, tzClient);
-		Date origJoda = convertDateJoda("06.11.2010", null, null, null, false, tzClient);
+// Date orig = convertDate("06.11.2010", null, null, null, false, tzClient);
+// Date origJoda = convertDateJoda("06.11.2010", null, null, null, false, tzClient);
 		Date orig3 = convertDateNew("06.11.2010", null, null, null, false, tzClient);
 
 		MutableDateTime dt = new MutableDateTime(DateTimeZone.forTimeZone(tzClient));
 		dt.setDateTime(2010, 11, 06, 0, 0, 0, 0);
 		Date date = new Date(dt.getMillis());
 
-		log.error("actual: " + orig.getTime() + "; joda: " + origJoda.getTime() + "; origNew: " +
+		log.error(/* "actual: " + orig.getTime() + "; joda: " + origJoda.getTime() + */"; origNew: " +
 			orig3.getTime() + "; expected: " + date.getTime());
-		log.error("actual: " + orig + "; joda: " + origJoda + "; origNew: " + orig3 +
+		log.error(/* "actual: " + orig + "; joda: " + origJoda + */"; origNew: " + orig3 +
 			"; expected: " + date);
 		assertEquals(date.getTime(), orig3.getTime());
-		assertEquals(date.getTime(), orig.getTime());
-		assertEquals(origJoda.getTime(), orig.getTime());
+// assertEquals(date.getTime(), orig.getTime());
+// assertEquals(origJoda.getTime(), orig.getTime());
 	}
 
 	/**
@@ -217,21 +218,21 @@ public class DatePickerTest extends Wick
 		DateTimeZone.setDefault(DateTimeZone.forTimeZone(tzServer));
 		Locale.setDefault(Locale.GERMAN);
 
-		Date orig = convertDate("06.11.2010", 0, 0, AM_PM.AM, false, tzClient);
-		Date origJoda = convertDateJoda("06.11.2010", 0, 0, AM_PM.AM, false, tzClient);
+// Date orig = convertDate("06.11.2010", 0, 0, AM_PM.AM, false, tzClient);
+// Date origJoda = convertDateJoda("06.11.2010", 0, 0, AM_PM.AM, false, tzClient);
 		Date orig3 = convertDateNew("06.11.2010", 0, 0, AM_PM.AM, false, tzClient);
 
 		MutableDateTime dt = new MutableDateTime(DateTimeZone.forTimeZone(tzClient));
 		dt.setDateTime(2010, 11, 06, 0, 0, 0, 0);
 		Date date = new Date(dt.getMillis());
 
-		log.error("actual: " + orig.getTime() + "; joda: " + origJoda.getTime() + "; origNew: " +
+		log.error(/* "actual: " + orig.getTime() + "; joda: " + origJoda.getTime() + */"; origNew: " +
 			orig3.getTime() + "; expected: " + date.getTime());
-		log.error("actual: " + orig + "; joda: " + origJoda + "; origNew: " + orig3 +
+		log.error(/* "actual: " + orig + "; joda: " + origJoda + */"; origNew: " + orig3 +
 			"; expected: " + date);
 		assertEquals(date.getTime(), orig3.getTime());
-		assertEquals(date.getTime(), orig.getTime());
-		assertEquals(origJoda.getTime(), orig.getTime());
+// assertEquals(date.getTime(), orig.getTime());
+// assertEquals(origJoda.getTime(), orig.getTime());
 	}
 
 	/**
@@ -248,21 +249,21 @@ public class DatePickerTest extends Wick
 		DateTimeZone.setDefault(DateTimeZone.forTimeZone(tzServer));
 		Locale.setDefault(Locale.GERMAN);
 
-		Date orig = convertDate("06.11.2010", 12, 0, null, false, tzClient);
-		Date origJoda = convertDateJoda("06.11.2010", 12, 0, null, false, tzClient);
+// Date orig = convertDate("06.11.2010", 12, 0, null, false, tzClient);
+// Date origJoda = convertDateJoda("06.11.2010", 12, 0, null, false, tzClient);
 		Date orig3 = convertDateNew("06.11.2010", 12, 0, null, false, tzClient);
 
 		MutableDateTime dt = new MutableDateTime(DateTimeZone.forTimeZone(tzClient));
 		dt.setDateTime(2010, 11, 06, 12, 0, 0, 0);
 		Date date = new Date(dt.getMillis());
 
-		log.error("actual: " + orig.getTime() + "; joda: " + origJoda.getTime() + "; origNew: " +
+		log.error(/* "actual: " + orig.getTime() + "; joda: " + origJoda.getTime() + */"; origNew: " +
 			orig3.getTime() + "; expected: " + date.getTime());
-		log.error("actual: " + orig + "; joda: " + origJoda + "; origNew: " + orig3 +
+		log.error(/* "actual: " + orig + "; joda: " + origJoda + */"; origNew: " + orig3 +
 			"; expected: " + date);
 		assertEquals(date.getTime(), orig3.getTime());
-		assertEquals(date.getTime(), orig.getTime());
-		assertEquals(origJoda.getTime(), orig.getTime());
+// assertEquals(date.getTime(), orig.getTime());
+// assertEquals(origJoda.getTime(), orig.getTime());
 	}
 
 	/**
@@ -371,22 +372,22 @@ public class DatePickerTest extends Wick
 		}
 
 		// Get year, month and day ignoring any timezone of the Date object
-// Calendar cal = Calendar.getInstance();
-// cal.setTime(dateFieldInput);
-// int year = cal.get(Calendar.YEAR);
-// int month = cal.get(Calendar.MONTH) + 1;
-// int day = cal.get(Calendar.DAY_OF_MONTH);
-// int iHours = (hours == null ? 0 : hours % 24);
-// int iMins = (minutes == null ? 0 : minutes);
-//
-// // Use the input to create a date object with proper timezone
-// MutableDateTime date = new MutableDateTime(year, month, day, iHours, iMins, 0, 0,
-// DateTimeZone.forTimeZone(tzClient));
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(dateFieldInput);
+		int year = cal.get(Calendar.YEAR);
+		int month = cal.get(Calendar.MONTH) + 1;
+		int day = cal.get(Calendar.DAY_OF_MONTH);
+		int iHours = (hours == null ? 0 : hours % 24);
+		int iMins = (minutes == null ? 0 : minutes);
+
+		// Use the input to create a date object with proper timezone
+		MutableDateTime date = new MutableDateTime(year, month, day, iHours, iMins, 0, 0,
+			DateTimeZone.forTimeZone(tzClient));
 
 		// Use the input to create a date object. Ignore the timezone provided by dateFieldInput and
 		// use tzClient instead. No re-calculation will happen. It should be the same as above.
-		MutableDateTime date = new MutableDateTime(dateFieldInput,
-			DateTimeZone.forTimeZone(tzClient));
+// MutableDateTime date = new MutableDateTime(dateFieldInput,
+// DateTimeZone.forTimeZone(tzClient));
 		log.error("1. date: " + date.getMillis() + "  " + date);
 
 		// Adjust for halfday if needed