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
@@ -340,6 +340,9 @@ EventManagerApp = HApplication.extend
|
|
340
340
|
return false
|
341
341
|
return true
|
342
342
|
#
|
343
|
+
# Queue of items to check for focus, because it's fairly slow directly:
|
344
|
+
_topmostQueue: []
|
345
|
+
#
|
343
346
|
# Converts eventOptions into a list of enabled event names
|
344
347
|
_setEventOptions: (_ctrl,_eventOptions,_warnMethodName)->
|
345
348
|
_warnMethodName = '[unknown]' unless _warnMethodName
|
@@ -377,9 +380,7 @@ EventManagerApp = HApplication.extend
|
|
377
380
|
@_listeners.enabled.unshift( _viewId ) unless ~@_listeners.enabled.indexOf(_viewId)
|
378
381
|
_elem = ELEM.get( _ctrl.elemId )
|
379
382
|
[ x, y ] = @status.crsr
|
380
|
-
|
381
|
-
if ~_matchIds.indexOf( _viewId )
|
382
|
-
@changeActiveControl( _ctrl )
|
383
|
+
@_topmostQueue.push( [ HPoint.new( x, y ), _ctrl ] )
|
383
384
|
#
|
384
385
|
# Releases bindings done by #_setEventOptions
|
385
386
|
_unsetEventOptions: (_ctrl,_warnMethodName)->
|
@@ -396,7 +397,6 @@ EventManagerApp = HApplication.extend
|
|
396
397
|
_intersectHoverIdx = @_listeners._rectHoverIntersectMode.indexOf( _viewId )
|
397
398
|
if ~_intersectHoverIdx
|
398
399
|
@_listeners._rectHoverIntersectMode.splice( _intersectHoverIdx, 1 )
|
399
|
-
_wasFocused = false
|
400
400
|
_elem = ELEM.get( _ctrl.elemId )
|
401
401
|
for _statusItem in [ 'dragged', 'selected', 'hovered', 'active', 'focused', 'enabled' ]
|
402
402
|
_viewIdx = @_listeners[_statusItem].indexOf(_viewId)
|
@@ -411,7 +411,6 @@ EventManagerApp = HApplication.extend
|
|
411
411
|
_ctrl._lostActiveStatus( null )
|
412
412
|
else if _statusItem == 'focused'
|
413
413
|
@blur( _ctrl )
|
414
|
-
_wasFocused = true
|
415
414
|
else if _statusItem == 'enabled'
|
416
415
|
_ctrl.setEnabled( false ) if _ctrl.enabled
|
417
416
|
_viewIdx = @_listeners[_statusItem].indexOf(_viewId)
|
@@ -736,8 +735,17 @@ EventManagerApp = HApplication.extend
|
|
736
735
|
if _active.length != 1
|
737
736
|
@warn "Danger, too many active items: #{JSON.stringify(_active)}"
|
738
737
|
for _viewId in _active.slice()
|
738
|
+
if _viewId == null
|
739
|
+
console.warn('encountered null viewId in active listeners!')
|
740
|
+
_idx = _active.indexOf( _viewId )
|
741
|
+
while ~_idx
|
742
|
+
_idx = _active.indexOf( _viewId )
|
743
|
+
_active.splice( _idx, 1 )
|
744
|
+
continue
|
739
745
|
continue if _newActive != null and _viewId == _newActive.viewId
|
740
746
|
_ctrl = @_views[_viewId]
|
747
|
+
if _ctrl.isDead and !@isProduction
|
748
|
+
console.warn('trying to deactivate dead control!')
|
741
749
|
_ctrl.active = false
|
742
750
|
_idx = _active.indexOf( _viewId )
|
743
751
|
_dragIdx = _dragged.indexOf(_viewId)
|
@@ -1116,25 +1124,21 @@ EventManagerApp = HApplication.extend
|
|
1116
1124
|
# a special default rule of auto-selecting the active control and
|
1117
1125
|
# checking all of its siblings before traversing.
|
1118
1126
|
defaultKey: (_methodName,_ctrl)->
|
1119
|
-
if _ctrl?
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
1128
|
-
|
1129
|
-
if
|
1130
|
-
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
return _stop
|
1135
|
-
if _ctrl.parent?
|
1136
|
-
return true if @defaultKey(_methodName,_ctrl.parent)
|
1137
|
-
return null
|
1127
|
+
return true if _ctrl? and _ctrl[_methodName]? and _ctrl[_methodName]() == true
|
1128
|
+
return null unless @_listeners.active
|
1129
|
+
_ctrl = @_views[@_listeners.active[0]]
|
1130
|
+
return true if _ctrl[_methodName]? and _ctrl[_methodName]() == true
|
1131
|
+
_stop = null
|
1132
|
+
for _viewId in _ctrl.parent.views
|
1133
|
+
continue if _ctrl.viewId == _viewId
|
1134
|
+
_ctrl = @_views[_viewId]
|
1135
|
+
if _ctrl[_methodName]?
|
1136
|
+
_stopStatus = _ctrl[_methodName]()
|
1137
|
+
if _stopStatus == false or _stopStatus == true
|
1138
|
+
_stop = _stopStatus unless _stop
|
1139
|
+
return _stop if _stop != null
|
1140
|
+
return true if _ctrl.parent? and @defaultKey(_methodName,_ctrl.parent) == true
|
1141
|
+
null
|
1138
1142
|
#
|
1139
1143
|
# Handles the keyDown event
|
1140
1144
|
keyDown: (e)->
|
@@ -1219,13 +1223,27 @@ EventManagerApp = HApplication.extend
|
|
1219
1223
|
@warn('EventManager#isCmdKeyDown is deprecated, use #status.cmdKeyDown instead')
|
1220
1224
|
@status.altKeyDown
|
1221
1225
|
#
|
1222
|
-
|
1223
|
-
|
1224
|
-
|
1225
|
-
|
1226
|
-
|
1227
|
-
|
1228
|
-
|
1226
|
+
idle: ->
|
1227
|
+
if @_topmostQueue.length
|
1228
|
+
_items = []
|
1229
|
+
_lastPoint = false
|
1230
|
+
for i in [0..(@_topmostQueue.length-1)]
|
1231
|
+
[ _point, _ctrl ] = @_topmostQueue.shift()
|
1232
|
+
_lastPoint = _point
|
1233
|
+
continue if _ctrl.isDead
|
1234
|
+
continue unless _ctrl.enabled
|
1235
|
+
_items.push( _ctrl )
|
1236
|
+
_matchIds = @_findTopmostEnabled( _lastPoint, 'contains', null )
|
1237
|
+
for _ctrl in _items
|
1238
|
+
_viewId = _ctrl.viewId
|
1239
|
+
if ~_matchIds.indexOf( _viewId )
|
1240
|
+
@changeActiveControl( _ctrl )
|
1241
|
+
# Debug output
|
1242
|
+
# console.log( 'focused: ',
|
1243
|
+
# JSON.stringify(@_listeners.focused),'active:',
|
1244
|
+
# JSON.stringify(@_listeners.active),'dragged:',
|
1245
|
+
# JSON.stringify(@_listeners.dragged),'hovered:',
|
1246
|
+
# JSON.stringify(@_listeners.hovered) )
|
1229
1247
|
#
|
1230
1248
|
# Cleans up structures
|
1231
1249
|
die: ->
|
@@ -1233,7 +1251,7 @@ EventManagerApp = HApplication.extend
|
|
1233
1251
|
@base()
|
1234
1252
|
|
1235
1253
|
LOAD( ->
|
1236
|
-
window.EventManager = EventManagerApp.new(
|
1254
|
+
window.EventManager = EventManagerApp.new( 40, 'EventManager' )
|
1237
1255
|
# Alias:
|
1238
1256
|
window.EVENT = EventManager
|
1239
1257
|
EventManager.start()
|
@@ -53,7 +53,7 @@ HRect = HClass.extend({
|
|
53
53
|
constructor: function() {
|
54
54
|
this.viewIds = [];
|
55
55
|
var _args=arguments;
|
56
|
-
|
56
|
+
|
57
57
|
if (_args.length === 0) {
|
58
58
|
this._constructorDefault();
|
59
59
|
} else if (_args.length === 4) {
|
@@ -126,7 +126,7 @@ HRect = HClass.extend({
|
|
126
126
|
return [ _this.left, _this.top, _this.width, _this.height ];
|
127
127
|
}
|
128
128
|
},
|
129
|
-
|
129
|
+
|
130
130
|
_updateFlexibleDimensions: function(){
|
131
131
|
var
|
132
132
|
_this = this,
|
@@ -146,6 +146,15 @@ HRect = HClass.extend({
|
|
146
146
|
_view = HSystem.views[_viewId];
|
147
147
|
if(_view.flexRight || _view.flexBottom){
|
148
148
|
ELEM.flush();
|
149
|
+
//// This will increase performance somewhat, but needs to be broader than it is:
|
150
|
+
// var i=0,_parentElemIds=[_view.elemId],_parentView;
|
151
|
+
// for(;i<_view.parents.length;i++){
|
152
|
+
// _parentView = _view.parents[i];
|
153
|
+
// if(_parentView && _parentView.elemId !== null && _parentView.elemId !== undefined){
|
154
|
+
// _parentElemIds.push(_parentView.elemId);
|
155
|
+
// }
|
156
|
+
// }
|
157
|
+
// ELEM.flushElem(_parentElemIds);
|
149
158
|
_parentSize = _view.parentSize();
|
150
159
|
if( _view.flexRight && _view.flexLeft ){ // calculate width and right
|
151
160
|
_virtualWidth = _parentSize[0] - _this.left - _view.flexRightOffset;
|
@@ -198,9 +207,9 @@ HRect = HClass.extend({
|
|
198
207
|
*
|
199
208
|
**/
|
200
209
|
updateSecondaryValues: function(_noSize) {
|
201
|
-
|
210
|
+
|
202
211
|
// this._updateFlexibleDimensions();
|
203
|
-
|
212
|
+
|
204
213
|
/**
|
205
214
|
* isValid is true if the Rect's right side is greater than or equal to its left
|
206
215
|
* and its bottom is greater than or equal to its top, and false otherwise.
|
@@ -208,7 +217,7 @@ HRect = HClass.extend({
|
|
208
217
|
* the frame of a view or window).
|
209
218
|
**/
|
210
219
|
this.isValid = ( this.right >= this.left && this.bottom >= this.top );
|
211
|
-
|
220
|
+
|
212
221
|
/**
|
213
222
|
*
|
214
223
|
* The Point-returning functions return the coordinates of one of the
|
@@ -218,7 +227,7 @@ HRect = HClass.extend({
|
|
218
227
|
this.leftBottom = new HPoint(this.left, this.bottom);
|
219
228
|
this.rightTop = new HPoint(this.right, this.top);
|
220
229
|
this.rightBottom = new HPoint(this.right, this.bottom);
|
221
|
-
|
230
|
+
|
222
231
|
/**
|
223
232
|
* The width and height of a Rect's rectangle, as returned through these
|
224
233
|
* properties.
|
@@ -227,9 +236,11 @@ HRect = HClass.extend({
|
|
227
236
|
this.width = (this.right - this.left);
|
228
237
|
this.height = (this.bottom - this.top);
|
229
238
|
}
|
239
|
+
this.position = [ this.left, this.top ];
|
240
|
+
this.size = [ this.width, this.height ];
|
230
241
|
return this;
|
231
242
|
},
|
232
|
-
|
243
|
+
|
233
244
|
/** = Description
|
234
245
|
* Sets the object's rectangle by defining the coordinates of all four
|
235
246
|
* sides.
|
@@ -248,7 +259,7 @@ HRect = HClass.extend({
|
|
248
259
|
**/
|
249
260
|
set: function() {
|
250
261
|
var _args=arguments;
|
251
|
-
|
262
|
+
|
252
263
|
if (_args.length === 0) {
|
253
264
|
this._constructorDefault();
|
254
265
|
} else if (_args.length === 4) {
|
@@ -266,7 +277,7 @@ HRect = HClass.extend({
|
|
266
277
|
this.updateSecondaryValues();
|
267
278
|
return this;
|
268
279
|
},
|
269
|
-
|
280
|
+
|
270
281
|
/** = Description
|
271
282
|
* Moves the rect's left side to a new coordinate.
|
272
283
|
*
|
@@ -279,7 +290,7 @@ HRect = HClass.extend({
|
|
279
290
|
this.updateSecondaryValues();
|
280
291
|
return this;
|
281
292
|
},
|
282
|
-
|
293
|
+
|
283
294
|
/** = Description
|
284
295
|
* Moves the rect's right side to a new coordinate.
|
285
296
|
*
|
@@ -292,7 +303,7 @@ HRect = HClass.extend({
|
|
292
303
|
this.updateSecondaryValues();
|
293
304
|
return this;
|
294
305
|
},
|
295
|
-
|
306
|
+
|
296
307
|
/** = Description
|
297
308
|
* Moves the rect's top side to a new coordinate.
|
298
309
|
*
|
@@ -305,7 +316,7 @@ HRect = HClass.extend({
|
|
305
316
|
this.updateSecondaryValues();
|
306
317
|
return this;
|
307
318
|
},
|
308
|
-
|
319
|
+
|
309
320
|
/** = Description
|
310
321
|
* Moves the rect's bottom side to a new coordinate.
|
311
322
|
*
|
@@ -318,7 +329,7 @@ HRect = HClass.extend({
|
|
318
329
|
this.updateSecondaryValues();
|
319
330
|
return this;
|
320
331
|
},
|
321
|
-
|
332
|
+
|
322
333
|
/** = Description
|
323
334
|
* Moves the rects left and top sides to a new point. Affects the position,
|
324
335
|
* width and height.
|
@@ -333,7 +344,7 @@ HRect = HClass.extend({
|
|
333
344
|
this.updateSecondaryValues();
|
334
345
|
return this;
|
335
346
|
},
|
336
|
-
|
347
|
+
|
337
348
|
/** = Description
|
338
349
|
* Moves the rects left and bottom sides to a new point. Affects the left
|
339
350
|
* position, width and height.
|
@@ -348,7 +359,7 @@ HRect = HClass.extend({
|
|
348
359
|
this.updateSecondaryValues();
|
349
360
|
return this;
|
350
361
|
},
|
351
|
-
|
362
|
+
|
352
363
|
/** = Description
|
353
364
|
* Moves the rects right and top sides to a new point. Affects the top
|
354
365
|
* position, width and height.
|
@@ -363,7 +374,7 @@ HRect = HClass.extend({
|
|
363
374
|
this.updateSecondaryValues();
|
364
375
|
return this;
|
365
376
|
},
|
366
|
-
|
377
|
+
|
367
378
|
/** = Description
|
368
379
|
* Moves the rects right and bottom sides to a new point. Affects the width
|
369
380
|
* and height. Does not affect the position.
|
@@ -378,7 +389,7 @@ HRect = HClass.extend({
|
|
378
389
|
this.updateSecondaryValues();
|
379
390
|
return this;
|
380
391
|
},
|
381
|
-
|
392
|
+
|
382
393
|
/** = Description
|
383
394
|
* Moves the rects right side to a new coordinate. Does not affect the position.
|
384
395
|
*
|
@@ -435,7 +446,7 @@ HRect = HClass.extend({
|
|
435
446
|
this.updateSecondaryValues();
|
436
447
|
return this;
|
437
448
|
},
|
438
|
-
|
449
|
+
|
439
450
|
/** = Description
|
440
451
|
* Returns true if the Rect has any area even a corner or part
|
441
452
|
* of a side in common with rect, and false if it doesn't.
|
@@ -464,12 +475,12 @@ HRect = HClass.extend({
|
|
464
475
|
overlaps: function( _rect, _insetbyX, _insetByY ){
|
465
476
|
return this.intersects( _rect, _insetbyX, _insetByY );
|
466
477
|
},
|
467
|
-
|
478
|
+
|
468
479
|
/** = Description
|
469
480
|
* Returns true if point or rect lies entirely within the Rect's
|
470
481
|
* rectangle (and false if not). A rectangle contains the points that lie
|
471
482
|
* along its edges; for example, two identical rectangles contain each other.
|
472
|
-
*
|
483
|
+
*
|
473
484
|
* Also works with HPoint instances.
|
474
485
|
*
|
475
486
|
* = Parameters
|
@@ -498,7 +509,7 @@ HRect = HClass.extend({
|
|
498
509
|
return ( _rect.left >= this.left && _rect.right <= this.right &&
|
499
510
|
_rect.top >= this.top && _rect.bottom <= this.bottom );
|
500
511
|
},
|
501
|
-
|
512
|
+
|
502
513
|
/** = Description
|
503
514
|
* Insets the sides of the Rect's rectangle by x units (left and
|
504
515
|
* right sides) and y units (top and bottom). Positive inset values shrink
|
@@ -537,7 +548,7 @@ HRect = HClass.extend({
|
|
537
548
|
this.right -= x;
|
538
549
|
this.bottom -= y;
|
539
550
|
},
|
540
|
-
|
551
|
+
|
541
552
|
/** = Description
|
542
553
|
* Moves the Rect horizontally by x units and vertically by y
|
543
554
|
* units. The rectangle's size doesn't change.
|
@@ -572,7 +583,7 @@ HRect = HClass.extend({
|
|
572
583
|
this.right += x;
|
573
584
|
this.bottom += y;
|
574
585
|
},
|
575
|
-
|
586
|
+
|
576
587
|
/** = Description
|
577
588
|
* Moves the Rect to the location (x,y).
|
578
589
|
*
|
@@ -606,7 +617,7 @@ HRect = HClass.extend({
|
|
606
617
|
this.bottom += y-this.top;
|
607
618
|
this.top = y;
|
608
619
|
},
|
609
|
-
|
620
|
+
|
610
621
|
/** = Description
|
611
622
|
* Returns true if the two objects' rectangles exactly coincide.
|
612
623
|
*
|
@@ -621,7 +632,7 @@ HRect = HClass.extend({
|
|
621
632
|
return (this.left === _rect.left && this.top === _rect.top &&
|
622
633
|
this.right === _rect.right && this.bottom === _rect.bottom);
|
623
634
|
},
|
624
|
-
|
635
|
+
|
625
636
|
/** = Description
|
626
637
|
* Creates and returns a new Rect that's the intersection of this Rect and
|
627
638
|
* the specified Rect. The new Rect encloses the area that the two Rects have
|
@@ -640,7 +651,7 @@ HRect = HClass.extend({
|
|
640
651
|
Math.min(this.right, _rect.right), Math.min(this.bottom, _rect.bottom)
|
641
652
|
);
|
642
653
|
},
|
643
|
-
|
654
|
+
|
644
655
|
/** = Description
|
645
656
|
* Creates and returns a new Rect that minimally but completely encloses the
|
646
657
|
* area defined by this Rect and the specified Rect.
|
@@ -658,10 +669,10 @@ HRect = HClass.extend({
|
|
658
669
|
Math.max(this.right, _rect.right), Math.max(this.bottom, _rect.bottom)
|
659
670
|
);
|
660
671
|
},
|
661
|
-
|
672
|
+
|
662
673
|
// HValue and HView support
|
663
674
|
valueObj: null,
|
664
|
-
|
675
|
+
|
665
676
|
/** = Description
|
666
677
|
* Bind function
|
667
678
|
*
|
@@ -676,7 +687,7 @@ HRect = HClass.extend({
|
|
676
687
|
this._updateFlexibleDimensions();
|
677
688
|
return this;
|
678
689
|
},
|
679
|
-
|
690
|
+
|
680
691
|
/** = Description
|
681
692
|
* Release function
|
682
693
|
**/
|
@@ -687,7 +698,7 @@ HRect = HClass.extend({
|
|
687
698
|
}
|
688
699
|
return this;
|
689
700
|
},
|
690
|
-
|
701
|
+
|
691
702
|
/** = Description
|
692
703
|
* Sets valueObj for this component given as parameter.
|
693
704
|
*
|
@@ -699,7 +710,7 @@ HRect = HClass.extend({
|
|
699
710
|
this.valueObj = _valueObj;
|
700
711
|
return this;
|
701
712
|
},
|
702
|
-
|
713
|
+
|
703
714
|
/** = Description
|
704
715
|
* setValue function
|
705
716
|
*
|
@@ -724,5 +735,5 @@ HRect = HClass.extend({
|
|
724
735
|
toString: function(){
|
725
736
|
return ('[object Rect left='+this.left+' top='+this.top+' width='+this.width+' height='+this.height+' right='+this.right+' bottom='+this.bottom+']');
|
726
737
|
}
|
727
|
-
|
738
|
+
|
728
739
|
});
|
@@ -1,8 +1,15 @@
|
|
1
1
|
|
2
2
|
var
|
3
|
-
HLocale = {
|
3
|
+
HLocale = (UtilMethods.extend({
|
4
|
+
setData: function(_locale){
|
5
|
+
this.updateObject(_locale,this);
|
6
|
+
},
|
4
7
|
components: {
|
5
|
-
|
8
|
+
|
9
|
+
},
|
10
|
+
general: {
|
11
|
+
decimalSeparator: '.',
|
12
|
+
thousandsSeparator: ''
|
6
13
|
},
|
7
14
|
compUnits: {
|
8
15
|
strings: {
|
@@ -87,13 +94,18 @@ HLocale = {
|
|
87
94
|
dateDelimitter: '.',
|
88
95
|
timeDelimitter: ':',
|
89
96
|
timeMsDelimitter: '.',
|
90
|
-
rangeDelimitter: ' ... '
|
97
|
+
rangeDelimitter: ' ... ',
|
98
|
+
dateFormat: 'YYYY-MM-DD',
|
99
|
+
timeFormat: 'HH:mm:ss',
|
100
|
+
dateTimeFormat: 'YYYY-MM-DD HH:mm:ss'
|
91
101
|
},
|
92
102
|
settings: {
|
93
103
|
zeroPadTime: true,
|
94
104
|
AMPM: false
|
95
105
|
},
|
96
106
|
defaultOptions: {
|
107
|
+
useUTC: true,
|
108
|
+
tzMinutes: 0,
|
97
109
|
longWeekDay: false,
|
98
110
|
shortWeekDay: false,
|
99
111
|
shortYear: false,
|
@@ -110,11 +122,10 @@ HLocale = {
|
|
110
122
|
for( _key in _default ){
|
111
123
|
_options[_key] = _default[_key];
|
112
124
|
}
|
113
|
-
if(
|
114
|
-
_custom
|
115
|
-
|
116
|
-
|
117
|
-
_options[_key] = _custom[_key];
|
125
|
+
if( _custom ){
|
126
|
+
for( _key in _custom ){
|
127
|
+
_options[_key] = _custom[_key];
|
128
|
+
}
|
118
129
|
}
|
119
130
|
return _options;
|
120
131
|
},
|
@@ -129,7 +140,7 @@ HLocale = {
|
|
129
140
|
_this = HLocale.dateTime,
|
130
141
|
_date = new Date( _dateTimeEpoch * 1000 ),
|
131
142
|
_strings = _this.strings,
|
132
|
-
_wday = _date.getUTCDay();
|
143
|
+
_wday = _this.options().useUTC?_date.getUTCDay():_date.getDay();
|
133
144
|
return _strings.weekDaysShort[ _wday ];
|
134
145
|
},
|
135
146
|
formatLongWeekDay: function( _dateTimeEpoch ){
|
@@ -137,26 +148,26 @@ HLocale = {
|
|
137
148
|
_this = HLocale.dateTime,
|
138
149
|
_date = new Date( _dateTimeEpoch * 1000 ),
|
139
150
|
_strings = _this.strings,
|
140
|
-
_wday = _date.getUTCDay();
|
151
|
+
_wday = _this.options().useUTC?_date.getUTCDay():_date.getDay();
|
141
152
|
return _strings.weekDaysLong[ _wday ];
|
142
153
|
},
|
143
154
|
formatDate: function( _dateTimeEpoch, _options ){
|
155
|
+
_options = this.options( _options );
|
144
156
|
var
|
145
157
|
_this = HLocale.dateTime,
|
146
158
|
_date = new Date( _dateTimeEpoch * 1000 ),
|
147
159
|
_strings = _this.strings,
|
148
|
-
_wday = _date.getUTCDay(),
|
149
|
-
_dateString = _date.getUTCDate() + _strings.dateDelimitter + (_date.getUTCMonth() + 1) + _strings.dateDelimitter
|
150
|
-
|
151
|
-
|
152
|
-
|
160
|
+
_wday = _options.useUTC?_date.getUTCDay():_date.getDay(),
|
161
|
+
_dateString = _options.useUTC?(_date.getUTCDate() + _strings.dateDelimitter + (_date.getUTCMonth() + 1) + _strings.dateDelimitter):
|
162
|
+
(_date.getDate() + _strings.dateDelimitter + (_date.getMonth() + 1) + _strings.dateDelimitter);
|
163
|
+
|
153
164
|
if( _options.fullYear ){
|
154
|
-
_dateString += _date.getUTCFullYear();
|
165
|
+
_dateString += _options.useUTC?_date.getUTCFullYear():_date.getFullYear();
|
155
166
|
}
|
156
167
|
else if( _options.shortYear ){
|
157
|
-
_dateString +=
|
168
|
+
_dateString += _options.useUTC?_date.getUTCYear():_date.getYear();
|
158
169
|
}
|
159
|
-
|
170
|
+
|
160
171
|
if( _options.longWeekDay ){
|
161
172
|
return _strings.weekDaysLong[_wday] + ' ' + _dateString;
|
162
173
|
}
|
@@ -166,18 +177,18 @@ HLocale = {
|
|
166
177
|
return _dateString;
|
167
178
|
},
|
168
179
|
formatTime: function( _dateTimeEpoch, _options ){
|
180
|
+
_options = this.options( _options );
|
169
181
|
var
|
170
182
|
_this = HLocale.dateTime,
|
171
183
|
_date = new Date( _dateTimeEpoch * 1000 ),
|
172
184
|
_strings = _this.strings,
|
173
|
-
_timeString = _this.zeroPadTime( _date.getUTCHours() ) + _strings.timeDelimitter + _this.zeroPadTime( _date.getUTCMinutes() )
|
174
|
-
|
175
|
-
|
176
|
-
|
185
|
+
_timeString = _options.useUTC?(_this.zeroPadTime( _date.getUTCHours() ) + _strings.timeDelimitter + _this.zeroPadTime( _date.getUTCMinutes() )):
|
186
|
+
(_this.zeroPadTime( _date.getHours() ) + _strings.timeDelimitter + _this.zeroPadTime( _date.getMinutes() ));
|
187
|
+
|
177
188
|
if( _options.seconds ){
|
178
|
-
_timeString += _strings.timeDelimitter + _this.zeroPadTime( _date.getUTCSeconds() );
|
189
|
+
_timeString += _strings.timeDelimitter + _this.zeroPadTime( _options.useUTC?_date.getUTCSeconds():_date.getSeconds() );
|
179
190
|
if( _options.milliSeconds ){
|
180
|
-
_timeString += _strings.timeMsDelimitter + _date.getUTCMilliseconds();
|
191
|
+
_timeString += _strings.timeMsDelimitter + _options.useUTC?_date.getUTCMilliseconds():_date.getMilliseconds;
|
181
192
|
}
|
182
193
|
}
|
183
194
|
return _timeString;
|
@@ -187,4 +198,4 @@ HLocale = {
|
|
187
198
|
return _this.formatDate( _dateTimeEpoch, _options ) + ' ' + _this.formatTime( _dateTimeEpoch, _options );
|
188
199
|
}
|
189
200
|
}
|
190
|
-
};
|
201
|
+
})).nu();
|