rsence 2.1.11 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. data/INSTALL.rdoc +5 -3
  2. data/README.rdoc +23 -22
  3. data/VERSION +1 -1
  4. data/conf/default_conf.yaml +65 -29
  5. data/conf/rsence_command_strings.yaml +101 -71
  6. data/js/comm/autosync/autosync.js +3 -3
  7. data/js/comm/jsloader/jsloader.js +16 -3
  8. data/js/comm/queue/queue.js +1 -1
  9. data/js/comm/transporter/transporter.js +106 -83
  10. data/js/comm/values/values.js +8 -2
  11. data/js/controls/button/button.js +9 -4
  12. data/js/controls/button/themes/default/button.css +1 -1
  13. data/js/controls/checkbox/themes/default/checkbox.css +1 -1
  14. data/js/controls/dialogs/sheet/sheet.js +27 -18
  15. data/js/controls/radiobutton/themes/default/radiobutton.css +1 -1
  16. data/js/controls/searchfield/searchfield.coffee +2 -0
  17. data/js/controls/searchfield/themes/default/searchfield.css +96 -0
  18. data/js/controls/searchfield/themes/default/searchfield.html +12 -0
  19. data/js/controls/searchfield/themes/default/searchfield_parts1-ie6.gif +0 -0
  20. data/js/controls/searchfield/themes/default/searchfield_parts1.png +0 -0
  21. data/js/controls/sliders/slider/slider.js +7 -1
  22. data/js/controls/stepper/stepper.js +6 -1
  23. data/js/controls/stringview/stringview.js +50 -39
  24. data/js/controls/tab/tab.js +103 -7
  25. data/js/controls/tab/themes/default/tab.css +2 -0
  26. data/js/controls/textarea/themes/default/textarea.css +4 -0
  27. data/js/controls/textcontrol/textcontrol.js +32 -2
  28. data/js/controls/textcontrol/themes/default/textcontrol.css +17 -2
  29. data/js/controls/uploader/themes/default/uploader.css +3 -3
  30. data/js/controls/uploader/themes/default/uploader.html +1 -1
  31. data/js/controls/uploader/uploader.coffee +110 -0
  32. data/js/controls/window/themes/default/window.css +28 -5
  33. data/js/controls/window/themes/default/window.html +2 -0
  34. data/js/controls/window/window.js +5 -1
  35. data/js/core/class/class.js +22 -4
  36. data/js/core/elem/elem.coffee +816 -0
  37. data/js/core/event/event.js +2 -2
  38. data/js/core/rsence_ns/rsence_ns.coffee +31 -0
  39. data/js/core/rsence_ns/rsence_ns.js +6 -6
  40. data/js/datetime/calendar/calendar.coffee +307 -0
  41. data/js/datetime/calendar/themes/default/calendar.css +90 -9
  42. data/js/datetime/calendar/themes/default/calendar.html +11 -0
  43. data/js/datetime/calendar/themes/default/calendar_bg-ie6.gif +0 -0
  44. data/js/datetime/calendar/themes/default/calendar_bg.png +0 -0
  45. data/js/datetime/calendar/themes/default/calendar_parts1-ie6.gif +0 -0
  46. data/js/datetime/calendar/themes/default/calendar_parts1.png +0 -0
  47. data/js/datetime/calendar/themes/default/calendar_parts2-ie6.gif +0 -0
  48. data/js/datetime/calendar/themes/default/calendar_parts2.png +0 -0
  49. data/js/datetime/datetimepicker/datetimepicker.js +217 -0
  50. data/js/datetime/datetimevalue/datetimevalue.js +22 -5
  51. data/js/datetime/timesheet/themes/default/timesheet.css +51 -22
  52. data/js/datetime/timesheet/themes/default/timesheet.html +4 -2
  53. data/js/datetime/timesheet/timesheet.js +782 -192
  54. data/js/datetime/timesheet_item/themes/default/timesheet_item.css +42 -11
  55. data/js/datetime/timesheet_item/themes/default/timesheet_item.html +4 -2
  56. data/js/datetime/timesheet_item/themes/default/timesheet_item_icons.png +0 -0
  57. data/js/datetime/timesheet_item/timesheet_item.js +158 -254
  58. data/js/datetime/timesheet_item_edit/timesheet_item_edit.js +0 -274
  59. data/js/foundation/application/application.js +52 -9
  60. data/js/foundation/control/eventresponder/eventresponder.js +7 -4
  61. data/js/foundation/control/valueaction/valueaction.js +71 -0
  62. data/js/foundation/eventmanager/eventmanager.js +71 -33
  63. data/js/foundation/geom/rect/rect.js +39 -7
  64. data/js/foundation/json_renderer/json_renderer.js +278 -62
  65. data/js/foundation/locale_settings/locale_settings.js +131 -0
  66. data/js/foundation/system/system.js +40 -13
  67. data/js/foundation/thememanager/thememanager.js +21 -0
  68. data/js/foundation/view/markupview/markupview.js +12 -12
  69. data/js/foundation/view/view.js +221 -27
  70. data/js/graphics/svgcontrol/svgcontrol.js +400 -0
  71. data/js/lists/checkboxlist/checkboxlist.js +18 -7
  72. data/js/lists/listitems/listitems.js +52 -38
  73. data/js/lists/radiobuttonlist/radiobuttonlist.js +23 -7
  74. data/js/menus/menuitem/menuitem.js +5 -0
  75. data/js/menus/menuitem/themes/default/menuitem.css +45 -0
  76. data/js/menus/menuitem/themes/default/menuitem.html +4 -0
  77. data/js/menus/minimenu/minimenu.js +47 -16
  78. data/js/menus/minimenuitem/minimenuitem.js +62 -0
  79. data/js/menus/{minimenu/minimenuitem → minimenuitem}/themes/default/minimenuitem.css +2 -2
  80. data/js/menus/{minimenu/minimenuitem → minimenuitem}/themes/default/minimenuitem.html +0 -0
  81. data/js/menus/{minimenu/minimenuitem → minimenuitem}/themes/default/minimenuitem_checkmark.png +0 -0
  82. data/js/menus/popupmenu/popupmenu.js +14 -0
  83. data/js/menus/popupmenu/themes/default/popupmenu.css +65 -0
  84. data/js/menus/popupmenu/themes/default/popupmenu.html +7 -0
  85. data/js/menus/popupmenu/themes/default/popupmenu.png +0 -0
  86. data/js/no_pkg/no_pkg.js +2 -0
  87. data/js/util/reloadapp/reloadapp.js +1 -1
  88. data/js/views/scrollview/scrollview.js +6 -0
  89. data/lib/rsence.rb +136 -3
  90. data/lib/rsence/argv.rb +218 -0
  91. data/lib/rsence/argv/argv_util.rb +58 -0
  92. data/lib/rsence/argv/env_check.rb +58 -0
  93. data/lib/rsence/argv/help_argv.rb +15 -0
  94. data/lib/rsence/argv/initenv_argv.rb +218 -0
  95. data/lib/rsence/argv/save_argv.rb +92 -0
  96. data/lib/rsence/argv/startup_argv.rb +118 -0
  97. data/lib/rsence/argv/status_argv.rb +132 -0
  98. data/lib/rsence/argv/test_port.rb +32 -0
  99. data/lib/{daemon → rsence}/daemon.rb +67 -23
  100. data/lib/{conf/default.rb → rsence/default_config.rb} +18 -10
  101. data/lib/{plugins → rsence}/dependencies.rb +0 -0
  102. data/lib/{util → rsence}/gzstring.rb +0 -0
  103. data/lib/rsence/http.rb +3 -0
  104. data/lib/{http → rsence/http}/broker.rb +106 -19
  105. data/lib/{http → rsence/http}/rackup.rb +0 -0
  106. data/lib/{http → rsence/http}/request.rb +0 -4
  107. data/lib/{http → rsence/http}/response.rb +0 -1
  108. data/lib/{session → rsence}/msg.rb +17 -1
  109. data/lib/{plugins → rsence}/pluginmanager.rb +29 -12
  110. data/lib/{plugins → rsence}/plugins.rb +7 -7
  111. data/lib/{plugins → rsence/plugins}/gui_plugin.rb +8 -3
  112. data/lib/{plugins → rsence/plugins}/guiparser.rb +9 -6
  113. data/lib/{plugins → rsence/plugins}/plugin.rb +23 -4
  114. data/lib/{plugins → rsence/plugins}/plugin_base.rb +11 -1
  115. data/lib/{plugins → rsence/plugins}/plugin_plugins.rb +2 -2
  116. data/lib/{plugins → rsence/plugins}/plugin_sqlite_db.rb +0 -0
  117. data/lib/{plugins → rsence/plugins}/servlet.rb +0 -0
  118. data/lib/{session → rsence}/sessionmanager.rb +101 -39
  119. data/lib/{session → rsence}/sessionstorage.rb +30 -16
  120. data/lib/{daemon → rsence}/sigcomm.rb +0 -0
  121. data/lib/{transporter → rsence}/transporter.rb +13 -11
  122. data/lib/{values/hvalue.rb → rsence/value.rb} +6 -1
  123. data/lib/{values → rsence}/valuemanager.rb +1 -1
  124. data/plugins/client_pkg/client_pkg.rb +14 -4
  125. data/plugins/client_pkg/info.yaml +2 -2
  126. data/plugins/client_pkg/lib/client_pkg_build.rb +145 -45
  127. data/plugins/client_pkg/lib/client_pkg_cache.rb +1 -1
  128. data/plugins/client_pkg/lib/client_pkg_serve.rb +1 -1
  129. data/plugins/main/main.rb +43 -3
  130. data/plugins/main/tmpl/index.html +2 -10
  131. data/plugins/main/values.yaml +3 -1
  132. data/plugins/ticket/lib/common.rb +6 -3
  133. data/plugins/ticket/ticket.rb +11 -3
  134. metadata +144 -174
  135. data/js/comm/autosync/js.inc +0 -0
  136. data/js/comm/js.inc +0 -0
  137. data/js/comm/jsloader/js.inc +0 -0
  138. data/js/comm/queue/js.inc +0 -0
  139. data/js/comm/session/js.inc +0 -0
  140. data/js/comm/sessionwatcher/js.inc +0 -0
  141. data/js/comm/transporter/js.inc +0 -0
  142. data/js/comm/urlresponder/js.inc +0 -0
  143. data/js/comm/values/js.inc +0 -0
  144. data/js/controls/button/js.inc +0 -0
  145. data/js/controls/checkbox/js.inc +0 -0
  146. data/js/controls/dialogs/alert_sheet/js.inc +0 -0
  147. data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
  148. data/js/controls/dialogs/sheet/js.inc +0 -0
  149. data/js/controls/imageview/js.inc +0 -0
  150. data/js/controls/passwordcontrol/js.inc +0 -0
  151. data/js/controls/progress/progressbar/js.inc +0 -0
  152. data/js/controls/progress/progressindicator/js.inc +0 -0
  153. data/js/controls/radiobutton/js.inc +0 -0
  154. data/js/controls/sliders/slider/js.inc +0 -0
  155. data/js/controls/sliders/vslider/js.inc +0 -0
  156. data/js/controls/stepper/js.inc +0 -0
  157. data/js/controls/stringview/js.inc +0 -0
  158. data/js/controls/tab/js.inc +0 -0
  159. data/js/controls/textarea/js.inc +0 -0
  160. data/js/controls/textcontrol/js.inc +0 -0
  161. data/js/controls/uploader/js.inc +0 -0
  162. data/js/controls/uploader/uploader.js +0 -154
  163. data/js/controls/validatorview/js.inc +0 -0
  164. data/js/controls/window/js.inc +0 -0
  165. data/js/core/class/js.inc +0 -0
  166. data/js/core/elem/elem.js +0 -1325
  167. data/js/core/elem/js.inc +0 -0
  168. data/js/core/event/js.inc +0 -0
  169. data/js/core/iefix/js.inc +0 -0
  170. data/js/core/rsence_ns/js.inc +0 -0
  171. data/js/datetime/calendar/calendar.js +0 -198
  172. data/js/datetime/calendar/js.inc +0 -0
  173. data/js/datetime/datetimevalue/js.inc +0 -0
  174. data/js/datetime/timesheet/js.inc +0 -0
  175. data/js/datetime/timesheet/old_timesheet.js +0 -292
  176. data/js/datetime/timesheet/themes/default/old_timesheet.css +0 -30
  177. data/js/datetime/timesheet/themes/default/old_timesheet.html +0 -2
  178. data/js/datetime/timesheet_item/js.inc +0 -0
  179. data/js/datetime/timesheet_item/old_timesheet_item.js +0 -308
  180. data/js/datetime/timesheet_item/themes/default/old_timesheet_item.css +0 -42
  181. data/js/datetime/timesheet_item/themes/default/old_timesheet_item.html +0 -8
  182. data/js/datetime/timesheet_item_edit/js.inc +0 -0
  183. data/js/datetime/timesheet_item_edit/old_timesheet_item_edit.js +0 -274
  184. data/js/foundation/application/js.inc +0 -0
  185. data/js/foundation/control/controldefaults/js.inc +0 -0
  186. data/js/foundation/control/dummyvalue/js.inc +0 -0
  187. data/js/foundation/control/dyncontrol/js.inc +0 -0
  188. data/js/foundation/control/eventresponder/js.inc +0 -0
  189. data/js/foundation/control/js.inc +0 -0
  190. data/js/foundation/control/valuematrix/js.inc +0 -0
  191. data/js/foundation/control/valueresponder/js.inc +0 -0
  192. data/js/foundation/eventmanager/js.inc +0 -0
  193. data/js/foundation/geom/point/js.inc +0 -0
  194. data/js/foundation/geom/rect/js.inc +0 -0
  195. data/js/foundation/json_renderer/js.inc +0 -0
  196. data/js/foundation/system/js.inc +0 -0
  197. data/js/foundation/thememanager/js.inc +0 -0
  198. data/js/foundation/value/js.inc +0 -0
  199. data/js/foundation/view/js.inc +0 -0
  200. data/js/foundation/view/markupview/js.inc +0 -0
  201. data/js/foundation/view/morphanimation/js.inc +0 -0
  202. data/js/foundation/view/viewdefaults/js.inc +0 -0
  203. data/js/lists/checkboxlist/js.inc +0 -0
  204. data/js/lists/listitems/js.inc +0 -0
  205. data/js/lists/propertylist/js.inc +0 -0
  206. data/js/lists/propertylist/propertylisteditor/js.inc +0 -0
  207. data/js/lists/radiobuttonlist/js.inc +0 -0
  208. data/js/menus/minimenu/js.inc +0 -0
  209. data/js/menus/minimenu/minimenuitem/js.inc +0 -0
  210. data/js/menus/minimenu/minimenuitem/minimenuitem.js +0 -33
  211. data/js/util/reloadapp/js.inc +0 -0
  212. data/js/util/sha/js.inc +0 -0
  213. data/js/views/centerview/js.inc +0 -0
  214. data/js/views/inlineview/js.inc +0 -0
  215. data/js/views/scrollview/js.inc +0 -0
  216. data/lib/conf/argv.rb +0 -880
@@ -0,0 +1,12 @@
1
+ <div class="searchfield_w"></div>
2
+ <div class="searchfield_c"></div>
3
+ <div class="searchfield_e"></div>
4
+
5
+ <div id="label#{_ID}" title="#{this.label}" class="searchfield_input_parent">
6
+ <input type="text" class="searchfield_input" #{this.enabled?'':'disabled'}
7
+ onfocus="HSystem.views[#{this.viewId}].textFocus();"
8
+ onblur="HSystem.views[#{this.viewId}].textBlur();"
9
+ id="value#{_ID}" value="#{this.value}" />
10
+ </div>
11
+
12
+ <div class="searchfield_fade"></div>
@@ -44,6 +44,7 @@ HSlider = HControl.extend({
44
44
  controlDefaults: (HControlDefaults.extend({
45
45
  minValue: 0,
46
46
  maxValue: 1,
47
+ roundValue: false,
47
48
  inverseAxis: false
48
49
  })),
49
50
 
@@ -66,7 +67,12 @@ HSlider = HControl.extend({
66
67
  if (_value > this.maxValue) {
67
68
  _value = this.maxValue;
68
69
  }
69
- this.base(_value);
70
+ if( this.options.roundValue ){
71
+ this.base( Math.round( _value ) );
72
+ }
73
+ else {
74
+ this.base(_value);
75
+ }
70
76
  if(this._thumbElemId){
71
77
  this.drawThumbPos();
72
78
  }
@@ -141,17 +141,19 @@ HStepper = HControl.extend({
141
141
  mouseDown: function( x, y ){
142
142
  this.setMouseUp(true);
143
143
  this._setRepeatInterval( ( y - ELEM.getVisiblePosition( this.elemId )[1] ) <= 11 );
144
-
144
+ return true;
145
145
  },
146
146
 
147
147
  /** Stops the repeating stepping, when the mouse button goes up
148
148
  **/
149
149
  mouseUp: function(){
150
150
  this._clearRepeatInterval();
151
+ return true;
151
152
  },
152
153
 
153
154
  click: function(){
154
155
  this.mouseUp();
156
+ return true;
155
157
  },
156
158
 
157
159
  /** Stops the repeating stepping, when the control becomes inactive
@@ -186,18 +188,21 @@ HStepper = HControl.extend({
186
188
  else if (_keyCode === Event.KEY_PAGEDOWN) {
187
189
  this._setRepeatInterval( 0 );
188
190
  }
191
+ return true;
189
192
  },
190
193
 
191
194
  /** stops the repeating when a key goes up
192
195
  **/
193
196
  keyUp: function(){
194
197
  this._clearRepeatInterval();
198
+ return true;
195
199
  },
196
200
 
197
201
  /** steps the value up/down based on the mouse scroll wheel
198
202
  **/
199
203
  mouseWheel: function(_delta) {
200
204
  (_delta>0)?this.stepUp():this.stepDown();
205
+ return true;
201
206
  }
202
207
 
203
208
 
@@ -17,47 +17,58 @@
17
17
  ** +type+:: '[HStringView]'
18
18
  ** +value+:: The string that this string view displays when drawn.
19
19
  ***/
20
- var//RSence.Controls
21
- HStringView = HControl.extend({
20
+ var HStringView, HLabel;
22
21
 
23
- componentName: "stringview",
24
-
25
- defaultEvents: {
26
- contextMenu: true
27
- },
28
-
29
- /** = Description
30
- * HStringView allows the default contextMenu action.
31
- *
32
- **/
33
- contextMenu: function(){
34
- return true;
35
- },
36
-
37
- /** = Description
38
- * The setStyle method of HStringView applies only to the value
39
- * element (not the whole component).
40
- *
41
- **/
42
- setStyle: function(_name, _value, _cacheOverride) {
43
- if (!this['markupElemIds']||!this.markupElemIds['value']) {
22
+ (function(){
23
+ var _HStringViewInterface = {
24
+
25
+ componentName: "stringview",
26
+
27
+ /** = Description
28
+ * The setStyle method of HStringView applies only to the value
29
+ * element (not the whole component).
30
+ *
31
+ **/
32
+ setStyle: function(_name, _value, _cacheOverride) {
33
+ if (!this['markupElemIds']||!this.markupElemIds['value']) {
34
+ return this;
35
+ }
36
+ this.setStyleOfPart( 'value', _name, _value, _cacheOverride);
44
37
  return this;
45
- }
46
- ELEM.setStyle(this.markupElemIds.value, _name, _value, _cacheOverride);
47
- return this;
48
- },
49
-
50
- /** = Description
51
- * The refreshLabel of HStringView sets a tool tip.
52
- * Applied by the setLabel method and the label attribute of options.
53
- *
54
- **/
55
- refreshLabel: function() {
56
- if(this.markupElemIds) {
57
- if(this.markupElemIds.value) {
58
- ELEM.setAttr(this.markupElemIds.value, 'title', this.label);
38
+ },
39
+
40
+ /** = Description
41
+ * The refreshLabel of HStringView sets a tool tip.
42
+ * Applied by the setLabel method and the label attribute of options.
43
+ *
44
+ **/
45
+ refreshLabel: function() {
46
+ if(this.markupElemIds) {
47
+ if(this.markupElemIds.value) {
48
+ if( this.value !== undefined ){
49
+ this.setAttrOfPart( 'value', 'title', this.label );
50
+ }
51
+ else {
52
+ this.setMarkupOfPart( 'value', this.label );
53
+ }
54
+ }
59
55
  }
60
56
  }
61
- }
62
- });
57
+ };
58
+
59
+ HLabel = HView.extend( _HStringViewInterface );
60
+ HStringView = HControl.extend( _HStringViewInterface ).extend({
61
+ defaultEvents: {
62
+ contextMenu: true
63
+ },
64
+
65
+ /** = Description
66
+ * HStringView allows the default contextMenu action.
67
+ *
68
+ **/
69
+ contextMenu: function(){
70
+ return true;
71
+ }
72
+ });
63
73
 
74
+ })();
@@ -143,13 +143,20 @@ HTab = HControl.extend({
143
143
  * +_doSelect+::
144
144
  *
145
145
  **/
146
- addTab: function(_tabLabel,_doSelect,_viewClass){
147
- var _tabIdx=this.tabs.length,
148
- _tabLabelHTML = '',
149
- _labelTextWidth = this.stringWidth( _tabLabel, null, 0, this.fontStyle ),
150
- _labelWidth = _labelTextWidth+this.tabLabelLeftEdge+this.tabLabelRightEdge,
151
- _tab = HTabView.nu( [0,this.tabLabelHeight,null,null,0,0] ,this),
152
- _tabLabelElemId = ELEM.make(this.markupElemIds[this.tabLabelParentElem],this.tabLabelElementTagName);
146
+ addTab: function(_tabLabel,_doSelect,_viewClass,_viewClassOptions){
147
+ var
148
+ _tabIdx=this.tabs.length,
149
+ _tabLabelHTML = '',
150
+ _labelTextWidth = this.stringWidth( _tabLabel, null, 0, this.fontStyle ),
151
+ _labelWidth = _labelTextWidth+this.tabLabelLeftEdge+this.tabLabelRightEdge,
152
+ _tabLabelElemId = ELEM.make(this.markupElemIds[this.tabLabelParentElem],this.tabLabelElementTagName),
153
+ _tab;
154
+ if( _viewClass === undefined ){
155
+ _tab = HTabView.nu( [0,this.tabLabelHeight,null,null,0,0], this);
156
+ }
157
+ else {
158
+ _tab = _viewClass.nu( [0,this.tabLabelHeight,null,null,0,0], this, _viewClassOptions );
159
+ }
153
160
  _tabIdx = this.tabs.length;
154
161
  if(this.tabLabelNoHTMLPrefix){
155
162
  _tabLabelHTML = _tabLabel;
@@ -273,8 +280,97 @@ HTab = HControl.extend({
273
280
  var//RSence.Controls
274
281
  HTabItem = {
275
282
  nu: function(_rect, _parent, _options){
283
+ if( _rect.hasAncestor && _rect.hasAncestor( HView ) ){
284
+ _options = _parent;
285
+ _parent = _rect;
286
+ }
287
+ else {
288
+ console.warn && console.warn( "Warning: the rect constructor argument of HTabItem is deprecated." );
289
+ }
276
290
  return _parent.addTab( _options.label, _options.select );
277
291
  }
278
292
  };
279
293
 
294
+ var//RSence.Controls
295
+ GUITreeTabView = HControl.extend({
296
+ controlDefaults: HControlDefaults.extend({
297
+ visible: false,
298
+ autoCreate: false,
299
+ autoDestroy: true
300
+ }),
301
+ jsonRenderer: false,
302
+ createJSONRenderer: function(){
303
+ var
304
+ _this = this,
305
+ _value = _this.value,
306
+ _progressView = HView.nu( [4,0, 150, 34, 0, null], _this ),
307
+ // _indicatorPhases = ['/','-','\\','|','/','-','\\','|'], // ascii
308
+ // _indicatorPhases = ['&#9716;','&#9719;','&#9718;','&#9717;'], // unicode sector ball
309
+ // _indicatorPhases = ['&#9681;','&#9682;','&#9680;','&#9683;'], // unicode half ball
310
+ // _indicator = HStringView.nu( [ 2, 2, 32, 32 ], _progressView, { value: _indicatorPhases[0], style: { 'font-size': '24px' } } ),
311
+ // _indicatorTimeout = setInterval( function(){
312
+ // _indicatorPhase = _indicatorPhases.shift();
313
+ // _indicatorPhases.push( _indicatorPhase );
314
+ // _indicator.setValue( _indicatorPhase );
315
+ // }, 100 ),
316
+ _indicatorStr = HStringView.nu( [ 34, 12, 100, 20, 4, null ], _progressView, { value: 'Rendering' } );
317
+ _this.destroyJSONRenderer();
318
+ if( _value.type === undefined || _value.version === undefined ){
319
+ _value = {
320
+ 'type': 'GUITree',
321
+ 'version': 0.9,
322
+ 'class': 'HView',
323
+ 'rect': [0,0, null,null, 0,0],
324
+ 'options': { 'style': { 'overflow': 'auto' } },
325
+ 'subviews': _value
326
+ };
327
+ }
328
+ setTimeout( function(){
329
+ _this.jsonRenderer = JSONRenderer.nu( _value, _this );
330
+ // clearTimeout( _indicatorTimeout );
331
+ _progressView.die();
332
+ }, 10 );
333
+ },
334
+ destroyJSONRenderer: function(){
335
+ if( this.jsonRenderer ){
336
+ this.jsonRenderer.die();
337
+ this.jsonRenderer = false;
338
+ }
339
+ },
340
+ drawSubviews: function(){
341
+ if( this.options.autoCreate ){
342
+ this.createJSONRenderer();
343
+ }
344
+ },
345
+ show: function(){
346
+ this.base();
347
+ if(!this.jsonRenderer){
348
+ this.createJSONRenderer();
349
+ }
350
+ },
351
+ hide: function(){
352
+ this.base();
353
+ if( this.options.autoDestroy ){
354
+ this.destroyJSONRenderer();
355
+ }
356
+ },
357
+ die: function(){
358
+ this.destroyJSONRenderer();
359
+ this.base();
360
+ }
361
+ });
362
+
363
+ var//RSence.Controls
364
+ GUITreeTabItem = {
365
+ nu: function( _rect, _parent, _options ){
366
+ if( _rect.hasAncestor && _rect.hasAncestor( HView ) ){
367
+ _options = _parent;
368
+ _parent = _rect;
369
+ }
370
+ else {
371
+ console.warn && console.warn( "Warning: the rect constructor argument of GUITreeTabItem is deprecated." );
372
+ }
373
+ return _parent.addTab( _options.label, _options.select, GUITreeTabView, _options );
374
+ }
375
+ };
280
376
 
@@ -68,10 +68,12 @@
68
68
  .tab_bg {
69
69
  position: absolute;
70
70
  top: 24px; left: 0px; right: 0px; bottom: 0px;
71
+ border-radius: 0 0 3px 3px;
71
72
  background-image: #{this.getCssFilePath('tab_border_pattern.png')};
72
73
  }
73
74
  .tab_fg {
74
75
  position: absolute;
75
76
  top: 0px; left: 1px; right: 1px; bottom: 1px;
77
+ border-radius: 0 0 3px 3px;
76
78
  background-image: #{this.getCssFilePath('tab_bg_color.png')};
77
79
  }
@@ -14,6 +14,10 @@
14
14
  .default .disabled .textarea_input {
15
15
  #{(BROWSER_TYPE.safari||BROWSER_TYPE.chrome)?'color:#ccc;':'color:#999'}
16
16
  }
17
+ .default .textarea_input:focus {
18
+ outline-color: transparent;
19
+ outline-style: none;
20
+ }
17
21
 
18
22
  .default .textarea_input_parent {
19
23
  position: absolute;
@@ -28,9 +28,21 @@ HTextControl = HControl.extend({
28
28
 
29
29
  controlDefaults: (HControlDefaults.extend({
30
30
  refreshOnBlur: true,
31
- refreshOnInput: true
31
+ refreshOnInput: true,
32
+ focusOnCreate: false
32
33
  })),
33
34
 
35
+ drawSubviews: function(){
36
+ ELEM.setStyle(this.elemId,'overflow','visible');
37
+ this.base();
38
+ if(this.options.focusOnCreate){
39
+ this.getInputElement().focus();
40
+ if( typeof this.value === 'string' ){
41
+ this.setSelectionRange( this.value.length, this.value.length );
42
+ }
43
+ }
44
+ },
45
+
34
46
  /** = Description
35
47
  * The contextMenu event for text input components is not prevented by default.
36
48
  **/
@@ -50,6 +62,13 @@ HTextControl = HControl.extend({
50
62
  }
51
63
  }
52
64
  },
65
+
66
+ lostActiveStatus: function(){
67
+ if(this['markupElemIds']!==undefined){
68
+ ELEM.get( this.markupElemIds.value ).blur();
69
+ this.textBlur();
70
+ }
71
+ },
53
72
 
54
73
  setStyle: function(_name, _value, _cacheOverride) {
55
74
  if (!this['markupElemIds']||!this.markupElemIds['value']) {
@@ -118,6 +137,7 @@ HTextControl = HControl.extend({
118
137
  *
119
138
  **/
120
139
  textFocus: function(){
140
+ EVENT.changeActiveControl( this );
121
141
  this.hasTextFocus = true;
122
142
  this._setChangeEventFn();
123
143
  return true;
@@ -140,7 +160,14 @@ HTextControl = HControl.extend({
140
160
 
141
161
  onIdle: function(){
142
162
  this.hasTextFocus && this._updateValueFromField();
143
- this.base();
163
+ try{
164
+ this.base();
165
+ }
166
+ catch(e){
167
+ console.error('HTextControl::onIdle error -> ',e);
168
+ debugger;
169
+ this.base();
170
+ }
144
171
  },
145
172
 
146
173
  /** = Description
@@ -208,6 +235,9 @@ HTextControl = HControl.extend({
208
235
  },
209
236
 
210
237
  die: function(){
238
+ if( this.hasTextFocus ){
239
+ this.getInputElement().blur();
240
+ }
211
241
  this._clearChangeEventFn();
212
242
  this.base();
213
243
  },
@@ -9,11 +9,16 @@
9
9
  vertical-align: middle;
10
10
  border: 0px;
11
11
  left: 0px; top: 0px;
12
- #{(BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.opera)?'padding-left:2px;width:100% !important;height:90% !important;':BROWSER_TYPE.ie6?'right:4px;bottom:2px;':'padding:2px;right:0px;bottom:0px;width:auto;height:auto;'}
12
+ #{(BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.ie9||BROWSER_TYPE.opera)?'padding-left:2px;width:100% !important;height:90% !important;':BROWSER_TYPE.ie6?'right:4px;bottom:2px;':'padding:2px;right:0px;bottom:0px;width:auto;height:auto;'}
13
+ }
14
+
15
+ .default .textcontrol_input:focus {
16
+ outline-color: transparent;
17
+ outline-style: none;
13
18
  }
14
19
 
15
20
  .default .disabled .textcontrol_input {
16
- color: #999;
21
+ color: #ccc;
17
22
  }
18
23
 
19
24
  .default .textcontrol_input_parent {
@@ -28,6 +33,16 @@
28
33
  #{BROWSER_TYPE.ie6?'font-size:0;line-height:0;':''}
29
34
  }
30
35
 
36
+ .default .active>.textcontrol_bg {
37
+ left: 0px; top: 0px; right: 0px; bottom: 0px;
38
+ -moz-box-shadow: 0px 0px 3px #333;
39
+ -webkit-box-shadow: 0px 0px 3px #333;
40
+ box-shadow: 0px 0px 3px #333;
41
+ }
42
+
43
+ .default .disabled .textcontrol_bg {
44
+ background-color: #eee;
45
+ }
31
46
 
32
47
 
33
48
  .default .textcontrol_ne,
@@ -80,13 +80,13 @@
80
80
  background-position: 0px -96px;
81
81
  }
82
82
  .disabled > .uploader > .button_control > .button_edge_right {
83
- background-position: -24px -144px;
83
+ background-position: -42px -144px;
84
84
  }
85
85
  .enabled > .uploader:hover > .button_control > .button_edge_right {
86
- background-position: -24px -48px;
86
+ background-position: -42px -48px;
87
87
  }
88
88
  .enabled > .uploader:active > .button_control > .button_edge_right {
89
- background-position: -24px -96px;
89
+ background-position: -42px -96px;
90
90
  }
91
91
  .disabled > .uploader > .button_control > .button_center {
92
92
  background-position: 0px -168px;