You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by eh...@apache.org on 2007/06/18 03:34:21 UTC

svn commit: r548157 - in /incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar: DatePicker.java DatePicker.js

Author: ehillenius
Date: Sun Jun 17 18:34:20 2007
New Revision: 548157

URL: http://svn.apache.org/viewvc?view=rev&rev=548157
Log:
WICKET-661

Modified:
    incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
    incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js

Modified: incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java?view=diff&rev=548157&r1=548156&r2=548157
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java Sun Jun 17 18:34:20 2007
@@ -29,6 +29,7 @@
 import org.apache.wicket.ResourceReference;
 import org.apache.wicket.Response;
 import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.behavior.AbstractBehavior;
 import org.apache.wicket.datetime.markup.html.form.DateTextField;
 import org.apache.wicket.extensions.yui.YuiLib;
@@ -131,6 +132,8 @@
 		String widgetId = getComponentMarkupId();
 		variables.put("widgetId", widgetId);
 		variables.put("datePattern", getDatePattern());
+		variables.put("fireChangeEvent", Boolean.valueOf(getNotifyBoundComponentOnDateSelected()));
+
 		// print out the initialization properties
 		Properties p = new Properties();
 		configureWidgetProperties(p);
@@ -340,5 +343,20 @@
 	protected CharSequence getIconUrl()
 	{
 		return RequestCycle.get().urlFor(new ResourceReference(DatePicker.class, "icon1.gif"));
+	}
+
+	/**
+	 * Whether to notify the associated component when a date is selected.
+	 * Notifying is done by calling the associated component's onchange
+	 * Javascript event handler. You can for instance attach an
+	 * {@link AjaxEventBehavior} to that component to get a call back to the
+	 * server. Returns false by default.
+	 * 
+	 * @return if true, notifies the associated component when a date is
+	 *         selected
+	 */
+	protected boolean getNotifyBoundComponentOnDateSelected()
+	{
+		return false;
 	}
 }

Modified: incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js?view=diff&rev=548157&r1=548156&r2=548157
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js Sun Jun 17 18:34:20 2007
@@ -22,7 +22,7 @@
 
  // create date picker instance
  YAHOO.wicket.${widgetId}DpJs = new YAHOO.widget.Calendar("${widgetId}DpJs","${widgetId}Dp", { ${calendarInit} });
-
+ YAHOO.wicket.${widgetId}DpJs.isVisible = function() { return YAHOO.wicket.${widgetId}DpJs.oDomContainer.style.display == 'block'; } 
  // inner function to show the calendar
  function showCalendar() {
     var dateValue = YAHOO.util.Dom.get("${widgetId}").value;
@@ -47,11 +47,17 @@
     var yr = selDateArray[0];
     var month = selDateArray[1];
     var dt = selDateArray[2];
-    var val = '${datePattern}'.replace(/d+/, dt).replace(/M+/, month).replace(/y+/, yr);
+    var val = '${datePattern}'.replace(/d+/, dt).replace(/M+/, month).replace(/y+/, yr);    
+    var wasVisible = YAHOO.wicket.${widgetId}DpJs.isVisible();
     YAHOO.util.Dom.get("${widgetId}").value = val;
-
+     
     // hide picker
     cal.hide();
+    
+    // fire onchange notification 
+    if (wasVisible && ${fireChangeEvent}) {
+    	YAHOO.util.Dom.get("${widgetId}").onchange();
+    }
   }
 
   // register the select handler function