Author: gseitz
Date: Thu Sep 20 13:57:15 2007
New Revision: 577912

URL: http://svn.apache.org/viewvc?rev=577912&view=rev
Log:
WICKET-979: DatePicker can now be configured to stay visible after date 
selection and/or to be initially rendered after all .js have been loaded.

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

Modified: 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java?rev=577912&r1=577911&r2=577912&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
 Thu Sep 20 13:57:15 2007
@@ -130,8 +130,17 @@
                // component. Not as pretty as working with a panel etc, but 
works
                // for behaviors and is more efficient
                Response response = component.getResponse();
-               response
-                               .write("\n<span 
class=\"yui-skin-sam\">&nbsp;<span 
style=\"display:none;position:absolute;z-index: 99999;\" id=\"");
+               response.write("\n<span class=\"yui-skin-sam\">&nbsp;<span 
style=\"");
+               if (renderOnLoad())
+               {
+                       response.write("display:block;");
+               }
+               else
+               {
+                       response.write("display:none;");
+                       response.write("position:absolute;");
+               }
+               response.write("z-index: 99999;\" id=\"");
                response.write(getEscapedComponentMarkupId());
                response.write("Dp\"></span><img style=\"");
                response.write(getIconStyle());
@@ -140,7 +149,12 @@
                response.write("\" src=\"");
                CharSequence iconUrl = getIconUrl();
                response.write(Strings.escapeMarkup(iconUrl != null ? 
iconUrl.toString() : ""));
-               response.write("\" /></span><input type=\"hidden\"/>");
+               response.write("\" />");
+               if (renderOnLoad())
+               {
+                       response.write("<br style=\"clear:left;\"/>");
+               }
+               response.write("</span>");
        }
 
        /**
@@ -173,6 +187,7 @@
                variables.put("basePath", RequestCycle.get().urlFor(
                                new JavascriptResourceReference(YuiLib.class, 
"")));
                variables.put("enableMonthYearSelection", 
Boolean.valueOf(enableMonthYearSelection()));
+               variables.put("hideOnSelect", Boolean.valueOf(hideOnSelect()));
 
                // print out the initialization properties
                Properties p = new Properties();
@@ -564,6 +579,32 @@
         *         just plain text.
         */
        protected boolean enableMonthYearSelection()
+       {
+               return false;
+       }
+
+       /**
+        * Indicates whether the calendar should be hidden after a date was
+        * selected.
+        * 
+        * @return <code>true</code> (default) if the calendar should be hidden
+        *         after the date selection <br/><code>false</code> if the
+        *         calendar should remain visible after the date selection.
+        */
+       protected boolean hideOnSelect()
+       {
+               return true;
+       }
+
+       /**
+        * Indicates whether the calendar should be rendered after it has been
+        * loaded.
+        * 
+        * @return <code>true</code> if the calendar should be rendered after it
+        *         has been loaded.<br/><code>false</code> (default) if it's
+        *         initially hidden.
+        */
+       protected boolean renderOnLoad()
        {
                return false;
        }

Modified: 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js?rev=577912&r1=577911&r2=577912&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.js
 Thu Sep 20 13:57:15 2007
@@ -57,7 +57,8 @@
                                datePattern: "${datePattern}",
                                alignWithIcon: ${alignWithIcon},
                                enableMonthYearSelection: 
${enableMonthYearSelection},
-                               fireChangeEvent: ${fireChangeEvent}
+                               fireChangeEvent: ${fireChangeEvent},
+                               hideOnSelect: ${hideOnSelect}
                        });
 }
 

Modified: 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js?rev=577912&r1=577911&r2=577912&view=diff
==============================================================================
--- 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
 (original)
+++ 
wicket/trunk/jdk-1.4/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/wicket-date.js
 Thu Sep 20 13:57:15 2007
@@ -221,7 +221,7 @@
        function selectHandler(type, args, cal) {
                YAHOO.util.Dom.get(cfg.componentId).value = 
Wicket.DateTime.substituteDate(cfg.datePattern, args[0][0]);
                var wasVisible = YAHOO.wicket[cfg.dpJs].isVisible();
-               cal.hide();
+               if (cfg.hideOnSelect) { cal.hide(); }
                if (cfg.fireChangeEvent && wasVisible) {
                        var field = YAHOO.util.Dom.get(cfg.componentId);
                        if (typeof(field.onchange) != 'undefined') 
field.onchange();


Reply via email to