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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/client/conf/client_pkg.yaml +6 -2
  4. data/client/js/comm/queue/queue.js +32 -44
  5. data/client/js/comm/transporter/transporter.js +24 -16
  6. data/client/js/comm/values/values.js +27 -15
  7. data/client/js/controls/button/button.coffee +14 -5
  8. data/client/js/controls/button/themes/default/button.css +4 -2
  9. data/client/js/controls/checkbox/checkbox.js +4 -4
  10. data/client/js/controls/dialogs/sheet/sheet.js +11 -11
  11. data/client/js/controls/dialogs/sheet/themes/default/sheet.html +1 -1
  12. data/client/js/controls/imageview/imageview.js +15 -15
  13. data/client/js/controls/numerictextcontrol/numerictextcontrol.coffee +32 -10
  14. data/client/js/controls/onoffbutton/onoffbutton.coffee +5 -5
  15. data/client/js/controls/progress/progressbar/progressbar.js +6 -7
  16. data/client/js/controls/progress/progressbar/themes/default/progressbar.css +4 -4
  17. data/client/js/controls/progress/progressbar/themes/default/progressbar.html +1 -2
  18. data/client/js/controls/sliders/slider/slider.js +74 -79
  19. data/client/js/controls/stepper/stepper.js +31 -31
  20. data/client/js/controls/stringview/stringview.js +20 -8
  21. data/client/js/controls/tab/tab.js +57 -63
  22. data/client/js/controls/tab/themes/default/tab.html +4 -1
  23. data/client/js/controls/textcontrol/textcontrol.coffee +13 -3
  24. data/client/js/controls/validatorview/validatorview.js +4 -4
  25. data/client/js/controls/window/window.js +43 -56
  26. data/client/js/core/class/class.js +25 -23
  27. data/client/js/core/elem/elem.coffee +8 -1
  28. data/client/js/core/rsence_ns/rsence_ns.coffee +6 -2
  29. data/client/js/core/util/util_methods/util_methods.coffee +57 -15
  30. data/client/js/datetime/calendar/calendar.coffee +196 -199
  31. data/client/js/datetime/calendar/themes/default/calendar.css +81 -159
  32. data/client/js/datetime/calendar/themes/default/calendar.html +9 -18
  33. data/client/js/datetime/datepicker/datepicker.coffee +18 -3
  34. data/client/js/datetime/datetimepicker/datetimepicker.coffee +6 -1
  35. data/client/js/datetime/datetimevalue/datetimevalue.coffee +194 -0
  36. data/client/js/datetime/momentjs/momentjs.js +310 -76
  37. data/client/js/datetime/timepicker/timepicker.coffee +6 -1
  38. data/client/js/datetime/timesheet/timesheet.js +59 -61
  39. data/client/js/foundation/control/control.js +45 -44
  40. data/client/js/foundation/control/controldefaults/controldefaults.js +13 -9
  41. data/client/js/foundation/control/dyncontrol/dyncontrol.js +45 -57
  42. data/client/js/foundation/control/eventresponder/eventresponder.js +97 -97
  43. data/client/js/foundation/control/valuematrix/valuematrix.js +13 -13
  44. data/client/js/foundation/eventmanager/eventmanager.coffee +50 -32
  45. data/client/js/foundation/geom/rect/rect.js +43 -32
  46. data/client/js/foundation/locale_settings/locale_settings.js +36 -25
  47. data/client/js/foundation/system/system.js +79 -67
  48. data/client/js/foundation/thememanager/thememanager.coffee +11 -1
  49. data/client/js/foundation/value/pullvalue/pullvalue.coffee +7 -0
  50. data/client/js/foundation/value/pushvalue/pushvalue.coffee +25 -0
  51. data/client/js/foundation/value/value.js +22 -15
  52. data/client/js/foundation/view/view.js +94 -55
  53. data/client/js/foundation/view/viewdefaults/viewdefaults.js +5 -1
  54. data/client/js/lists/listitems/listitems.js +26 -4
  55. data/client/js/menus/combobox/combobox.coffee +55 -0
  56. data/client/js/menus/minimenu/minimenu.js +61 -30
  57. data/client/js/menus/minimenu/themes/default/minimenu.css +1 -6
  58. data/client/js/menus/minimenu/themes/default/minimenu.html +5 -4
  59. data/client/js/menus/minimenuitem/minimenuitem.js +6 -6
  60. data/client/js/menus/popupmenu/themes/default/popupmenu.css +1 -6
  61. data/client/js/menus/popupmenu/themes/default/popupmenu.html +5 -4
  62. data/client/js/tables/table/table.coffee +109 -64
  63. data/client/js/tables/table/themes/default/table.css +4 -0
  64. data/lib/rsence/msg.rb +64 -64
  65. data/lib/rsence/plugins/plugin.rb +68 -52
  66. data/lib/rsence/session/sequel_sessionstorage.rb +5 -5
  67. data/lib/rsence/value.rb +79 -59
  68. data/plugins/client_pkg/lib/client_pkg_build.rb +5 -1
  69. data/plugins/client_pkg/lib/client_pkg_serve.rb +40 -32
  70. data/plugins/main/js/main.js +46 -28
  71. metadata +6 -8
  72. data/client/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
  73. data/client/js/datetime/calendar/themes/default/calendar_bg.png +0 -0
  74. data/client/js/datetime/calendar/themes/default/calendar_parts1.png +0 -0
  75. data/client/js/datetime/calendar/themes/default/calendar_parts2.png +0 -0
  76. data/client/js/datetime/datetimepicker/datetimepicker.js +0 -210
  77. data/client/js/datetime/datetimevalue/datetimevalue.js +0 -265
@@ -1,7 +1,7 @@
1
1
 
2
2
  /*** = Description
3
- ** HStepper is a control unit made of two adjacent buttons with up and down arrows
4
- ** to select the previous or next of a set of contiguous values.
3
+ ** HStepper is a control unit made of two adjacent buttons with up and down arrows
4
+ ** to select the previous or next of a set of contiguous values.
5
5
  ** Normally, a HStepper instance works in combination with a HTextControl or a HStringView instance.
6
6
  **
7
7
  ** = Instance Variables
@@ -14,34 +14,34 @@
14
14
 
15
15
  var//RSence.Controls
16
16
  HStepper = HControl.extend({
17
-
17
+
18
18
  componentName: "stepper",
19
-
19
+
20
20
  defaultEvents: {
21
21
  mouseDown: true,
22
22
  click: true,
23
23
  keyDown: true,
24
24
  mouseWheel: true
25
25
  },
26
-
27
- controlDefaults: (HControlDefaults.extend({
26
+
27
+ controlDefaults: HControlDefaults.extend({
28
28
  minValue: 0,
29
29
  maxValue: 100,
30
30
  stepSize: 1,
31
31
  repeatInterval: 200,
32
32
  wrapAround: false
33
- })),
34
-
33
+ }),
34
+
35
35
  /** Setter for wrap-around behaviour
36
36
  **/
37
37
  setWrapAround: function(_on){
38
38
  this.options.wrapAround = _on;
39
39
  },
40
-
40
+
41
41
  // -- Makes sure the value is in its boundaries and either wrap-around
42
42
  // to min/max or revert to the current value ++
43
43
  _checkValueBoundaries: function(_value){
44
-
44
+
45
45
  // -- checks for boundaries ++
46
46
  var _this = this,
47
47
  _options = _this.options,
@@ -50,15 +50,15 @@ HStepper = HControl.extend({
50
50
  _tooSmall = _value<_minVal,
51
51
  _tooBig = _value>_maxVal,
52
52
  _overflow = ( _tooSmall || _tooBig );
53
-
53
+
54
54
  // -- The value is ok, just return it as it is ++
55
55
  if (!_overflow) {
56
56
  return _value;
57
57
  }
58
-
59
-
58
+
59
+
60
60
  /// -- Handle the overflow condition: ++
61
-
61
+
62
62
  // -- Wrap around uses min/max as new value as either is reached ++
63
63
  if (_options.wrapAround) {
64
64
  if (_tooSmall) {
@@ -72,9 +72,9 @@ HStepper = HControl.extend({
72
72
  else {
73
73
  return _this.value;
74
74
  }
75
-
75
+
76
76
  },
77
-
77
+
78
78
  /** Adds the step size to the value
79
79
  **/
80
80
  stepUp: function(){
@@ -84,7 +84,7 @@ HStepper = HControl.extend({
84
84
  )
85
85
  );
86
86
  },
87
-
87
+
88
88
  /** Subtracts the step size from the value
89
89
  **/
90
90
  stepDown: function(){
@@ -94,22 +94,22 @@ HStepper = HControl.extend({
94
94
  )
95
95
  );
96
96
  },
97
-
97
+
98
98
  // -- Background-offset of the state images up/down,
99
99
  // overrideable in the html template ++
100
100
  bgStateUp: '0px -23px',
101
101
  bgStateDown: '0px -46px',
102
-
102
+
103
103
  // enables the up/down effect in the image based on the _up boolean (true means up, false means down)
104
104
  _bgStateOn: function( _up ){
105
105
  ELEM.setStyle(this.markupElemIds.state,'background-position',_up?this.bgStateUp:this.bgStateDown);
106
106
  },
107
-
107
+
108
108
  // reverts the up/down effect
109
109
  _bgStateOff: function(){
110
110
  ELEM.setStyle(this.markupElemIds.state,'background-position','');
111
111
  },
112
-
112
+
113
113
  // Starts the repeating stepping up or down (when the mouse button or a arrow key is down)
114
114
  _setRepeatInterval: function( _up ){
115
115
  var _this = this,
@@ -122,13 +122,13 @@ HStepper = HControl.extend({
122
122
  _options.repeatInterval
123
123
  );
124
124
  },
125
-
125
+
126
126
  // Stops the repeating stepping up or down enabled in _setRepeatInterval
127
127
  _clearRepeatInterval: function(){
128
128
  this._bgStateOff();
129
129
  clearInterval( this._repeatInterval );
130
130
  },
131
-
131
+
132
132
  /** Checks where the mouseDown happened and adjusts the stepper up/down based on that
133
133
  **/
134
134
  mouseDown: function( x, y ){
@@ -136,25 +136,25 @@ HStepper = HControl.extend({
136
136
  this._setRepeatInterval( ( y - this.pageY() ) <= 11 );
137
137
  return true;
138
138
  },
139
-
139
+
140
140
  /** Stops the repeating stepping, when the mouse button goes up
141
141
  **/
142
142
  mouseUp: function(){
143
143
  this._clearRepeatInterval();
144
144
  return true;
145
145
  },
146
-
146
+
147
147
  click: function(){
148
148
  this.mouseUp();
149
149
  return true;
150
150
  },
151
-
151
+
152
152
  /** Stops the repeating stepping, when the control becomes inactive
153
153
  **/
154
154
  blur: function(){
155
155
  this._clearRepeatInterval();
156
156
  },
157
-
157
+
158
158
  /** adjusts stepping up/down based on the arrow key pressed.
159
159
  * up and right arrow keys steps the value up, down and left steps the value down
160
160
  **/
@@ -183,20 +183,20 @@ HStepper = HControl.extend({
183
183
  }
184
184
  return true;
185
185
  },
186
-
186
+
187
187
  /** stops the repeating when a key goes up
188
188
  **/
189
189
  keyUp: function(){
190
190
  this._clearRepeatInterval();
191
191
  return true;
192
192
  },
193
-
193
+
194
194
  /** steps the value up/down based on the mouse scroll wheel
195
195
  **/
196
196
  mouseWheel: function(_delta) {
197
197
  (_delta>0)?this.stepUp():this.stepDown();
198
198
  return true;
199
199
  }
200
-
201
-
200
+
201
+
202
202
  });
@@ -1,10 +1,10 @@
1
1
 
2
2
  /*** = Description
3
- ** HStringView is a view component that represents a non-editable line of text.
4
- ** Commonly, stringview is used as a label to control elements
5
- ** that do not have implicit labels (text fields, checkboxes and radio buttons, and menus).
6
- ** Some form controls automatically have labels associated with them (press buttons)
7
- ** while most do not have (text fields, checkboxes and radio buttons, and sliders etc.).
3
+ ** HStringView is a view component that represents a non-editable line of text.
4
+ ** Commonly, stringview is used as a label to control elements
5
+ ** that do not have implicit labels (text fields, checkboxes and radio buttons, and menus).
6
+ ** Some form controls automatically have labels associated with them (press buttons)
7
+ ** while most do not have (text fields, checkboxes and radio buttons, and sliders etc.).
8
8
  **
9
9
  ** = Instance variables
10
10
  ** +type+:: '[HStringView]'
@@ -16,10 +16,12 @@ var HStringView, HLabel;
16
16
  var _HStringViewInterface = {
17
17
 
18
18
  componentName: "stringview",
19
-
19
+
20
20
  // allows text selection
21
21
  textSelectable: true,
22
22
 
23
+ optimizeWidthOnRefresh: true,
24
+
23
25
  /** = Description
24
26
  * The setStyle method of HStringView applies only to the value
25
27
  * element (not the whole component).
@@ -32,7 +34,7 @@ var HStringView, HLabel;
32
34
  this.setStyleOfPart( 'value', _name, _value, _cacheOverride);
33
35
  return this;
34
36
  },
35
-
37
+
36
38
  /** = Description
37
39
  * The refreshLabel of HStringView sets a tool tip.
38
40
  * Applied by the setLabel method and the label attribute of options.
@@ -47,6 +49,16 @@ var HStringView, HLabel;
47
49
  this.setMarkupOfPart( 'value', this.label );
48
50
  }
49
51
  }
52
+ },
53
+
54
+ labelPadding: 0,
55
+ optimizeWidth: function(){
56
+ var _labelWidth = this.stringWidth((this.value || this.label),null,this.markupElemIds.value);
57
+ _labelWidth += this.labelPadding;
58
+ if( this.rect.width !== _labelWidth ){
59
+ this.rect.setWidth(_labelWidth);
60
+ this.drawRect();
61
+ }
50
62
  }
51
63
  };
52
64
 
@@ -55,7 +67,7 @@ var HStringView, HLabel;
55
67
  defaultEvents: {
56
68
  contextMenu: true
57
69
  },
58
-
70
+
59
71
  /** = Description
60
72
  * HStringView allows the default contextMenu action.
61
73
  *
@@ -35,17 +35,12 @@ HTab = HControl.extend({
35
35
  refreshOnValueChange: true,
36
36
  refreshOnLabelChange: false,
37
37
 
38
- controlDefaults: (HControlDefaults.extend({
39
- constructor: function(_ctrl){
40
- this.tabInit(_ctrl);
41
- },
42
- tabInit: function(_ctrl){
43
- _ctrl.tabs = [];
44
- _ctrl.tabLabels = [];
45
- _ctrl.tabLabelBounds = [];
46
- _ctrl.tabLabelStrings = [];
47
- }
48
- })),
38
+ customOptions: function(_options){
39
+ this.tabs = [];
40
+ this.tabLabels = [];
41
+ this.tabLabelBounds = [];
42
+ this.tabLabelStrings = [];
43
+ },
49
44
 
50
45
  rightmostPx: 0,
51
46
  selectIdx: -1,
@@ -60,7 +55,10 @@ HTab = HControl.extend({
60
55
  tabLabelRightEdge: 4,
61
56
 
62
57
  // overridden in the template
63
- fontStyle: 'font-family: Helvetica, Arial, sans-serif;font-size:13px;',
58
+ fontStyle: {
59
+ fontFamily: 'Helvetica, Arial, sans-serif',
60
+ fontSize: '13px'
61
+ },
64
62
 
65
63
  tabLabelHTMLPrefix1: '<div class="edge_left"></div><div class="tablabel" style="width:',
66
64
  tabLabelHTMLPrefix2: 'px">',
@@ -69,7 +67,7 @@ HTab = HControl.extend({
69
67
  tabLabelElementTagName: 'div',
70
68
  tabLabelAlign: 'left',
71
69
  tabLabelFillBg: false,
72
- tabTriggerLink: true,
70
+ tabTriggerLink: false,
73
71
  tabLabelNoHTMLPrefix: false,
74
72
 
75
73
  /** = Description
@@ -77,14 +75,14 @@ HTab = HControl.extend({
77
75
  *
78
76
  **/
79
77
  refreshValue: function(){
80
- var _value = this.value;
78
+ var _this = this;
81
79
  if(typeof _value === 'number'){
82
- var _index = parseInt(_value,10);
83
- if(_index<this.tabs.length){
84
- if(_index!==this.selectIdx){
85
- this.selectTab(_index);
80
+ this.pushTask( function(){
81
+ var _index = parseInt(_this.value,10);
82
+ if( _index < _this.tabs.length && _index !== _this.selectIdx){
83
+ _this.selectTab(_index);
86
84
  }
87
- }
85
+ });
88
86
  }
89
87
  },
90
88
 
@@ -138,55 +136,51 @@ HTab = HControl.extend({
138
136
  **/
139
137
  addTab: function(_tabLabel,_doSelect,_viewClass,_viewClassOptions){
140
138
  var
141
- _tabIdx=this.tabs.length,
139
+ _this = this,
140
+ _tabIdx = _this.tabs.length,
142
141
  _tabLabelHTML = '',
143
- _labelTextWidth = this.stringWidth( _tabLabel, null, 0, this.fontStyle ),
144
- _labelWidth = _labelTextWidth+this.tabLabelLeftEdge+this.tabLabelRightEdge,
145
- _tabLabelElemId = ELEM.make(this.markupElemIds[this.tabLabelParentElem],this.tabLabelElementTagName),
142
+ _labelTextWidth = _this.stringWidth( _tabLabel, null, 0, _this.fontStyle ),
143
+ _labelWidth = _labelTextWidth+_this.tabLabelLeftEdge+_this.tabLabelRightEdge,
144
+ _tabLabelElemId = ELEM.make(_this.markupElemIds[_this.tabLabelParentElem],_this.tabLabelElementTagName),
146
145
  _tab;
147
146
  if( _viewClass === undefined ){
148
- _tab = HTabView.nu( [0,this.tabLabelHeight,null,null,0,0], this);
147
+ _tab = HTabView.nu( [0,_this.tabLabelHeight,null,null,0,0], _this);
149
148
  }
150
149
  else {
151
- _tab = _viewClass.nu( [0,this.tabLabelHeight,null,null,0,0], this, _viewClassOptions );
150
+ _tab = _viewClass.nu( [0,_this.tabLabelHeight,null,null,0,0], _this, _viewClassOptions );
152
151
  }
153
- _tabIdx = this.tabs.length;
154
- if(this.tabLabelNoHTMLPrefix){
152
+ _tabIdx = _this.tabs.length;
153
+ if(_this.tabLabelNoHTMLPrefix){
155
154
  _tabLabelHTML = _tabLabel;
156
155
  }
157
156
  else {
158
- _tabLabelHTML = this.tabLabelHTMLPrefix1+_labelTextWidth+this.tabLabelHTMLPrefix2+_tabLabel+this.tabLabelHTMLSuffix;
157
+ _tabLabelHTML = _this.tabLabelHTMLPrefix1+_labelTextWidth+_this.tabLabelHTMLPrefix2+_tabLabel+_this.tabLabelHTMLSuffix;
159
158
  }
160
159
  _tab.hide();
161
160
  ELEM.addClassName(_tabLabelElemId,'item_bg');
162
161
  ELEM.setStyle(_tabLabelElemId,'width',_labelWidth+'px');
163
- ELEM.setStyle(_tabLabelElemId,this.tabLabelAlign,this.rightmostPx+'px');
162
+ ELEM.setStyle(_tabLabelElemId,_this.tabLabelAlign,_this.rightmostPx+'px');
164
163
  ELEM.setHTML(_tabLabelElemId,_tabLabelHTML);
165
- this.tabLabelStrings.push(_tabLabel);
166
- if(this.tabTriggerLink&&this.tabLabelElementTagName==='a'){
167
- ELEM.setAttr(_tabLabelElemId,'href','javascript:HSystem.views['+this.viewId+'].selectTab('+_tabIdx+');');
168
- }
169
- else if (this.tabTriggerLink && !BROWSER_TYPE.ie7){
170
- var _this = this;
171
- Event.observe( ELEM.get(_tabLabelElemId), 'click', function(){ _this.selectTab(_tabIdx); } );
172
- }
173
- else {
174
- this.tabTriggerLink = false;
175
- this.setClick(true);
176
- this.tabLabelBounds.push([this.rightmostPx,this.rightmostPx+_labelWidth]);
177
- }
178
- this.rightmostPx+=_labelWidth;
179
- if(this.tabLabelAlign === 'right'){
180
- ELEM.setStyle(this.markupElemIds[this.tabLabelParentElem],'width',this.rightmostPx+'px');
181
- }
182
- else if (this.tabLabelFillBg) {
183
- ELEM.setStyle(this.markupElemIds.state,'left',this.rightmostPx+'px');
184
- }
185
- this.tabs.push(_tab.viewId);
186
- this.tabLabels.push(_tabLabelElemId);
164
+ _this.tabLabelStrings.push(_tabLabel);
165
+ if(_this.tabTriggerLink && !_this.isProduction){
166
+ console.log('HTab.options.tabTriggerLink is no longer supported')
167
+ }
168
+ _this.tabTriggerLink = false;
169
+ _this.setClick(true);
170
+ _this.tabLabelBounds.push([_this.rightmostPx,_this.rightmostPx+_labelWidth]);
171
+ _this.rightmostPx+=_labelWidth;
172
+ if(_this.tabLabelAlign === 'right'){
173
+ ELEM.setStyle(_this.markupElemIds[_this.tabLabelParentElem],'width',_this.rightmostPx+'px');
174
+ }
175
+ else if (_this.tabLabelFillBg) {
176
+ ELEM.setStyle(_this.markupElemIds.state,'left',_this.rightmostPx+'px');
177
+ }
178
+ _this.tabs.push(_tab.viewId);
179
+ _this.tabLabels.push(_tabLabelElemId);
187
180
  _tab.tabIndex = _tabIdx;
188
- if(_doSelect || (this.value === _tabIdx)){
189
- this.selectTab(_tabIdx);
181
+
182
+ if(_doSelect || (_this.value === _tabIdx)){
183
+ _this.selectTab(_tabIdx);
190
184
  }
191
185
  return _tab;
192
186
  },
@@ -195,26 +189,26 @@ HTab = HControl.extend({
195
189
  * click function
196
190
  *
197
191
  * = Parameters
198
- * +_x+::
199
- * +_y+::
192
+ * +x+::
193
+ * +y+::
200
194
  *
201
195
  **/
202
- click: function(_x,_y){
196
+ click: function(x,y){
203
197
  if(this.tabTriggerLink){
204
198
  this.setClickable(false);
205
199
  return;
206
200
  }
207
- _x -= this.pageX();
208
- _y -= this.pageY();
209
- if(_y<=this.tabLabelHeight){
201
+ x -= this.pageX();
202
+ y -= this.pageY();
203
+ if(y<=this.tabLabelHeight){
210
204
  if (this.tabLabelAlign === 'right') {
211
- _x = this.rect.width - _x;
205
+ x = this.rect.width - x;
212
206
  }
213
- if(_x<=this.rightmostPx){
207
+ if(x<=this.rightmostPx){
214
208
  var i=0,_labelBounds;
215
209
  for(i;i<this.tabLabelBounds.length;i++){
216
210
  _labelBounds = this.tabLabelBounds[i];
217
- if(_x<_labelBounds[1] && _x>=_labelBounds[0]){
211
+ if(x<_labelBounds[1] && x>=_labelBounds[0]){
218
212
  this.selectTab(i);
219
213
  return;
220
214
  }
@@ -296,7 +290,7 @@ HTabItem = {
296
290
  _parent = _rect;
297
291
  }
298
292
  else {
299
- console.warn && console.warn( "Warning: the rect constructor argument of HTabItem is deprecated." );
293
+ console.warn( "Warning: the rect constructor argument of HTabItem is deprecated." );
300
294
  }
301
295
  return _parent.addTab( _options.label, _options.select );
302
296
  },
@@ -8,6 +8,9 @@ ${#!coffee
8
8
  @tabLabelLeftEdge = ( @options.tabLabelLeftEdge or 12 )
9
9
  @tabLabelRightEdge = ( @options.tabLabelRightEdge or 9 )
10
10
  @tabLabelHeight = ( @options.tabLabelHeight or 24 )
11
- @fontStyle = 'font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:bold;'
11
+ @fontStyle =
12
+ fontFamily: 'Helvetica, Arial, sans-serif'
13
+ fontSize: '12px'
14
+ fontWeight: 'bold'
12
15
  @tabLabelFillBg = true
13
16
  }
@@ -25,7 +25,8 @@ HTextControl = HControl.extend
25
25
  textIndent: 0
26
26
  fontSize: '10px'
27
27
  color: '#666'
28
- refreshAfter: 0.2 # 200ms
28
+ labelWidth: 'auto'
29
+ refreshAfter: 0.0 # amount of milliseconds to wait for a refresh from the input field
29
30
  refreshOnBlur: true
30
31
  refreshOnInput: true
31
32
  refreshOnIdle: true
@@ -56,7 +57,10 @@ HTextControl = HControl.extend
56
57
  label: @label
57
58
  style: @options.labelStyle
58
59
  )
59
- _labelWidth = @_labelView.stringWidth( @label, null, @_labelView.markupElemIds.value )+4
60
+ if @options.labelWidth == 'auto'
61
+ _labelWidth = @_labelView.stringWidth( @label, null, @_labelView.markupElemIds.value )+4
62
+ else
63
+ _labelWidth = @options.labelWidth
60
64
  @_labelView.rect.setWidth( _labelWidth )
61
65
  @_labelView.drawRect()
62
66
  if @componentName == 'textarea'
@@ -286,10 +290,16 @@ HTextControl = HControl.extend
286
290
  else if _inputElement.selectionStart
287
291
  _inputElement.setSelectionRange( _selectionStart, _selectionEnd )
288
292
 
293
+ defaultKey: ->
294
+ @refreshAfter()
295
+ null
296
+
289
297
  ### = Description
290
298
  ## Receives the +textEnter+ event to update the value
291
299
  ## based on what's (potentially) entered in the text input field.
292
300
  ###
293
301
  textEnter: ->
294
302
  @refreshAfter() if @options.refreshOnInput
295
- return false
303
+ false
304
+
305
+ HTextField = HTextControl
@@ -2,10 +2,10 @@
2
2
  var//RSence.Controls
3
3
  HValidatorView = HControl.extend({
4
4
 
5
- controlDefaults: (HControlDefaults.extend({
5
+ controlDefaults: HControlDefaults.extend({
6
6
  value: false,
7
7
  valueField: false
8
- })),
8
+ }),
9
9
 
10
10
  setRect: function(_rect) {
11
11
  var _options = this.options;
@@ -19,7 +19,7 @@ HValidatorView = HControl.extend({
19
19
  }
20
20
  this.base(_rect);
21
21
  },
22
-
22
+
23
23
  /** = Description
24
24
  * Ensures the value set is a Boolean.
25
25
  *
@@ -51,5 +51,5 @@ HValidatorView = HControl.extend({
51
51
  ELEM.setStyle(_elemId,'background-position',_x+'px '+_y+'px');
52
52
  }
53
53
 
54
-
54
+
55
55
  });