rsence-pre 3.0.0.8 → 3.0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/client/conf/client_pkg.yaml +6 -2
- data/client/js/comm/queue/queue.js +32 -44
- data/client/js/comm/transporter/transporter.js +24 -16
- data/client/js/comm/values/values.js +27 -15
- data/client/js/controls/button/button.coffee +14 -5
- data/client/js/controls/button/themes/default/button.css +4 -2
- data/client/js/controls/checkbox/checkbox.js +4 -4
- data/client/js/controls/dialogs/sheet/sheet.js +11 -11
- data/client/js/controls/dialogs/sheet/themes/default/sheet.html +1 -1
- data/client/js/controls/imageview/imageview.js +15 -15
- data/client/js/controls/numerictextcontrol/numerictextcontrol.coffee +32 -10
- data/client/js/controls/onoffbutton/onoffbutton.coffee +5 -5
- data/client/js/controls/progress/progressbar/progressbar.js +6 -7
- data/client/js/controls/progress/progressbar/themes/default/progressbar.css +4 -4
- data/client/js/controls/progress/progressbar/themes/default/progressbar.html +1 -2
- data/client/js/controls/sliders/slider/slider.js +74 -79
- data/client/js/controls/stepper/stepper.js +31 -31
- data/client/js/controls/stringview/stringview.js +20 -8
- data/client/js/controls/tab/tab.js +57 -63
- data/client/js/controls/tab/themes/default/tab.html +4 -1
- data/client/js/controls/textcontrol/textcontrol.coffee +13 -3
- data/client/js/controls/validatorview/validatorview.js +4 -4
- data/client/js/controls/window/window.js +43 -56
- data/client/js/core/class/class.js +25 -23
- data/client/js/core/elem/elem.coffee +8 -1
- data/client/js/core/rsence_ns/rsence_ns.coffee +6 -2
- data/client/js/core/util/util_methods/util_methods.coffee +57 -15
- data/client/js/datetime/calendar/calendar.coffee +196 -199
- data/client/js/datetime/calendar/themes/default/calendar.css +81 -159
- data/client/js/datetime/calendar/themes/default/calendar.html +9 -18
- data/client/js/datetime/datepicker/datepicker.coffee +18 -3
- data/client/js/datetime/datetimepicker/datetimepicker.coffee +6 -1
- data/client/js/datetime/datetimevalue/datetimevalue.coffee +194 -0
- data/client/js/datetime/momentjs/momentjs.js +310 -76
- data/client/js/datetime/timepicker/timepicker.coffee +6 -1
- data/client/js/datetime/timesheet/timesheet.js +59 -61
- data/client/js/foundation/control/control.js +45 -44
- data/client/js/foundation/control/controldefaults/controldefaults.js +13 -9
- data/client/js/foundation/control/dyncontrol/dyncontrol.js +45 -57
- data/client/js/foundation/control/eventresponder/eventresponder.js +97 -97
- data/client/js/foundation/control/valuematrix/valuematrix.js +13 -13
- data/client/js/foundation/eventmanager/eventmanager.coffee +50 -32
- data/client/js/foundation/geom/rect/rect.js +43 -32
- data/client/js/foundation/locale_settings/locale_settings.js +36 -25
- data/client/js/foundation/system/system.js +79 -67
- data/client/js/foundation/thememanager/thememanager.coffee +11 -1
- data/client/js/foundation/value/pullvalue/pullvalue.coffee +7 -0
- data/client/js/foundation/value/pushvalue/pushvalue.coffee +25 -0
- data/client/js/foundation/value/value.js +22 -15
- data/client/js/foundation/view/view.js +94 -55
- data/client/js/foundation/view/viewdefaults/viewdefaults.js +5 -1
- data/client/js/lists/listitems/listitems.js +26 -4
- data/client/js/menus/combobox/combobox.coffee +55 -0
- data/client/js/menus/minimenu/minimenu.js +61 -30
- data/client/js/menus/minimenu/themes/default/minimenu.css +1 -6
- data/client/js/menus/minimenu/themes/default/minimenu.html +5 -4
- data/client/js/menus/minimenuitem/minimenuitem.js +6 -6
- data/client/js/menus/popupmenu/themes/default/popupmenu.css +1 -6
- data/client/js/menus/popupmenu/themes/default/popupmenu.html +5 -4
- data/client/js/tables/table/table.coffee +109 -64
- data/client/js/tables/table/themes/default/table.css +4 -0
- data/lib/rsence/msg.rb +64 -64
- data/lib/rsence/plugins/plugin.rb +68 -52
- data/lib/rsence/session/sequel_sessionstorage.rb +5 -5
- data/lib/rsence/value.rb +79 -59
- data/plugins/client_pkg/lib/client_pkg_build.rb +5 -1
- data/plugins/client_pkg/lib/client_pkg_serve.rb +40 -32
- data/plugins/main/js/main.js +46 -28
- metadata +6 -8
- data/client/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
- data/client/js/datetime/calendar/themes/default/calendar_bg.png +0 -0
- data/client/js/datetime/calendar/themes/default/calendar_parts1.png +0 -0
- data/client/js/datetime/calendar/themes/default/calendar_parts2.png +0 -0
- data/client/js/datetime/datetimepicker/datetimepicker.js +0 -210
- data/client/js/datetime/datetimevalue/datetimevalue.js +0 -265
@@ -1,7 +1,12 @@
|
|
1
1
|
HTimePicker = HDatePicker.extend
|
2
2
|
controlDefaults: HDatePicker.prototype.controlDefaults.extend
|
3
|
-
fieldFormat:
|
3
|
+
fieldFormat: null
|
4
4
|
refreshAfter: 3
|
5
5
|
preserveTime: false
|
6
6
|
preserveDate: true
|
7
7
|
calendarPicker: false
|
8
|
+
scrollUnit: 'minutes'
|
9
|
+
customOptions: (_options)->
|
10
|
+
_options.fieldFormat = HLocale.dateTime.strings.timeFormat if _options.fieldFormat == null
|
11
|
+
@base(_options)
|
12
|
+
_options.calendarPicker = false # always enforce the picker false on HTimePicker
|
@@ -8,22 +8,21 @@ HLocale.components.HTimeSheet = {
|
|
8
8
|
|
9
9
|
var//RSence.DateTime
|
10
10
|
HTimeSheet = HControl.extend({
|
11
|
-
|
11
|
+
|
12
12
|
debug: false,
|
13
|
-
|
14
|
-
localeStrings: HLocale.components.HTimeSheet.strings,
|
13
|
+
|
15
14
|
componentName: 'timesheet',
|
16
15
|
markupElemNames: [
|
17
16
|
'label', 'value', 'timeline'
|
18
17
|
],
|
19
|
-
|
18
|
+
|
20
19
|
defaultEvents: {
|
21
20
|
draggable: true,
|
22
21
|
click: true,
|
23
22
|
doubleClick: true,
|
24
23
|
resize: true
|
25
24
|
},
|
26
|
-
|
25
|
+
|
27
26
|
controlDefaults: HControlDefaults.extend({
|
28
27
|
timeStart: 0, // 1970-01-01 00:00:00
|
29
28
|
timeEnd: 86399, // 1970-01-01 23:59:59
|
@@ -44,35 +43,40 @@ HTimeSheet = HControl.extend({
|
|
44
43
|
allowDoubleClickCreate: true,
|
45
44
|
minDragSize: 5, // minimum amount of pixels dragged required for accepting a drag
|
46
45
|
hourOffsetTop: -4, // Theme settings; don't enter in options
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
46
|
+
dummyValue: {
|
47
|
+
label: '',
|
48
|
+
start: 0,
|
49
|
+
color: '#000000'
|
51
50
|
}
|
52
51
|
}),
|
53
|
-
|
52
|
+
|
53
|
+
customOptions: function( _options ){
|
54
|
+
this.localeStrings = HLocale.components.HTimeSheet.strings;
|
55
|
+
if( _options.defaultLabel === undefined ){ _options.defaultLabel = this.localeStrings.newItemLabel; }
|
56
|
+
},
|
57
|
+
|
54
58
|
themeSettings: function( _itemOffsetLeft, _itemOffsetTop, _itemOffsetRight, _itemOffsetBottom, _hourOffsetTop ){
|
55
59
|
if( this.options.hideHours ){
|
56
60
|
ELEM.addClassName( this.elemId, 'nohours' );
|
57
61
|
this.options.itemOffsetLeft = 0;
|
58
62
|
}
|
59
63
|
else if( _itemOffsetLeft !== undefined ) {
|
60
|
-
this.options.itemOffsetLeft = _itemOffsetLeft;
|
64
|
+
this.options.itemOffsetLeft = _itemOffsetLeft;
|
61
65
|
}
|
62
66
|
if( _itemOffsetTop !== undefined ) {
|
63
|
-
this.options.itemOffsetTop = _itemOffsetTop;
|
67
|
+
this.options.itemOffsetTop = _itemOffsetTop;
|
64
68
|
}
|
65
69
|
if( _itemOffsetRight !== undefined ) {
|
66
|
-
this.options.itemOffsetRight = _itemOffsetRight;
|
70
|
+
this.options.itemOffsetRight = _itemOffsetRight;
|
67
71
|
}
|
68
72
|
if( _itemOffsetBottom !== undefined ) {
|
69
|
-
this.options.itemOffsetBottom = _itemOffsetBottom;
|
73
|
+
this.options.itemOffsetBottom = _itemOffsetBottom;
|
70
74
|
}
|
71
75
|
if( _hourOffsetTop !== undefined ) {
|
72
|
-
this.options.hourOffsetTop = _hourOffsetTop;
|
76
|
+
this.options.hourOffsetTop = _hourOffsetTop;
|
73
77
|
}
|
74
78
|
},
|
75
|
-
|
79
|
+
|
76
80
|
autoLabel: function(){
|
77
81
|
var
|
78
82
|
_locale = HLocale.dateTime,
|
@@ -82,15 +86,15 @@ HTimeSheet = HControl.extend({
|
|
82
86
|
this.refreshLabel();
|
83
87
|
}
|
84
88
|
},
|
85
|
-
|
89
|
+
|
86
90
|
clearHours: function(){
|
87
91
|
for( var i = 0; i < this.hourItems.length; i++ ){
|
88
92
|
ELEM.del( this.hourItems[i] );
|
89
93
|
}
|
90
94
|
},
|
91
|
-
|
95
|
+
|
92
96
|
drawHours: function(){
|
93
|
-
|
97
|
+
|
94
98
|
var
|
95
99
|
_parentElemId = this.markupElemIds.timeline,
|
96
100
|
_dateStart = new Date( this.options.timeStart * 1000 ),
|
@@ -114,11 +118,11 @@ HTimeSheet = HControl.extend({
|
|
114
118
|
_pxPerNotch = _pxPerHour / _notchesPerHour,
|
115
119
|
_notchItem,
|
116
120
|
_notchTop;
|
117
|
-
|
121
|
+
|
118
122
|
ELEM.setStyle( _parentElemId, 'visibility', 'hidden', true );
|
119
|
-
|
123
|
+
|
120
124
|
ELEM.setStyle( this.markupElemIds.value, 'bottom', _bottomPos+'px' );
|
121
|
-
|
125
|
+
|
122
126
|
if( this['hourItems'] !== undefined ){
|
123
127
|
this.clearHours();
|
124
128
|
}
|
@@ -152,11 +156,11 @@ HTimeSheet = HControl.extend({
|
|
152
156
|
this.hourItems.push( _notchItem );
|
153
157
|
}
|
154
158
|
}
|
155
|
-
|
159
|
+
|
156
160
|
ELEM.setStyle( this.markupElemIds.timeline, 'visibility', 'inherit' );
|
157
|
-
|
161
|
+
|
158
162
|
},
|
159
|
-
|
163
|
+
|
160
164
|
// extra hook for refreshing; updates label and hours before doing common things
|
161
165
|
refresh: function(){
|
162
166
|
if( this.drawn ){
|
@@ -167,25 +171,25 @@ HTimeSheet = HControl.extend({
|
|
167
171
|
}
|
168
172
|
this.base();
|
169
173
|
},
|
170
|
-
|
174
|
+
|
171
175
|
// set the timezone offset (in seconds)
|
172
176
|
setTzOffset: function( _tzOffset ){
|
173
177
|
this.options.tzOffset = _tzOffset;
|
174
178
|
this.refresh();
|
175
179
|
},
|
176
|
-
|
180
|
+
|
177
181
|
// set the start timestamp of the timesheet
|
178
182
|
setTimeStart: function( _timeStart ){
|
179
183
|
this.options.timeStart = _timeStart;
|
180
184
|
this.refresh();
|
181
185
|
},
|
182
|
-
|
186
|
+
|
183
187
|
// set the end timestamp of the timesheet
|
184
188
|
setTimeEnd: function( _timeEnd ){
|
185
189
|
this.options.timeEnd = _timeEnd;
|
186
190
|
this.refresh();
|
187
191
|
},
|
188
|
-
|
192
|
+
|
189
193
|
// sets the range of timestams of the timesheet
|
190
194
|
setTimeRange: function( _timeRange ){
|
191
195
|
if( (_timeRange instanceof Array) && (_timeRange.length === 2) ){
|
@@ -201,7 +205,7 @@ HTimeSheet = HControl.extend({
|
|
201
205
|
this.setTimeEnd( _timeRange.timeEnd );
|
202
206
|
}
|
203
207
|
},
|
204
|
-
|
208
|
+
|
205
209
|
// sets the timestamp of the timesheet
|
206
210
|
setDate: function( _date ){
|
207
211
|
var
|
@@ -213,21 +217,15 @@ HTimeSheet = HControl.extend({
|
|
213
217
|
this.setTimeRange( _newTimeRange );
|
214
218
|
this.refresh();
|
215
219
|
},
|
216
|
-
|
220
|
+
|
217
221
|
// draw decorations
|
218
222
|
drawSubviews: function(){
|
219
223
|
this.drawHours();
|
220
224
|
var
|
221
225
|
_options = this.options,
|
222
226
|
_minDuration = Math.round(3600/_options.notchesPerHour),
|
223
|
-
_dummyValue =
|
224
|
-
|
225
|
-
label: '',
|
226
|
-
start: 0,
|
227
|
-
duration: _minDuration,
|
228
|
-
// locked: false,
|
229
|
-
color: '#cc0000'
|
230
|
-
};
|
227
|
+
_dummyValue = HVM.clone( this.options.dummyValue );
|
228
|
+
_dummyValue['duration'] = _minDuration;
|
231
229
|
this.dragPreviewRect = this.rectFromValue({start:_options.timeStart,duration:_minDuration});
|
232
230
|
this.minDuration = _minDuration;
|
233
231
|
this.dragPreview = HTimeSheetItem.nu(
|
@@ -241,7 +239,7 @@ HTimeSheet = HControl.extend({
|
|
241
239
|
);
|
242
240
|
this.dragPreview.setStyleOfPart('state','color','#fff');
|
243
241
|
},
|
244
|
-
|
242
|
+
|
245
243
|
// event listener for clicks, simulates double clicks in case of not double click aware browser
|
246
244
|
click: function( x, y, b ){
|
247
245
|
var
|
@@ -283,7 +281,7 @@ HTimeSheet = HControl.extend({
|
|
283
281
|
this.prevClickTime = false;
|
284
282
|
}
|
285
283
|
},
|
286
|
-
|
284
|
+
|
287
285
|
// creates an item on click
|
288
286
|
clickCreate: function(x,y){
|
289
287
|
var
|
@@ -299,7 +297,7 @@ HTimeSheet = HControl.extend({
|
|
299
297
|
this.dragPreview.hide();
|
300
298
|
}
|
301
299
|
},
|
302
|
-
|
300
|
+
|
303
301
|
// event listener for double clicks
|
304
302
|
doubleClick: function(x,y){
|
305
303
|
this.prevClickTime = false;
|
@@ -320,7 +318,7 @@ HTimeSheet = HControl.extend({
|
|
320
318
|
}
|
321
319
|
this.doubleClickSimCreated = false;
|
322
320
|
},
|
323
|
-
|
321
|
+
|
324
322
|
// update the preview area
|
325
323
|
refreshDragPreview: function( _startTime, _endTime ){
|
326
324
|
this.dragPreviewRect.setTop( this.timeToPx( _startTime, true ) );
|
@@ -333,7 +331,7 @@ HTimeSheet = HControl.extend({
|
|
333
331
|
this.dragPreview.value.duration = _endTime - _startTime;
|
334
332
|
this.dragPreview.refreshValue();
|
335
333
|
},
|
336
|
-
|
334
|
+
|
337
335
|
// drag & drop event listeners, used for dragging new timesheet items
|
338
336
|
startDrag: function( x, y, b ){
|
339
337
|
// console.log('st');
|
@@ -344,7 +342,7 @@ HTimeSheet = HControl.extend({
|
|
344
342
|
this.dragPreview.show();
|
345
343
|
return true;
|
346
344
|
},
|
347
|
-
|
345
|
+
|
348
346
|
drag: function( x, y, b ){
|
349
347
|
// console.log('dr');
|
350
348
|
var
|
@@ -362,7 +360,7 @@ HTimeSheet = HControl.extend({
|
|
362
360
|
this.refreshDragPreview( _startTime, _endTime );
|
363
361
|
return true;
|
364
362
|
},
|
365
|
-
|
363
|
+
|
366
364
|
endDrag: function( x, y, b ){
|
367
365
|
// console.log('ed');
|
368
366
|
var
|
@@ -392,7 +390,7 @@ HTimeSheet = HControl.extend({
|
|
392
390
|
}
|
393
391
|
return false;
|
394
392
|
},
|
395
|
-
|
393
|
+
|
396
394
|
// a resize triggers refresh, of which the important part is refreshValue, which triggers redraw of the time sheet items
|
397
395
|
resize: function(){
|
398
396
|
this.base();
|
@@ -437,12 +435,12 @@ HTimeSheet = HControl.extend({
|
|
437
435
|
}
|
438
436
|
return false;
|
439
437
|
},
|
440
|
-
|
438
|
+
|
441
439
|
/** = Description
|
442
440
|
* Sets the editor given as parameter as the editor of instance.
|
443
441
|
*
|
444
442
|
* = Parameters
|
445
|
-
* +_editor+::
|
443
|
+
* +_editor+::
|
446
444
|
*
|
447
445
|
**/
|
448
446
|
setEditor: function( _editor ){
|
@@ -458,7 +456,7 @@ HTimeSheet = HControl.extend({
|
|
458
456
|
this.editor = null;
|
459
457
|
this.base();
|
460
458
|
},
|
461
|
-
|
459
|
+
|
462
460
|
// converts pixels to time
|
463
461
|
pxToTime: function( _px, _noSnap ){
|
464
462
|
var
|
@@ -487,23 +485,23 @@ HTimeSheet = HControl.extend({
|
|
487
485
|
|
488
486
|
// converts time to pixels
|
489
487
|
timeToPx: function( _time, _snap ){
|
490
|
-
|
488
|
+
|
491
489
|
if( _snap ){
|
492
490
|
_time = this.snapTime( _time );
|
493
491
|
}
|
494
|
-
|
492
|
+
|
495
493
|
var
|
496
494
|
_options = this.options,
|
497
495
|
_timeStart = _options.timeStart,
|
498
496
|
_timeEnd = _options.timeEnd;
|
499
|
-
|
497
|
+
|
500
498
|
if( _time < _timeStart ){
|
501
499
|
_time = _timeStart;
|
502
500
|
}
|
503
501
|
if( _time > _timeEnd ){
|
504
502
|
_time = _timeEnd;
|
505
503
|
}
|
506
|
-
|
504
|
+
|
507
505
|
var
|
508
506
|
_timeRange = _timeEnd - _timeStart,
|
509
507
|
_itemOptions = this.itemOptions,
|
@@ -567,7 +565,7 @@ HTimeSheet = HControl.extend({
|
|
567
565
|
|
568
566
|
// calls createTimeSheetItem with each value of the timesheet value array
|
569
567
|
drawTimeSheetItems: function(){
|
570
|
-
|
568
|
+
|
571
569
|
var
|
572
570
|
_data = this.value,
|
573
571
|
i = 0,
|
@@ -635,11 +633,11 @@ HTimeSheet = HControl.extend({
|
|
635
633
|
_overlaps = [],
|
636
634
|
_testRects = this._getTestRects( _items ),
|
637
635
|
i,j;
|
638
|
-
|
636
|
+
|
639
637
|
for( i = 0; i < _items.length; i++){
|
640
638
|
_overlaps[i] = 0;
|
641
639
|
}
|
642
|
-
|
640
|
+
|
643
641
|
for( i = 0; i < _items.length - 1; i++ ){
|
644
642
|
for( j = i + 1; j < _items.length; j++ ){
|
645
643
|
if( _items[i].rect.intersects( _testRects[j] ) ){
|
@@ -650,7 +648,7 @@ HTimeSheet = HControl.extend({
|
|
650
648
|
}
|
651
649
|
return Math.max.apply( Math, _overlaps );
|
652
650
|
},
|
653
|
-
|
651
|
+
|
654
652
|
_getTestRects: function( _items ){
|
655
653
|
var _rects = [];
|
656
654
|
for( var i = 0; i < _items.length; i++){
|
@@ -708,7 +706,7 @@ HTimeSheet = HControl.extend({
|
|
708
706
|
_colWidth,
|
709
707
|
_overlaps,
|
710
708
|
_testRects;
|
711
|
-
|
709
|
+
|
712
710
|
// No overlapping; nothing to do
|
713
711
|
if( _overlapCount === 0 ){
|
714
712
|
return false;
|
@@ -832,7 +830,7 @@ but not used and not guaranteed to be preserved:
|
|
832
830
|
*
|
833
831
|
**/
|
834
832
|
refreshValue: function(){
|
835
|
-
|
833
|
+
|
836
834
|
if(!this.itemOptions){
|
837
835
|
return;
|
838
836
|
}
|
@@ -850,5 +848,5 @@ but not used and not guaranteed to be preserved:
|
|
850
848
|
this.drawTimeline();
|
851
849
|
}
|
852
850
|
}
|
853
|
-
|
851
|
+
|
854
852
|
});
|
@@ -1,9 +1,9 @@
|
|
1
1
|
|
2
2
|
/** = Description
|
3
|
-
* The foundation class for all active visual components that
|
3
|
+
* The foundation class for all active visual components that
|
4
4
|
* implement events and values.
|
5
|
-
*
|
6
|
-
* Extend +HControl+ to suit your needs. See any component
|
5
|
+
*
|
6
|
+
* Extend +HControl+ to suit your needs. See any component
|
7
7
|
* for extension reference.
|
8
8
|
*
|
9
9
|
**/
|
@@ -11,55 +11,55 @@ var//RSence.Foundation
|
|
11
11
|
HControl = HView.extend({
|
12
12
|
|
13
13
|
isCtrl: true,
|
14
|
-
|
14
|
+
|
15
15
|
/** A flag: when true, calls the +refreshValue+ method whenever
|
16
16
|
* +self.value+ is changed.
|
17
17
|
**/
|
18
18
|
refreshOnValueChange: true,
|
19
|
-
|
19
|
+
|
20
20
|
/** The event object structure that specifies which events to listen to.
|
21
21
|
**/
|
22
22
|
events: null,
|
23
|
-
|
23
|
+
|
24
24
|
/** The enabled/disabled flag. See setEnabled.
|
25
25
|
**/
|
26
26
|
enabled: null,
|
27
|
-
|
27
|
+
|
28
28
|
/** The current value of a component. See setValue.
|
29
29
|
**/
|
30
30
|
value: null,
|
31
|
-
|
31
|
+
|
32
32
|
/** The current HValue compatible object. Do not set directly.
|
33
33
|
* Holds reference to the bound HValue instance.
|
34
34
|
* Set with HValue.bind.
|
35
35
|
**/
|
36
36
|
valueObj: null,
|
37
|
-
|
37
|
+
|
38
38
|
/** The minimum numeric value allowed, when the component
|
39
39
|
* utilizes value ranges. See setValueRange
|
40
40
|
**/
|
41
41
|
minValue: null,
|
42
|
-
|
42
|
+
|
43
43
|
/** The maximum allowed value, when the component
|
44
44
|
* utilizes value ranges. See setValueRange
|
45
45
|
**/
|
46
46
|
maxValue: null,
|
47
|
-
|
48
|
-
/** A boolean value that shows whether this control is currently
|
47
|
+
|
48
|
+
/** A boolean value that shows whether this control is currently
|
49
49
|
* active or not. Control gets active when the user clicks on it.
|
50
50
|
**/
|
51
51
|
active: null,
|
52
|
-
|
52
|
+
|
53
53
|
/** -- Use this object to specify class-specific default settings. ++
|
54
54
|
* The controlDefaults is a HControlDefaults object that is extended
|
55
55
|
* in the constructor with the options block given. The format of
|
56
56
|
* it is an Object.
|
57
57
|
**/
|
58
58
|
controlDefaults: HControlDefaults,
|
59
|
-
|
59
|
+
|
60
60
|
/** = Description
|
61
|
-
* The constructor of HControl implements the same model as HView,
|
62
|
-
* but accepts a third parameter: the options object, that contain
|
61
|
+
* The constructor of HControl implements the same model as HView,
|
62
|
+
* but accepts a third parameter: the options object, that contain
|
63
63
|
* optional properties, like the value and events.
|
64
64
|
*
|
65
65
|
* = Parameters
|
@@ -82,7 +82,7 @@ HControl = HView.extend({
|
|
82
82
|
* points, like: +( left, top, right, bottom )+.
|
83
83
|
* Arrays with 6 items are a bit more complex (and powerful) as they can specify
|
84
84
|
* the flexible offsets too.
|
85
|
-
*
|
85
|
+
*
|
86
86
|
* === The array indexes for a +_rect+ configured as an 4-item array:
|
87
87
|
* Always left/top aligned, all items must be specified.
|
88
88
|
* Index:: Description
|
@@ -177,13 +177,13 @@ HControl = HView.extend({
|
|
177
177
|
* +enabled+:: A Boolean value defining the initial enabled -state
|
178
178
|
* of the component. Set to false to initially disable the
|
179
179
|
* component. See setEnabled
|
180
|
-
* +active+:: A Boolean value defining the initial active (clicked
|
180
|
+
* +active+:: A Boolean value defining the initial active (clicked
|
181
181
|
* or focused) state of the component.
|
182
182
|
* +minValue+:: A Number for components utilizing value ranges.
|
183
183
|
* See setValueRange
|
184
184
|
* +maxValue+:: A Number for components utilizing value ranges.
|
185
185
|
* See setValueRange
|
186
|
-
*
|
186
|
+
*
|
187
187
|
*
|
188
188
|
**/
|
189
189
|
constructor: function(_rect, _parent, _options) {
|
@@ -191,9 +191,9 @@ HControl = HView.extend({
|
|
191
191
|
_options = {};
|
192
192
|
}
|
193
193
|
var _this = this;
|
194
|
-
|
195
|
-
_options = (_this.controlDefaults.extend(_options)).nu(
|
196
|
-
|
194
|
+
|
195
|
+
_options = (_this.controlDefaults.extend(_options)).nu(_this);
|
196
|
+
|
197
197
|
if(_this.isinherited) {
|
198
198
|
_this.base(_rect, _parent, _options);
|
199
199
|
}
|
@@ -202,18 +202,18 @@ HControl = HView.extend({
|
|
202
202
|
_this.base(_rect, _parent, _options);
|
203
203
|
_this.isinherited = false;
|
204
204
|
}
|
205
|
-
|
205
|
+
|
206
206
|
var _isValueRange = (_options.minValue || _options.maxValue),
|
207
207
|
_events = _options.events;
|
208
|
-
|
208
|
+
|
209
209
|
if(_isValueRange) {
|
210
210
|
_this.minValue = _options.minValue;
|
211
211
|
_this.maxValue = _options.maxValue;
|
212
212
|
}
|
213
|
-
|
213
|
+
|
214
214
|
_this.setEvents(_events);
|
215
215
|
_this.setEnabled(_options.enabled);
|
216
|
-
|
216
|
+
|
217
217
|
// The traditional HValue instance to pass in options to be bound:
|
218
218
|
if(_options.valueObj){
|
219
219
|
_options.valueObj.bind(_this);
|
@@ -240,20 +240,21 @@ HControl = HView.extend({
|
|
240
240
|
if(!_this.valueObj) {
|
241
241
|
_this.valueObj = HDummyValue.nu();
|
242
242
|
}
|
243
|
-
|
243
|
+
|
244
244
|
if((_this.value===null)&&(_options.value!==undefined)) {
|
245
245
|
_this.setValue(_options.value);
|
246
246
|
}
|
247
247
|
if(_isValueRange) {
|
248
248
|
_this.setValueRange(this.value, _options.minValue, _options.maxValue);
|
249
249
|
}
|
250
|
-
if(!
|
250
|
+
if(!this.isinherited && this.options.autoDraw) {
|
251
|
+
var _time = new Date().getTime();
|
251
252
|
_this.draw();
|
252
253
|
}
|
253
254
|
},
|
254
|
-
|
255
|
+
|
255
256
|
/** = Description
|
256
|
-
* The destructor of +HControl+ instances.
|
257
|
+
* The destructor of +HControl+ instances.
|
257
258
|
* Releases events and values before passing through to the base HView.die.
|
258
259
|
* Extend it, you you allocate new instance members that need to be
|
259
260
|
* deallocated upon destruction.
|
@@ -268,13 +269,13 @@ HControl = HView.extend({
|
|
268
269
|
EVENT.unreg(_this);
|
269
270
|
_this.base();
|
270
271
|
},
|
271
|
-
|
272
|
+
|
272
273
|
/** = Description
|
273
274
|
* Assigns the object a new value range. Used for sliders, steppers etc. Calls
|
274
275
|
* setValue with the value given.
|
275
276
|
*
|
276
277
|
* = Parameters
|
277
|
-
* +_value+:: The new value to be set to the component's
|
278
|
+
* +_value+:: The new value to be set to the component's
|
278
279
|
* HValue compatible instance.
|
279
280
|
*
|
280
281
|
* +_minValue+:: The new minimum value limit. See minValue.
|
@@ -295,7 +296,7 @@ HControl = HView.extend({
|
|
295
296
|
}
|
296
297
|
return this;
|
297
298
|
},
|
298
|
-
|
299
|
+
|
299
300
|
/** = Description
|
300
301
|
* Called when the +self.value+ has been changed. By default
|
301
302
|
* tries to update the value element defined in the theme of
|
@@ -314,14 +315,14 @@ HControl = HView.extend({
|
|
314
315
|
}
|
315
316
|
return this;
|
316
317
|
},
|
317
|
-
|
318
|
+
|
318
319
|
/** = Description
|
319
320
|
* Called mostly internally whenever a property change requires usually visual
|
320
|
-
* action. It's called by methods like setLabel and setValue.
|
321
|
-
* Extends HView.refresh. The boolean properties refreshOnValueChange and
|
322
|
-
* refreshOnLabelChange control whether refreshValue or refreshLabel
|
323
|
-
* should be called. It's used as-is in most components. If you implement
|
324
|
-
* your class extension with properties similar to value or label,
|
321
|
+
* action. It's called by methods like setLabel and setValue.
|
322
|
+
* Extends HView.refresh. The boolean properties refreshOnValueChange and
|
323
|
+
* refreshOnLabelChange control whether refreshValue or refreshLabel
|
324
|
+
* should be called. It's used as-is in most components. If you implement
|
325
|
+
* your class extension with properties similar to value or label,
|
325
326
|
* you are advised to extend the refresh method.
|
326
327
|
*
|
327
328
|
* = Returns
|
@@ -340,19 +341,19 @@ HControl = HView.extend({
|
|
340
341
|
},
|
341
342
|
|
342
343
|
{
|
343
|
-
|
344
|
+
|
344
345
|
// The CSS class name to set when the component is disabled
|
345
346
|
CSS_DISABLED: "disabled",
|
346
|
-
|
347
|
+
|
347
348
|
// The CSS class name to set when the component is selected
|
348
349
|
CSS_SELECTED: "selected",
|
349
|
-
|
350
|
+
|
350
351
|
// The CSS class name to set when the component is enabled
|
351
352
|
CSS_ENABLED: "enabled",
|
352
|
-
|
353
|
+
|
353
354
|
// The CSS class name to set when the component is active (clicked/focused)
|
354
355
|
CSS_ACTIVE: "active"
|
355
|
-
|
356
|
+
|
356
357
|
});
|
357
358
|
|
358
359
|
HControl.implement( HValueResponder );
|
@@ -5,7 +5,11 @@
|
|
5
5
|
***/
|
6
6
|
var//RSence.Foundation
|
7
7
|
HControlDefaults = HClass.extend({
|
8
|
-
|
8
|
+
|
9
|
+
/** Whether or not to draw when constructed.
|
10
|
+
*/
|
11
|
+
autoDraw: true,
|
12
|
+
|
9
13
|
/** The default label. A label is the "visual value" of a component that
|
10
14
|
* operates on a "hidden" value.
|
11
15
|
**/
|
@@ -14,36 +18,36 @@ HControlDefaults = HClass.extend({
|
|
14
18
|
/** The default initial visibility of the component.
|
15
19
|
**/
|
16
20
|
visible: true,
|
17
|
-
|
21
|
+
|
18
22
|
/** The default initial event responders to register to a component.
|
19
23
|
* By default no events are enabled.
|
20
24
|
**/
|
21
25
|
events: null,
|
22
|
-
|
26
|
+
|
23
27
|
constructor: function(){
|
24
28
|
if(!this.events){
|
25
29
|
this.events = {};
|
26
30
|
}
|
27
31
|
},
|
28
|
-
|
32
|
+
|
29
33
|
/** The default initial value of the component.
|
30
34
|
**/
|
31
35
|
value: 0,
|
32
|
-
|
36
|
+
|
33
37
|
/** The default initial enabled state of the component.
|
34
38
|
**/
|
35
39
|
enabled: true,
|
36
|
-
|
40
|
+
|
37
41
|
/** The default initial active state of the component.
|
38
42
|
**/
|
39
43
|
active: false,
|
40
|
-
|
44
|
+
|
41
45
|
/** The default initial minimum value of the component.
|
42
46
|
**/
|
43
47
|
minValue: -2147483648,
|
44
|
-
|
48
|
+
|
45
49
|
/** The default initial maximum value of the component.
|
46
50
|
**/
|
47
51
|
maxValue: 2147483648
|
48
|
-
|
52
|
+
|
49
53
|
});
|