From 0f3a577bed4d828472469675e90fcab032e33f44 Mon Sep 17 00:00:00 2001 From: xue <> Date: Fri, 2 Jun 2006 18:27:02 +0000 Subject: merge from 3.0 branch till 1133. --- framework/Web/Javascripts/datepicker/datepicker.js | 34 +++++++++++++++------- 1 file changed, 23 insertions(+), 11 deletions(-) (limited to 'framework/Web/Javascripts/datepicker') diff --git a/framework/Web/Javascripts/datepicker/datepicker.js b/framework/Web/Javascripts/datepicker/datepicker.js index d5d9496c..e704e950 100644 --- a/framework/Web/Javascripts/datepicker/datepicker.js +++ b/framework/Web/Javascripts/datepicker/datepicker.js @@ -282,8 +282,11 @@ Prado.WebUI.TDatePicker.prototype = Event.observe(this._calDiv, "mousewheel", this.mouseWheelChange.bindEvent(this)); Event.observe(calendarBody, "click", this.selectDate.bindEvent(this)); + + Event.observe(this.control, "blur", this.hide.bind(this)); + Prado.Element.focus(this.control); - }, + },A ieHack : function(cleanup) { @@ -305,7 +308,7 @@ Prado.WebUI.TDatePicker.prototype = if (!ev) ev = document.parentWindow.event; var kc = ev.keyCode != null ? ev.keyCode : ev.charCode; - if(kc == Event.KEY_RETURN) + if(kc == Event.KEY_RETURN || kc == Event.KEY_SPACEBAR) { this.setSelectedDate(this.selectedDate); Event.stop(ev); @@ -526,6 +529,22 @@ Prado.WebUI.TDatePicker.prototype = this.setMonth(this.selectedDate.getMonth()-1); }, + getDatePickerOffsetHeight : function() + { + if(this.options.InputMode == "TextBox") + return this.control.offsetHeight; + + var control = Prado.WebUI.TDatePicker.getDayListControl(this.control); + if(control) return control.offsetHeight; + + var control = Prado.WebUI.TDatePicker.getMonthListControl(this.control); + if(control) return control.offsetHeight; + + var control = Prado.WebUI.TDatePicker.getYearListControl(this.control); + if(control) return control.offsetHeight; + return 0; + }, + show : function() { this.create(); @@ -534,15 +553,8 @@ Prado.WebUI.TDatePicker.prototype = { var pos = Position.cumulativeOffset(this.control); - if(this.options.InputMode == "TextBox") - pos[1] += this.control.offsetHeight; - else - { - var dayList = Prado.WebUI.TDatePicker.getDayListControl(this.control); - if(dayList) - pos[1] += dayList.offsetHeight-1; - } - + pos[1] += this.getDatePickerOffsetHeight(); + this._calDiv.style.display = "block"; this._calDiv.style.top = (pos[1]-1) + "px"; this._calDiv.style.left = pos[0] + "px"; -- cgit v1.2.3