rsence 2.1.11 → 2.2.0

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 (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;