rsence-pre 3.0.0.8 → 3.0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
});
|