Author: mgrigorov
Date: Sun Jul 25 16:16:40 2010
New Revision: 979057

URL: http://svn.apache.org/viewvc?rev=979057&view=rev
Log:
WICKET-2899 date picker calendar shown on text field clicked (patch included)

Apply the provided patch and use it in the 'dates' example page.


Modified:
    
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
    
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
    
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
    
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java

Modified: 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java?rev=979057&r1=979056&r2=979057&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
 Sun Jul 25 16:16:40 2010
@@ -131,6 +131,8 @@ public class DatePicker extends Abstract
 
        /** The target component. */
        private Component component;
+       
+       private boolean showOnFieldClick = false;
 
        /**
         * Construct.
@@ -230,6 +232,7 @@ public class DatePicker extends Abstract
                variables.put("fireChangeEvent", 
notifyComponentOnDateSelected());
                variables.put("alignWithIcon", alignWithIcon());
                variables.put("hideOnSelect", hideOnSelect());
+               variables.put("showOnFieldClick", showOnFieldClick());
                // variables for YUILoader
                variables.put("basePath", 
Strings.stripJSessionId(RequestCycle.get().urlFor(YUI)));
                variables.put("wicketDatePath", 
RequestCycle.get().urlFor(WICKET_DATE));
@@ -709,6 +712,26 @@ public class DatePicker extends Abstract
        {
                return true;
        }
+       
+       /**
+        * Indicates whether the calendar should be shown when corresponding 
text input is clicked.
+        * 
+        * @return <code>true</code> <br/>
+        *         <code>false</code> (default)
+        */
+       protected boolean showOnFieldClick() {
+               return showOnFieldClick;
+       }
+       
+       /**
+        * 
+        * @see {...@link #showOnFieldClick()}
+        */
+       public DatePicker setShowOnFieldClick(boolean show) {
+               
+               this.showOnFieldClick = show;
+               return this;
+       }
 
        /**
         * Indicates whether the calendar should be rendered after it has been 
loaded.

Modified: 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js?rev=979057&r1=979056&r2=979057&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
 Sun Jul 25 16:16:40 2010
@@ -27,7 +27,8 @@ init${widgetId} = function() {
                datePattern: "${datePattern}",
                alignWithIcon: ${alignWithIcon},
                fireChangeEvent: ${fireChangeEvent},
-               hideOnSelect: ${hideOnSelect}
+               hideOnSelect: ${hideOnSelect},
+               showOnFieldClick: ${showOnFieldClick}
        });
        ${additionalJavascript}
 };

Modified: 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js?rev=979057&r1=979056&r2=979057&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
 Sun Jul 25 16:16:40 2010
@@ -180,6 +180,10 @@ Wicket.DateTime.init = function(cfg) {
        }
 
        YAHOO.util.Event.addListener(cfg.icon, "click", showCalendar, 
YAHOO.wicket[cfg.dpJs], true);
+       
+       if (cfg.showOnFieldClick) {
+               YAHOO.util.Event.addListener(cfg.widgetId, "click", 
showCalendar, YAHOO.wicket[cfg.dpJs], true);
+       }
 
        function selectHandler(type, args, cal) {
                YAHOO.util.Dom.get(cfg.componentId).value = 
Wicket.DateTime.substituteDate(cfg.datePattern, args[0][0]);

Modified: 
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java?rev=979057&r1=979056&r2=979057&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java
 Sun Jul 25 16:16:40 2010
@@ -169,7 +169,10 @@ public class DatesPage extends WicketExa
                };
                add(form);
                form.add(dateTextField);
-               dateTextField.add(new DatePicker());
+
+               DatePicker datePicker = new DatePicker();
+               datePicker.setShowOnFieldClick(true);
+               dateTextField.add(datePicker);
                add(new FeedbackPanel("feedback"));
        }
 


Reply via email to