root/framework/branches/2.0/includes/qcubed/_core/base_controls/QDatepickerGen.class.php @ 1381

Revision 1381, 46.0 KB (checked in by vakopian, 2 years ago)

reviewed by alex. A small additional fix in jq_control.php:343. Fixes #765.

Line 
1<?php
2        /**
3         * The abstract QDatepickerGen class defined here is
4         * code-generated and contains options, events and methods scraped from the
5         * JQuery UI documentation Web site. It is not generated by the typical
6         * codegen process, but rather is generated periodically by the core QCubed
7         * team and checked in. However, the code to generate this file is
8         * in the assets/_core/php/_devetools/jquery_ui_gen/jq_control_gen.php file
9         * and you can regenerate the files if you need to.
10         *
11         * The comments in this file are taken from the JQuery UI site, so they do
12         * not always make sense with regard to QCubed. They are simply provided
13         * as reference. Note that this is very low-level code, and does not always
14         * update QCubed state variables. See the QDatepickerBase
15         * file, which contains code to interface between this generated file and QCubed.
16         *
17         * Because subsequent re-code generations will overwrite any changes to this
18         * file, you should leave this file unaltered to prevent yourself from losing
19         * any information or code changes.  All customizations should be done by
20         * overriding existing or implementing new methods, properties and variables
21         * in the QDatepicker class file.
22         *
23         */
24
25        /* Custom event classes for this control */
26       
27       
28        /**
29         * This event is triggered when datepicker is created.
30         */
31        class QDatepicker_CreateEvent extends QJqUiEvent {
32                const EventName = 'datepickercreate';
33        }
34
35        /* Custom "property" event classes for this control */
36        /**
37         * Can be a function that takes an input field and current datepicker instance
38         *              and returns an options object to update the datepicker with. It is called
39         *              just before the datepicker is displayed.
40         */
41        class QDatepicker_BeforeShowEvent extends QJqUiPropertyEvent {
42                const EventName = 'QDatepicker_BeforeShow';
43                protected $strJqProperty = 'beforeShow';
44        }
45
46        /**
47         * The function takes a date as a parameter and must return an array with [0]
48         *              equal to true/false indicating whether or not this date is selectable, [1]
49         *              equal to a CSS class name(s) or '' for the default presentation, and [2] an
50         *              optional popup tooltip for this date. It is called for each day in the
51         *              datepicker before it is displayed.
52         */
53        class QDatepicker_BeforeShowDayEvent extends QJqUiPropertyEvent {
54                const EventName = 'QDatepicker_BeforeShowDay';
55                protected $strJqProperty = 'beforeShowDay';
56        }
57
58        /**
59         * Allows you to define your own event when the datepicker moves to a new
60         *              month and/or year. The function receives the selected year, month (1-12),
61         *              and the datepicker instance as parameters. this refers to the associated
62         *              input field.
63         */
64        class QDatepicker_ChangeMonthYearEvent extends QJqUiPropertyEvent {
65                const EventName = 'QDatepicker_ChangeMonthYear';
66                protected $strJqProperty = 'onChangeMonthYear';
67        }
68
69        /**
70         * Allows you to define your own event when the datepicker is closed, whether
71         *              or not a date is selected. The function receives the selected date as text
72         *              ('' if none) and the datepicker instance as parameters. this refers to the
73         *              associated input field.
74         */
75        class QDatepicker_CloseEvent extends QJqUiPropertyEvent {
76                const EventName = 'QDatepicker_Close';
77                protected $strJqProperty = 'onClose';
78        }
79
80        /**
81         * Allows you to define your own event when the datepicker is selected. The
82         *              function receives the selected date as text and the datepicker instance as
83         *              parameters. this refers to the associated input field.
84         */
85        class QDatepicker_SelectEvent extends QJqUiPropertyEvent {
86                const EventName = 'QDatepicker_Select';
87                protected $strJqProperty = 'onSelect';
88        }
89
90
91        /**
92         * @property boolean $Disabled Disables (true) or enables (false) the datepicker. Can be set when
93         *              initialising (first creating) the datepicker.
94         * @property mixed $AltField The jQuery selector for another field that is to be updated with the
95         *              selected date from the datepicker. Use the <a
96         *              href="/UI/Datepicker#option-altFormat" title="UI/Datepicker">altFormat</a>
97         *              setting to change the format of the date within this field. Leave as blank
98         *              for no alternate field.
99         * @property string $AltFormat The <a href="/UI/Datepicker#option-dateFormat"
100         *              title="UI/Datepicker">dateFormat</a> to be used for the <a
101         *              href="/UI/Datepicker#option-altField" title="UI/Datepicker">altField</a>
102         *              option. This allows one date format to be shown to the user for selection
103         *              purposes, while a different format is actually sent behind the scenes. For
104         *              a full list of the possible formats see the formatDate function
105         * @property string $AppendText The text to display after each date field, e.g. to show the required
106         *              format.
107         * @property boolean $AutoSize Set to true to automatically resize the input field to accommodate dates in
108         *              the current <a href="/UI/Datepicker#option-dateFormat"
109         *              title="UI/Datepicker">dateFormat</a>.
110         * @property string $ButtonImage The URL for the popup button image. If set, <a
111         *              href="/UI/Datepicker#option-buttonText"
112         *              title="UI/Datepicker">buttonText</a> becomes the alt value and is not
113         *              directly displayed.
114         * @property boolean $ButtonImageOnly Set to true to place an image after the field to use as the trigger without
115         *              it appearing on a button.
116         * @property string $ButtonText The text to display on the trigger button. Use in conjunction with <a
117         *              href="/UI/Datepicker#option-showOn" title="UI/Datepicker">showOn</a> equal
118         *              to 'button' or 'both'.
119         * @property QJsClosure $CalculateWeek A function to calculate the week of the year for a given date. The default
120         *              implementation uses the ISO 8601 definition: weeks start on a Monday; the
121         *              first week of the year contains the first Thursday of the year.
122         * @property boolean $ChangeMonth Allows you to change the month by selecting from a drop-down list. You can
123         *              enable this feature by setting the attribute to true.
124         * @property boolean $ChangeYear Allows you to change the year by selecting from a drop-down list. You can
125         *              enable this feature by setting the attribute to true. Use the <a
126         *              href="/UI/Datepicker#option-yearRange" title="UI/Datepicker">yearRange</a>
127         *              option to control which years are made available for selection.
128         * @property string $CloseText The text to display for the close link. This attribute is one of the
129         *              regionalisation attributes. Use the <a
130         *              href="/UI/Datepicker#option-showButtonPanel"
131         *              title="UI/Datepicker">showButtonPanel</a> to display this button.
132         * @property boolean $ConstrainInput When true entry in the input field is constrained to those characters
133         *              allowed by the current <a href="/UI/Datepicker#option-dateFormat"
134         *              title="UI/Datepicker">dateFormat</a>.
135         * @property string $CurrentText The text to display for the current day link. This attribute is one of the
136         *              regionalisation attributes. Use the <a
137         *              href="/UI/Datepicker#option-showButtonPanel"
138         *              title="UI/Datepicker">showButtonPanel</a> to display this button.
139         * @property string $JqDateFormat The format for parsed and displayed dates. This attribute is one of the
140         *              regionalisation attributes. For a full list of the possible formats see the
141         *              <a href="/UI/Datepicker/formatDate"
142         *              title="UI/Datepicker/formatDate">formatDate</a> function.
143         * @property array $DayNames The list of long day names, starting from Sunday, for use as requested via
144         *              the <a href="/UI/Datepicker#option-dateFormat"
145         *              title="UI/Datepicker">dateFormat</a> setting. They also appear as popup
146         *              hints when hovering over the corresponding column headings. This attribute
147         *              is one of the regionalisation attributes.
148         * @property array $DayNamesMin The list of minimised day names, starting from Sunday, for use as column
149         *              headers within the datepicker. This attribute is one of the regionalisation
150         *              attributes.
151         * @property array $DayNamesShort The list of abbreviated day names, starting from Sunday, for use as
152         *              requested via the <a href="/UI/Datepicker#option-dateFormat"
153         *              title="UI/Datepicker">dateFormat</a> setting. This attribute is one of the
154         *              regionalisation attributes.
155         * @property mixed $DefaultDate Set the date to highlight on first opening if the field is blank. Specify
156         *              either an actual date via a Date object or as a string in the current <a
157         *              href="/UI/Datepicker#option-dateFormat"
158         *              title="UI/Datepicker">dateFormat</a>, or a number of days from today (e.g.
159         *              +7) or a string of values and periods ('y' for years, 'm' for months, 'w'
160         *              for weeks, 'd' for days, e.g. '+1m +7d'), or null for today.
161         * @property mixed $Duration Control the speed at which the datepicker appears, it may be a time in
162         *              milliseconds or a string representing one of the three predefined speeds
163         *              ("slow", "normal", "fast").
164         * @property integer $FirstDay Set the first day of the week: Sunday is 0, Monday is 1, ... This attribute
165         *              is one of the regionalisation attributes.
166         * @property boolean $GotoCurrent When true the current day link moves to the currently selected date instead
167         *              of today.
168         * @property boolean $HideIfNoPrevNext Normally the previous and next links are disabled when not applicable (see
169         *              <a href="/UI/Datepicker#option-minDate"
170         *              title="UI/Datepicker">minDate</a>/<a href="/UI/Datepicker#option-maxDate"
171         *              title="UI/Datepicker">maxDate</a>). You can hide them altogether by setting
172         *              this attribute to true.
173         * @property boolean $IsRTL True if the current language is drawn from right to left. This attribute is
174         *              one of the regionalisation attributes.
175         * @property mixed $MaxDate Set a maximum selectable date via a Date object or as a string in the
176         *              current <a href="/UI/Datepicker#option-dateFormat"
177         *              title="UI/Datepicker">dateFormat</a>, or a number of days from today (e.g.
178         *              +7) or a string of values and periods ('y' for years, 'm' for months, 'w'
179         *              for weeks, 'd' for days, e.g. '+1m +1w'), or null for no limit.
180         * @property mixed $MinDate Set a minimum selectable date via a Date object or as a string in the
181         *              current <a href="/UI/Datepicker#option-dateFormat"
182         *              title="UI/Datepicker">dateFormat</a>, or a number of days from today (e.g.
183         *              +7) or a string of values and periods ('y' for years, 'm' for months, 'w'
184         *              for weeks, 'd' for days, e.g. '-1y -1m'), or null for no limit.
185         * @property array $MonthNames The list of full month names, for use as requested via the <a
186         *              href="/UI/Datepicker#option-dateFormat"
187         *              title="UI/Datepicker">dateFormat</a> setting. This attribute is one of the
188         *              regionalisation attributes.
189         * @property array $MonthNamesShort The list of abbreviated month names, as used in the month header on each
190         *              datepicker and as requested via the <a
191         *              href="/UI/Datepicker#option-dateFormat"
192         *              title="UI/Datepicker">dateFormat</a> setting. This attribute is one of the
193         *              regionalisation attributes.
194         * @property boolean $NavigationAsDateFormat When true the <a href="/UI/Datepicker/formatDate"
195         *              title="UI/Datepicker/formatDate">formatDate</a> function is applied to the
196         *              <a href="/UI/Datepicker#option-prevText"
197         *              title="UI/Datepicker">prevText</a>, <a
198         *              href="/UI/Datepicker#option-nextText" title="UI/Datepicker">nextText</a>,
199         *              and <a href="/UI/Datepicker#option-currentText"
200         *              title="UI/Datepicker">currentText</a> values before display, allowing them
201         *              to display the target month names for example.
202         * @property string $NextText The text to display for the next month link. This attribute is one of the
203         *              regionalisation attributes. With the standard ThemeRoller styling, this
204         *              value is replaced by an icon.
205         * @property mixed $NumberOfMonths Set how many months to show at once. The value can be a straight integer,
206         *              or can be a two-element array to define the number of rows and columns to
207         *              display.
208         * @property string $PrevText The text to display for the previous month link. This attribute is one of
209         *              the regionalisation attributes. With the standard ThemeRoller styling, this
210         *              value is replaced by an icon.
211         * @property boolean $SelectOtherMonths When true days in other months shown before or after the current month are
212         *              selectable. This only applies if <a
213         *              href="/UI/Datepicker#option-showOtherMonths"
214         *              title="UI/Datepicker">showOtherMonths</a> is also true.
215         * @property mixed $ShortYearCutoff Set the cutoff year for determining the century for a date (used in
216         *              conjunction with <a href="/UI/Datepicker#option-dateFormat"
217         *              title="UI/Datepicker">dateFormat</a> 'y'). If a numeric value (0-99) is
218         *              provided then this value is used directly. If a string value is provided
219         *              then it is converted to a number and added to the current year. Once the
220         *              cutoff year is calculated, any dates entered with a year value less than or
221         *              equal to it are considered to be in the current century, while those
222         *              greater than it are deemed to be in the previous century.
223         * @property string $ShowAnim Set the name of the animation used to show/hide the datepicker. Use 'show'
224         *              (the default), 'slideDown', 'fadeIn', any of the show/hide jQuery UI
225         *              effects, or '' for no animation.
226         * @property boolean $ShowButtonPanel Whether to show the button panel.
227         * @property integer $ShowCurrentAtPos Specify where in a multi-month display the current month shows, starting
228         *              from 0 at the top/left.
229         * @property boolean $ShowMonthAfterYear Whether to show the month after the year in the header. This attribute is
230         *              one of the regionalisation attributes.
231         * @property string $ShowOn Have the datepicker appear automatically when the field receives focus
232         *              ('focus'), appear only when a button is clicked ('button'), or appear when
233         *              either event takes place ('both').
234         * @property array $ShowOptions If using one of the jQuery UI effects for <a
235         *              href="/UI/Datepicker#option-showAnim" title="UI/Datepicker">showAnim</a>,
236         *              you can provide additional settings for that animation via this option.
237         * @property boolean $ShowOtherMonths Display dates in other months (non-selectable) at the start or end of the
238         *              current month. To make these days selectable use <a
239         *              href="/UI/Datepicker#option-selectOtherMonths"
240         *              title="UI/Datepicker">selectOtherMonths</a>.
241         * @property boolean $ShowWeek When true a column is added to show the week of the year. The <a
242         *              href="/UI/Datepicker#option-calculateWeek"
243         *              title="UI/Datepicker">calculateWeek</a> option determines how the week of
244         *              the year is calculated. You may also want to change the <a
245         *              href="/UI/Datepicker#option-firstDay" title="UI/Datepicker">firstDay</a>
246         *              option.
247         * @property integer $StepMonths Set how many months to move when clicking the Previous/Next links.
248         * @property string $WeekHeader The text to display for the week of the year column heading. This attribute
249         *              is one of the regionalisation attributes. Use <a
250         *              href="/UI/Datepicker#option-showWeek" title="UI/Datepicker">showWeek</a> to
251         *              display this column.
252         * @property string $YearRange Control the range of years displayed in the year drop-down: either relative
253         *              to today's year (-nn:+nn), relative to the currently selected year
254         *              (c-nn:c+nn), absolute (nnnn:nnnn), or combinations of these formats
255         *              (nnnn:-nn). Note that this option only affects what appears in the
256         *              drop-down, to restrict which dates may be selected use the <a
257         *              href="/UI/Datepicker#option-minDate" title="UI/Datepicker">minDate</a>
258         *              and/or <a href="/UI/Datepicker#option-maxDate"
259         *              title="UI/Datepicker">maxDate</a> options.
260         * @property string $YearSuffix Additional text to display after the year in the month headers. This
261         *              attribute is one of the regionalisation attributes.
262         * @property QJsClosure $OnBeforeShow Can be a function that takes an input field and current datepicker instance
263         *              and returns an options object to update the datepicker with. It is called
264         *              just before the datepicker is displayed.
265         * @property QJsClosure $OnBeforeShowDay The function takes a date as a parameter and must return an array with [0]
266         *              equal to true/false indicating whether or not this date is selectable, [1]
267         *              equal to a CSS class name(s) or '' for the default presentation, and [2] an
268         *              optional popup tooltip for this date. It is called for each day in the
269         *              datepicker before it is displayed.
270         * @property QJsClosure $OnChangeMonthYear Allows you to define your own event when the datepicker moves to a new
271         *              month and/or year. The function receives the selected year, month (1-12),
272         *              and the datepicker instance as parameters. this refers to the associated
273         *              input field.
274         * @property QJsClosure $OnClose Allows you to define your own event when the datepicker is closed, whether
275         *              or not a date is selected. The function receives the selected date as text
276         *              ('' if none) and the datepicker instance as parameters. this refers to the
277         *              associated input field.
278         * @property QJsClosure $OnSelect Allows you to define your own event when the datepicker is selected. The
279         *              function receives the selected date as text and the datepicker instance as
280         *              parameters. this refers to the associated input field.
281         */
282
283        class QDatepickerGen extends QPanel     {
284                protected $strJavaScripts = __JQUERY_EFFECTS__;
285                protected $strStyleSheets = __JQUERY_CSS__;
286                /** @var boolean */
287                protected $blnDisabled = null;
288                /** @var mixed */
289                protected $mixAltField = null;
290                /** @var string */
291                protected $strAltFormat = null;
292                /** @var string */
293                protected $strAppendText = null;
294                /** @var boolean */
295                protected $blnAutoSize = null;
296                /** @var string */
297                protected $strButtonImage = null;
298                /** @var boolean */
299                protected $blnButtonImageOnly = null;
300                /** @var string */
301                protected $strButtonText = null;
302                /** @var QJsClosure */
303                protected $mixCalculateWeek;
304                /** @var boolean */
305                protected $blnChangeMonth = null;
306                /** @var boolean */
307                protected $blnChangeYear = null;
308                /** @var string */
309                protected $strCloseText = null;
310                /** @var boolean */
311                protected $blnConstrainInput = null;
312                /** @var string */
313                protected $strCurrentText = null;
314                /** @var string */
315                protected $strJqDateFormat = null;
316                /** @var array */
317                protected $arrDayNames = null;
318                /** @var array */
319                protected $arrDayNamesMin = null;
320                /** @var array */
321                protected $arrDayNamesShort = null;
322                /** @var mixed */
323                protected $mixDefaultDate = null;
324                /** @var mixed */
325                protected $mixDuration = null;
326                /** @var integer */
327                protected $intFirstDay;
328                /** @var boolean */
329                protected $blnGotoCurrent = null;
330                /** @var boolean */
331                protected $blnHideIfNoPrevNext = null;
332                /** @var boolean */
333                protected $blnIsRTL = null;
334                /** @var mixed */
335                protected $mixMaxDate = null;
336                /** @var mixed */
337                protected $mixMinDate = null;
338                /** @var array */
339                protected $arrMonthNames = null;
340                /** @var array */
341                protected $arrMonthNamesShort = null;
342                /** @var boolean */
343                protected $blnNavigationAsDateFormat = null;
344                /** @var string */
345                protected $strNextText = null;
346                /** @var mixed */
347                protected $mixNumberOfMonths = null;
348                /** @var string */
349                protected $strPrevText = null;
350                /** @var boolean */
351                protected $blnSelectOtherMonths = null;
352                /** @var mixed */
353                protected $mixShortYearCutoff = null;
354                /** @var string */
355                protected $strShowAnim = null;
356                /** @var boolean */
357                protected $blnShowButtonPanel = null;
358                /** @var integer */
359                protected $intShowCurrentAtPos;
360                /** @var boolean */
361                protected $blnShowMonthAfterYear = null;
362                /** @var string */
363                protected $strShowOn = null;
364                /** @var array */
365                protected $arrShowOptions = null;
366                /** @var boolean */
367                protected $blnShowOtherMonths = null;
368                /** @var boolean */
369                protected $blnShowWeek = null;
370                /** @var integer */
371                protected $intStepMonths = null;
372                /** @var string */
373                protected $strWeekHeader = null;
374                /** @var string */
375                protected $strYearRange = null;
376                /** @var string */
377                protected $strYearSuffix = null;
378                /** @var QJsClosure */
379                protected $mixOnBeforeShow = null;
380                /** @var QJsClosure */
381                protected $mixOnBeforeShowDay = null;
382                /** @var QJsClosure */
383                protected $mixOnChangeMonthYear = null;
384                /** @var QJsClosure */
385                protected $mixOnClose = null;
386                /** @var QJsClosure */
387                protected $mixOnSelect = null;
388               
389                protected function makeJsProperty($strProp, $strKey) {
390                        $objValue = $this->$strProp;
391                        if (null === $objValue) {
392                                return '';
393                        }
394
395                        return $strKey . ': ' . JavaScriptHelper::toJsObject($objValue) . ', ';
396                }
397
398                protected function makeJqOptions() {
399                        $strJqOptions = '';
400                        $strJqOptions .= $this->makeJsProperty('Disabled', 'disabled');
401                        $strJqOptions .= $this->makeJsProperty('AltField', 'altField');
402                        $strJqOptions .= $this->makeJsProperty('AltFormat', 'altFormat');
403                        $strJqOptions .= $this->makeJsProperty('AppendText', 'appendText');
404                        $strJqOptions .= $this->makeJsProperty('AutoSize', 'autoSize');
405                        $strJqOptions .= $this->makeJsProperty('ButtonImage', 'buttonImage');
406                        $strJqOptions .= $this->makeJsProperty('ButtonImageOnly', 'buttonImageOnly');
407                        $strJqOptions .= $this->makeJsProperty('ButtonText', 'buttonText');
408                        $strJqOptions .= $this->makeJsProperty('CalculateWeek', 'calculateWeek');
409                        $strJqOptions .= $this->makeJsProperty('ChangeMonth', 'changeMonth');
410                        $strJqOptions .= $this->makeJsProperty('ChangeYear', 'changeYear');
411                        $strJqOptions .= $this->makeJsProperty('CloseText', 'closeText');
412                        $strJqOptions .= $this->makeJsProperty('ConstrainInput', 'constrainInput');
413                        $strJqOptions .= $this->makeJsProperty('CurrentText', 'currentText');
414                        $strJqOptions .= $this->makeJsProperty('JqDateFormat', 'dateFormat');
415                        $strJqOptions .= $this->makeJsProperty('DayNames', 'dayNames');
416                        $strJqOptions .= $this->makeJsProperty('DayNamesMin', 'dayNamesMin');
417                        $strJqOptions .= $this->makeJsProperty('DayNamesShort', 'dayNamesShort');
418                        $strJqOptions .= $this->makeJsProperty('DefaultDate', 'defaultDate');
419                        $strJqOptions .= $this->makeJsProperty('Duration', 'duration');
420                        $strJqOptions .= $this->makeJsProperty('FirstDay', 'firstDay');
421                        $strJqOptions .= $this->makeJsProperty('GotoCurrent', 'gotoCurrent');
422                        $strJqOptions .= $this->makeJsProperty('HideIfNoPrevNext', 'hideIfNoPrevNext');
423                        $strJqOptions .= $this->makeJsProperty('IsRTL', 'isRTL');
424                        $strJqOptions .= $this->makeJsProperty('MaxDate', 'maxDate');
425                        $strJqOptions .= $this->makeJsProperty('MinDate', 'minDate');
426                        $strJqOptions .= $this->makeJsProperty('MonthNames', 'monthNames');
427                        $strJqOptions .= $this->makeJsProperty('MonthNamesShort', 'monthNamesShort');
428                        $strJqOptions .= $this->makeJsProperty('NavigationAsDateFormat', 'navigationAsDateFormat');
429                        $strJqOptions .= $this->makeJsProperty('NextText', 'nextText');
430                        $strJqOptions .= $this->makeJsProperty('NumberOfMonths', 'numberOfMonths');
431                        $strJqOptions .= $this->makeJsProperty('PrevText', 'prevText');
432                        $strJqOptions .= $this->makeJsProperty('SelectOtherMonths', 'selectOtherMonths');
433                        $strJqOptions .= $this->makeJsProperty('ShortYearCutoff', 'shortYearCutoff');
434                        $strJqOptions .= $this->makeJsProperty('ShowAnim', 'showAnim');
435                        $strJqOptions .= $this->makeJsProperty('ShowButtonPanel', 'showButtonPanel');
436                        $strJqOptions .= $this->makeJsProperty('ShowCurrentAtPos', 'showCurrentAtPos');
437                        $strJqOptions .= $this->makeJsProperty('ShowMonthAfterYear', 'showMonthAfterYear');
438                        $strJqOptions .= $this->makeJsProperty('ShowOn', 'showOn');
439                        $strJqOptions .= $this->makeJsProperty('ShowOptions', 'showOptions');
440                        $strJqOptions .= $this->makeJsProperty('ShowOtherMonths', 'showOtherMonths');
441                        $strJqOptions .= $this->makeJsProperty('ShowWeek', 'showWeek');
442                        $strJqOptions .= $this->makeJsProperty('StepMonths', 'stepMonths');
443                        $strJqOptions .= $this->makeJsProperty('WeekHeader', 'weekHeader');
444                        $strJqOptions .= $this->makeJsProperty('YearRange', 'yearRange');
445                        $strJqOptions .= $this->makeJsProperty('YearSuffix', 'yearSuffix');
446                        $strJqOptions .= $this->makeJsProperty('OnBeforeShow', 'beforeShow');
447                        $strJqOptions .= $this->makeJsProperty('OnBeforeShowDay', 'beforeShowDay');
448                        $strJqOptions .= $this->makeJsProperty('OnChangeMonthYear', 'onChangeMonthYear');
449                        $strJqOptions .= $this->makeJsProperty('OnClose', 'onClose');
450                        $strJqOptions .= $this->makeJsProperty('OnSelect', 'onSelect');
451                        if ($strJqOptions) $strJqOptions = substr($strJqOptions, 0, -2);
452                        return $strJqOptions;
453                }
454
455                public function getJqControlId() {
456                        return $this->ControlId;
457                }
458
459                public function getJqSetupFunction() {
460                        return 'datepicker';
461                }
462
463                public function GetControlJavaScript() {
464                        return sprintf('jQuery("#%s").%s({%s})', $this->getJqControlId(), $this->getJqSetupFunction(), $this->makeJqOptions());
465                }
466
467                public function GetEndScript() {
468                        return  $this->GetControlJavaScript() . '; ' . parent::GetEndScript();
469                }
470               
471                /**
472                 * Call a JQuery UI Method on the object. Takes variable number of arguments.
473                 *
474                 * @param string $strMethodName the method name to call
475                 * @internal param $mixed [optional] $mixParam1
476                 * @internal param $mixed [optional] $mixParam2
477                 */
478                protected function CallJqUiMethod($strMethodName /*, ... */) {
479                        $args = array();
480                        $args = func_get_args();
481
482                        $strArgs = JavaScriptHelper::toJsObject($args);
483                        $strJs = sprintf('jQuery("#%s").%s(%s)',
484                                $this->getJqControlId(),
485                                $this->getJqSetupFunction(),
486                                substr($strArgs, 1, strlen($strArgs)-2));       // params without brackets
487                        QApplication::ExecuteJavaScript($strJs);
488                }
489
490
491                /**
492                 * Remove the datepicker functionality completely. This will return the
493                 * element back to its pre-init state.
494                 */
495                public function Destroy() {
496                        $this->CallJqUiMethod("destroy");
497                }
498                /**
499                 * Disable the datepicker.
500                 */
501                public function Disable() {
502                        $this->CallJqUiMethod("disable");
503                }
504                /**
505                 * Enable the datepicker.
506                 */
507                public function Enable() {
508                        $this->CallJqUiMethod("enable");
509                }
510                /**
511                 * Get or set any datepicker option. If no value is specified, will act as a
512                 * getter.
513                 * @param $optionName
514                 * @param $value
515                 */
516                public function Option($optionName, $value = null) {
517                        $this->CallJqUiMethod("option", $optionName, $value);
518                }
519                /**
520                 * Set multiple datepicker options at once by providing an options object.
521                 * @param $options
522                 */
523                public function Option1($options) {
524                        $this->CallJqUiMethod("option", $options);
525                }
526                /**
527                 * Open a datepicker in a "dialog" box.
528                 * dateText: the initial date for the date picker as either a Date or a string
529                 * in the current date format.
530                 * onSelect: A callback function when a date is selected. The function
531                 * receives the date text and date picker instance as parameters.
532                 * settings: The new settings for the date picker.
533                 * pos: The position of the top/left of the dialog as [x, y] or a MouseEvent
534                 * that contains the coordinates. If not specified the dialog is centered on
535                 * the screen.
536                 * @param $date
537                 * @param $onSelect
538                 * @param $settings
539                 * @param $pos
540                 */
541                public function Dialog($date, $onSelect = null, $settings = null, $pos = null) {
542                        $this->CallJqUiMethod("dialog", $date, $onSelect, $settings, $pos);
543                }
544                /**
545                 * Determine whether a date picker has been disabled.
546                 */
547                public function IsDisabled() {
548                        $this->CallJqUiMethod("isDisabled");
549                }
550                /**
551                 * Close a previously opened date picker.
552                 */
553                public function Hide() {
554                        $this->CallJqUiMethod("hide");
555                }
556                /**
557                 * Call up a previously attached date picker.
558                 */
559                public function Show() {
560                        $this->CallJqUiMethod("show");
561                }
562                /**
563                 * Redraw a date picker, after having made some external modifications.
564                 */
565                public function Refresh() {
566                        $this->CallJqUiMethod("refresh");
567                }
568                /**
569                 * Returns the current date for the datepicker or null if no date has been
570                 * selected.
571                 */
572                public function GetDate() {
573                        $this->CallJqUiMethod("getDate");
574                }
575                /**
576                 * Sets the current date for the datepicker. The new date may be a Date object
577                 * or a string in the current date format (e.g. '01/26/2009'), a number of
578                 * days from today (e.g. +7) or a string of values and periods ('y' for years,
579                 * 'm' for months, 'w' for weeks, 'd' for days, e.g. '+1m +7d'), or null to
580                 * clear the selected date.
581                 * @param $date
582                 */
583                public function SetDate($date) {
584                        $this->CallJqUiMethod("setDate", $date);
585                }
586
587
588                public function __get($strName) {
589                        switch ($strName) {
590                                case 'Disabled': return $this->blnDisabled;
591                                case 'AltField': return $this->mixAltField;
592                                case 'AltFormat': return $this->strAltFormat;
593                                case 'AppendText': return $this->strAppendText;
594                                case 'AutoSize': return $this->blnAutoSize;
595                                case 'ButtonImage': return $this->strButtonImage;
596                                case 'ButtonImageOnly': return $this->blnButtonImageOnly;
597                                case 'ButtonText': return $this->strButtonText;
598                                case 'CalculateWeek': return $this->mixCalculateWeek;
599                                case 'ChangeMonth': return $this->blnChangeMonth;
600                                case 'ChangeYear': return $this->blnChangeYear;
601                                case 'CloseText': return $this->strCloseText;
602                                case 'ConstrainInput': return $this->blnConstrainInput;
603                                case 'CurrentText': return $this->strCurrentText;
604                                case 'JqDateFormat': return $this->strJqDateFormat;
605                                case 'DayNames': return $this->arrDayNames;
606                                case 'DayNamesMin': return $this->arrDayNamesMin;
607                                case 'DayNamesShort': return $this->arrDayNamesShort;
608                                case 'DefaultDate': return $this->mixDefaultDate;
609                                case 'Duration': return $this->mixDuration;
610                                case 'FirstDay': return $this->intFirstDay;
611                                case 'GotoCurrent': return $this->blnGotoCurrent;
612                                case 'HideIfNoPrevNext': return $this->blnHideIfNoPrevNext;
613                                case 'IsRTL': return $this->blnIsRTL;
614                                case 'MaxDate': return $this->mixMaxDate;
615                                case 'MinDate': return $this->mixMinDate;
616                                case 'MonthNames': return $this->arrMonthNames;
617                                case 'MonthNamesShort': return $this->arrMonthNamesShort;
618                                case 'NavigationAsDateFormat': return $this->blnNavigationAsDateFormat;
619                                case 'NextText': return $this->strNextText;
620                                case 'NumberOfMonths': return $this->mixNumberOfMonths;
621                                case 'PrevText': return $this->strPrevText;
622                                case 'SelectOtherMonths': return $this->blnSelectOtherMonths;
623                                case 'ShortYearCutoff': return $this->mixShortYearCutoff;
624                                case 'ShowAnim': return $this->strShowAnim;
625                                case 'ShowButtonPanel': return $this->blnShowButtonPanel;
626                                case 'ShowCurrentAtPos': return $this->intShowCurrentAtPos;
627                                case 'ShowMonthAfterYear': return $this->blnShowMonthAfterYear;
628                                case 'ShowOn': return $this->strShowOn;
629                                case 'ShowOptions': return $this->arrShowOptions;
630                                case 'ShowOtherMonths': return $this->blnShowOtherMonths;
631                                case 'ShowWeek': return $this->blnShowWeek;
632                                case 'StepMonths': return $this->intStepMonths;
633                                case 'WeekHeader': return $this->strWeekHeader;
634                                case 'YearRange': return $this->strYearRange;
635                                case 'YearSuffix': return $this->strYearSuffix;
636                                case 'OnBeforeShow': return $this->mixOnBeforeShow;
637                                case 'OnBeforeShowDay': return $this->mixOnBeforeShowDay;
638                                case 'OnChangeMonthYear': return $this->mixOnChangeMonthYear;
639                                case 'OnClose': return $this->mixOnClose;
640                                case 'OnSelect': return $this->mixOnSelect;
641                                default: 
642                                        try { 
643                                                return parent::__get($strName); 
644                                        } catch (QCallerException $objExc) { 
645                                                $objExc->IncrementOffset(); 
646                                                throw $objExc; 
647                                        }
648                        }
649                }
650
651                public function __set($strName, $mixValue) {
652                        $this->blnModified = true;
653
654                        switch ($strName) {
655                                case 'Disabled':
656                                        try {
657                                                $this->blnDisabled = QType::Cast($mixValue, QType::Boolean);
658                                                if ($this->Rendered) {
659                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
660                                                }
661                                                break;
662                                        } catch (QInvalidCastException $objExc) {
663                                                $objExc->IncrementOffset();
664                                                throw $objExc;
665                                        }
666
667                                case 'AltField':
668                                        $this->mixAltField = $mixValue;
669                               
670                                        if ($this->Rendered) {
671                                                $this->CallJqUiMethod("option", $strName, $mixValue);
672                                        }
673                                        break;
674
675                                case 'AltFormat':
676                                        try {
677                                                $this->strAltFormat = QType::Cast($mixValue, QType::String);
678                                                if ($this->Rendered) {
679                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
680                                                }
681                                                break;
682                                        } catch (QInvalidCastException $objExc) {
683                                                $objExc->IncrementOffset();
684                                                throw $objExc;
685                                        }
686
687                                case 'AppendText':
688                                        try {
689                                                $this->strAppendText = QType::Cast($mixValue, QType::String);
690                                                if ($this->Rendered) {
691                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
692                                                }
693                                                break;
694                                        } catch (QInvalidCastException $objExc) {
695                                                $objExc->IncrementOffset();
696                                                throw $objExc;
697                                        }
698
699                                case 'AutoSize':
700                                        try {
701                                                $this->blnAutoSize = QType::Cast($mixValue, QType::Boolean);
702                                                if ($this->Rendered) {
703                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
704                                                }
705                                                break;
706                                        } catch (QInvalidCastException $objExc) {
707                                                $objExc->IncrementOffset();
708                                                throw $objExc;
709                                        }
710
711                                case 'ButtonImage':
712                                        try {
713                                                $this->strButtonImage = QType::Cast($mixValue, QType::String);
714                                                if ($this->Rendered) {
715                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
716                                                }
717                                                break;
718                                        } catch (QInvalidCastException $objExc) {
719                                                $objExc->IncrementOffset();
720                                                throw $objExc;
721                                        }
722
723                                case 'ButtonImageOnly':
724                                        try {
725                                                $this->blnButtonImageOnly = QType::Cast($mixValue, QType::Boolean);
726                                                if ($this->Rendered) {
727                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
728                                                }
729                                                break;
730                                        } catch (QInvalidCastException $objExc) {
731                                                $objExc->IncrementOffset();
732                                                throw $objExc;
733                                        }
734
735                                case 'ButtonText':
736                                        try {
737                                                $this->strButtonText = QType::Cast($mixValue, QType::String);
738                                                if ($this->Rendered) {
739                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
740                                                }
741                                                break;
742                                        } catch (QInvalidCastException $objExc) {
743                                                $objExc->IncrementOffset();
744                                                throw $objExc;
745                                        }
746
747                                case 'CalculateWeek':
748                                        try {
749                                                $this->mixCalculateWeek = QType::Cast($mixValue, 'QJsClosure');
750                                                if ($this->Rendered) {
751                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
752                                                }
753                                                break;
754                                        } catch (QInvalidCastException $objExc) {
755                                                $objExc->IncrementOffset();
756                                                throw $objExc;
757                                        }
758
759                                case 'ChangeMonth':
760                                        try {
761                                                $this->blnChangeMonth = QType::Cast($mixValue, QType::Boolean);
762                                                if ($this->Rendered) {
763                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
764                                                }
765                                                break;
766                                        } catch (QInvalidCastException $objExc) {
767                                                $objExc->IncrementOffset();
768                                                throw $objExc;
769                                        }
770
771                                case 'ChangeYear':
772                                        try {
773                                                $this->blnChangeYear = QType::Cast($mixValue, QType::Boolean);
774                                                if ($this->Rendered) {
775                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
776                                                }
777                                                break;
778                                        } catch (QInvalidCastException $objExc) {
779                                                $objExc->IncrementOffset();
780                                                throw $objExc;
781                                        }
782
783                                case 'CloseText':
784                                        try {
785                                                $this->strCloseText = QType::Cast($mixValue, QType::String);
786                                                if ($this->Rendered) {
787                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
788                                                }
789                                                break;
790                                        } catch (QInvalidCastException $objExc) {
791                                                $objExc->IncrementOffset();
792                                                throw $objExc;
793                                        }
794
795                                case 'ConstrainInput':
796                                        try {
797                                                $this->blnConstrainInput = QType::Cast($mixValue, QType::Boolean);
798                                                if ($this->Rendered) {
799                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
800                                                }
801                                                break;
802                                        } catch (QInvalidCastException $objExc) {
803                                                $objExc->IncrementOffset();
804                                                throw $objExc;
805                                        }
806
807                                case 'CurrentText':
808                                        try {
809                                                $this->strCurrentText = QType::Cast($mixValue, QType::String);
810                                                if ($this->Rendered) {
811                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
812                                                }
813                                                break;
814                                        } catch (QInvalidCastException $objExc) {
815                                                $objExc->IncrementOffset();
816                                                throw $objExc;
817                                        }
818
819                                case 'JqDateFormat':
820                                        try {
821                                                $this->strJqDateFormat = QType::Cast($mixValue, QType::String);
822                                                if ($this->Rendered) {
823                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
824                                                }
825                                                break;
826                                        } catch (QInvalidCastException $objExc) {
827                                                $objExc->IncrementOffset();
828                                                throw $objExc;
829                                        }
830
831                                case 'DayNames':
832                                        try {
833                                                $this->arrDayNames = QType::Cast($mixValue, QType::ArrayType);
834                                                if ($this->Rendered) {
835                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
836                                                }
837                                                break;
838                                        } catch (QInvalidCastException $objExc) {
839                                                $objExc->IncrementOffset();
840                                                throw $objExc;
841                                        }
842
843                                case 'DayNamesMin':
844                                        try {
845                                                $this->arrDayNamesMin = QType::Cast($mixValue, QType::ArrayType);
846                                                if ($this->Rendered) {
847                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
848                                                }
849                                                break;
850                                        } catch (QInvalidCastException $objExc) {
851                                                $objExc->IncrementOffset();
852                                                throw $objExc;
853                                        }
854
855                                case 'DayNamesShort':
856                                        try {
857                                                $this->arrDayNamesShort = QType::Cast($mixValue, QType::ArrayType);
858                                                if ($this->Rendered) {
859                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
860                                                }
861                                                break;
862                                        } catch (QInvalidCastException $objExc) {
863                                                $objExc->IncrementOffset();
864                                                throw $objExc;
865                                        }
866
867                                case 'DefaultDate':
868                                        $this->mixDefaultDate = $mixValue;
869                               
870                                        if ($this->Rendered) {
871                                                $this->CallJqUiMethod("option", $strName, $mixValue);
872                                        }
873                                        break;
874
875                                case 'Duration':
876                                        $this->mixDuration = $mixValue;
877                               
878                                        if ($this->Rendered) {
879                                                $this->CallJqUiMethod("option", $strName, $mixValue);
880                                        }
881                                        break;
882
883                                case 'FirstDay':
884                                        try {
885                                                $this->intFirstDay = QType::Cast($mixValue, QType::Integer);
886                                                if ($this->Rendered) {
887                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
888                                                }
889                                                break;
890                                        } catch (QInvalidCastException $objExc) {
891                                                $objExc->IncrementOffset();
892                                                throw $objExc;
893                                        }
894
895                                case 'GotoCurrent':
896                                        try {
897                                                $this->blnGotoCurrent = QType::Cast($mixValue, QType::Boolean);
898                                                if ($this->Rendered) {
899                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
900                                                }
901                                                break;
902                                        } catch (QInvalidCastException $objExc) {
903                                                $objExc->IncrementOffset();
904                                                throw $objExc;
905                                        }
906
907                                case 'HideIfNoPrevNext':
908                                        try {
909                                                $this->blnHideIfNoPrevNext = QType::Cast($mixValue, QType::Boolean);
910                                                if ($this->Rendered) {
911                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
912                                                }
913                                                break;
914                                        } catch (QInvalidCastException $objExc) {
915                                                $objExc->IncrementOffset();
916                                                throw $objExc;
917                                        }
918
919                                case 'IsRTL':
920                                        try {
921                                                $this->blnIsRTL = QType::Cast($mixValue, QType::Boolean);
922                                                if ($this->Rendered) {
923                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
924                                                }
925                                                break;
926                                        } catch (QInvalidCastException $objExc) {
927                                                $objExc->IncrementOffset();
928                                                throw $objExc;
929                                        }
930
931                                case 'MaxDate':
932                                        $this->mixMaxDate = $mixValue;
933                               
934                                        if ($this->Rendered) {
935                                                $this->CallJqUiMethod("option", $strName, $mixValue);
936                                        }
937                                        break;
938
939                                case 'MinDate':
940                                        $this->mixMinDate = $mixValue;
941                               
942                                        if ($this->Rendered) {
943                                                $this->CallJqUiMethod("option", $strName, $mixValue);
944                                        }
945                                        break;
946
947                                case 'MonthNames':
948                                        try {
949                                                $this->arrMonthNames = QType::Cast($mixValue, QType::ArrayType);
950                                                if ($this->Rendered) {
951                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
952                                                }
953                                                break;
954                                        } catch (QInvalidCastException $objExc) {
955                                                $objExc->IncrementOffset();
956                                                throw $objExc;
957                                        }
958
959                                case 'MonthNamesShort':
960                                        try {
961                                                $this->arrMonthNamesShort = QType::Cast($mixValue, QType::ArrayType);
962                                                if ($this->Rendered) {
963                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
964                                                }
965                                                break;
966                                        } catch (QInvalidCastException $objExc) {
967                                                $objExc->IncrementOffset();
968                                                throw $objExc;
969                                        }
970
971                                case 'NavigationAsDateFormat':
972                                        try {
973                                                $this->blnNavigationAsDateFormat = QType::Cast($mixValue, QType::Boolean);
974                                                if ($this->Rendered) {
975                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
976                                                }
977                                                break;
978                                        } catch (QInvalidCastException $objExc) {
979                                                $objExc->IncrementOffset();
980                                                throw $objExc;
981                                        }
982
983                                case 'NextText':
984                                        try {
985                                                $this->strNextText = QType::Cast($mixValue, QType::String);
986                                                if ($this->Rendered) {
987                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
988                                                }
989                                                break;
990                                        } catch (QInvalidCastException $objExc) {
991                                                $objExc->IncrementOffset();
992                                                throw $objExc;
993                                        }
994
995                                case 'NumberOfMonths':
996                                        $this->mixNumberOfMonths = $mixValue;
997                               
998                                        if ($this->Rendered) {
999                                                $this->CallJqUiMethod("option", $strName, $mixValue);
1000                                        }
1001                                        break;
1002
1003                                case 'PrevText':
1004                                        try {
1005                                                $this->strPrevText = QType::Cast($mixValue, QType::String);
1006                                                if ($this->Rendered) {
1007                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1008                                                }
1009                                                break;
1010                                        } catch (QInvalidCastException $objExc) {
1011                                                $objExc->IncrementOffset();
1012                                                throw $objExc;
1013                                        }
1014
1015                                case 'SelectOtherMonths':
1016                                        try {
1017                                                $this->blnSelectOtherMonths = QType::Cast($mixValue, QType::Boolean);
1018                                                if ($this->Rendered) {
1019                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1020                                                }
1021                                                break;
1022                                        } catch (QInvalidCastException $objExc) {
1023                                                $objExc->IncrementOffset();
1024                                                throw $objExc;
1025                                        }
1026
1027                                case 'ShortYearCutoff':
1028                                        $this->mixShortYearCutoff = $mixValue;
1029                               
1030                                        if ($this->Rendered) {
1031                                                $this->CallJqUiMethod("option", $strName, $mixValue);
1032                                        }
1033                                        break;
1034
1035                                case 'ShowAnim':
1036                                        try {
1037                                                $this->strShowAnim = QType::Cast($mixValue, QType::String);
1038                                                if ($this->Rendered) {
1039                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1040                                                }
1041                                                break;
1042                                        } catch (QInvalidCastException $objExc) {
1043                                                $objExc->IncrementOffset();
1044                                                throw $objExc;
1045                                        }
1046
1047                                case 'ShowButtonPanel':
1048                                        try {
1049                                                $this->blnShowButtonPanel = QType::Cast($mixValue, QType::Boolean);
1050                                                if ($this->Rendered) {
1051                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1052                                                }
1053                                                break;
1054                                        } catch (QInvalidCastException $objExc) {
1055                                                $objExc->IncrementOffset();
1056                                                throw $objExc;
1057                                        }
1058
1059                                case 'ShowCurrentAtPos':
1060                                        try {
1061                                                $this->intShowCurrentAtPos = QType::Cast($mixValue, QType::Integer);
1062                                                if ($this->Rendered) {
1063                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1064                                                }
1065                                                break;
1066                                        } catch (QInvalidCastException $objExc) {
1067                                                $objExc->IncrementOffset();
1068                                                throw $objExc;
1069                                        }
1070
1071                                case 'ShowMonthAfterYear':
1072                                        try {
1073                                                $this->blnShowMonthAfterYear = QType::Cast($mixValue, QType::Boolean);
1074                                                if ($this->Rendered) {
1075                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1076                                                }
1077                                                break;
1078                                        } catch (QInvalidCastException $objExc) {
1079                                                $objExc->IncrementOffset();
1080                                                throw $objExc;
1081                                        }
1082
1083                                case 'ShowOn':
1084                                        try {
1085                                                $this->strShowOn = QType::Cast($mixValue, QType::String);
1086                                                if ($this->Rendered) {
1087                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1088                                                }
1089                                                break;
1090                                        } catch (QInvalidCastException $objExc) {
1091                                                $objExc->IncrementOffset();
1092                                                throw $objExc;
1093                                        }
1094
1095                                case 'ShowOptions':
1096                                        try {
1097                                                $this->arrShowOptions = QType::Cast($mixValue, QType::ArrayType);
1098                                                if ($this->Rendered) {
1099                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1100                                                }
1101                                                break;
1102                                        } catch (QInvalidCastException $objExc) {
1103                                                $objExc->IncrementOffset();
1104                                                throw $objExc;
1105                                        }
1106
1107                                case 'ShowOtherMonths':
1108                                        try {
1109                                                $this->blnShowOtherMonths = QType::Cast($mixValue, QType::Boolean);
1110                                                if ($this->Rendered) {
1111                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1112                                                }
1113                                                break;
1114                                        } catch (QInvalidCastException $objExc) {
1115                                                $objExc->IncrementOffset();
1116                                                throw $objExc;
1117                                        }
1118
1119                                case 'ShowWeek':
1120                                        try {
1121                                                $this->blnShowWeek = QType::Cast($mixValue, QType::Boolean);
1122                                                if ($this->Rendered) {
1123                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1124                                                }
1125                                                break;
1126                                        } catch (QInvalidCastException $objExc) {
1127                                                $objExc->IncrementOffset();
1128                                                throw $objExc;
1129                                        }
1130
1131                                case 'StepMonths':
1132                                        try {
1133                                                $this->intStepMonths = QType::Cast($mixValue, QType::Integer);
1134                                                if ($this->Rendered) {
1135                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1136                                                }
1137                                                break;
1138                                        } catch (QInvalidCastException $objExc) {
1139                                                $objExc->IncrementOffset();
1140                                                throw $objExc;
1141                                        }
1142
1143                                case 'WeekHeader':
1144                                        try {
1145                                                $this->strWeekHeader = QType::Cast($mixValue, QType::String);
1146                                                if ($this->Rendered) {
1147                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1148                                                }
1149                                                break;
1150                                        } catch (QInvalidCastException $objExc) {
1151                                                $objExc->IncrementOffset();
1152                                                throw $objExc;
1153                                        }
1154
1155                                case 'YearRange':
1156                                        try {
1157                                                $this->strYearRange = QType::Cast($mixValue, QType::String);
1158                                                if ($this->Rendered) {
1159                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1160                                                }
1161                                                break;
1162                                        } catch (QInvalidCastException $objExc) {
1163                                                $objExc->IncrementOffset();
1164                                                throw $objExc;
1165                                        }
1166
1167                                case 'YearSuffix':
1168                                        try {
1169                                                $this->strYearSuffix = QType::Cast($mixValue, QType::String);
1170                                                if ($this->Rendered) {
1171                                                        $this->CallJqUiMethod("option", $strName, $mixValue);
1172                                                }
1173                                                break;
1174                                        } catch (QInvalidCastException $objExc) {
1175                                                $objExc->IncrementOffset();
1176                                                throw $objExc;
1177                                        }
1178
1179                                case 'OnBeforeShow':
1180                                        try {
1181                                                $this->mixOnBeforeShow = new QJsClosure($mixValue, array("input","inst"));
1182                                                break;
1183                                        } catch (QInvalidCastException $objExc) {
1184                                                $objExc->IncrementOffset();
1185                                                throw $objExc;
1186                                        }
1187
1188                                case 'OnBeforeShowDay':
1189                                        try {
1190                                                $this->mixOnBeforeShowDay = new QJsClosure($mixValue, array("date"));
1191                                                break;
1192                                        } catch (QInvalidCastException $objExc) {
1193                                                $objExc->IncrementOffset();
1194                                                throw $objExc;
1195                                        }
1196
1197                                case 'OnChangeMonthYear':
1198                                        try {
1199                                                $this->mixOnChangeMonthYear = new QJsClosure($mixValue, array("year","month","inst"));
1200                                                break;
1201                                        } catch (QInvalidCastException $objExc) {
1202                                                $objExc->IncrementOffset();
1203                                                throw $objExc;
1204                                        }
1205
1206                                case 'OnClose':
1207                                        try {
1208                                                $this->mixOnClose = new QJsClosure($mixValue, array("dateText","inst"));
1209                                                break;
1210                                        } catch (QInvalidCastException $objExc) {
1211                                                $objExc->IncrementOffset();
1212                                                throw $objExc;
1213                                        }
1214
1215                                case 'OnSelect':
1216                                        try {
1217                                                $this->mixOnSelect = new QJsClosure($mixValue, array("dateText","inst"));
1218                                                break;
1219                                        } catch (QInvalidCastException $objExc) {
1220                                                $objExc->IncrementOffset();
1221                                                throw $objExc;
1222                                        }
1223
1224
1225                                case 'Enabled':
1226                                        $this->Disabled = !$mixValue;   // Tie in standard QCubed functionality
1227                                        parent::__set($strName, $mixValue);
1228                                        break;
1229                                       
1230                                default:
1231                                        try {
1232                                                parent::__set($strName, $mixValue);
1233                                                break;
1234                                        } catch (QCallerException $objExc) {
1235                                                $objExc->IncrementOffset();
1236                                                throw $objExc;
1237                                        }
1238                        }
1239                }
1240        }
1241
1242?>
Note: See TracBrowser for help on using the browser.