rsence-pre 2.1.0.1.pre

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 (313) hide show
  1. data/.yardopts +10 -0
  2. data/INSTALL.rdoc +330 -0
  3. data/LICENSE.txt +622 -0
  4. data/README.rdoc +98 -0
  5. data/VERSION +1 -0
  6. data/bin/rsence +25 -0
  7. data/bin/rsence-pre +25 -0
  8. data/conf/default_conf.yaml +346 -0
  9. data/conf/default_strings.yaml +76 -0
  10. data/conf/rsence_command_strings.yaml +444 -0
  11. data/docs/ExampleGuiPlugin.rdoc +193 -0
  12. data/docs/JavascriptBundles.rdoc +0 -0
  13. data/docs/PluginBundleInfo.rdoc +173 -0
  14. data/docs/PluginBundles.rdoc +96 -0
  15. data/docs/Values.rdoc +163 -0
  16. data/js/comm/autosync/autosync.js +17 -0
  17. data/js/comm/autosync/js.inc +0 -0
  18. data/js/comm/comm.js +203 -0
  19. data/js/comm/js.inc +0 -0
  20. data/js/comm/jsloader/js.inc +0 -0
  21. data/js/comm/jsloader/jsloader.js +112 -0
  22. data/js/comm/queue/js.inc +0 -0
  23. data/js/comm/queue/queue.js +184 -0
  24. data/js/comm/session/js.inc +0 -0
  25. data/js/comm/session/session.js +52 -0
  26. data/js/comm/sessionwatcher/js.inc +0 -0
  27. data/js/comm/sessionwatcher/sessionwatcher.js +44 -0
  28. data/js/comm/transporter/js.inc +0 -0
  29. data/js/comm/transporter/transporter.js +261 -0
  30. data/js/comm/urlresponder/js.inc +0 -0
  31. data/js/comm/urlresponder/urlresponder.js +149 -0
  32. data/js/comm/values/js.inc +0 -0
  33. data/js/comm/values/values.js +433 -0
  34. data/js/controls/button/button.js +72 -0
  35. data/js/controls/button/js.inc +0 -0
  36. data/js/controls/button/themes/bright/button.css +89 -0
  37. data/js/controls/button/themes/bright/button.html +7 -0
  38. data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
  39. data/js/controls/button/themes/bright/button_parts1.png +0 -0
  40. data/js/controls/button/themes/default/button.css +89 -0
  41. data/js/controls/button/themes/default/button.html +7 -0
  42. data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
  43. data/js/controls/button/themes/default/button_parts1.png +0 -0
  44. data/js/controls/checkbox/checkbox.js +49 -0
  45. data/js/controls/checkbox/js.inc +0 -0
  46. data/js/controls/checkbox/themes/default/checkbox.css +69 -0
  47. data/js/controls/checkbox/themes/default/checkbox.html +5 -0
  48. data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
  49. data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
  50. data/js/controls/dialogs/alert_sheet/alert_sheet.js +63 -0
  51. data/js/controls/dialogs/alert_sheet/js.inc +0 -0
  52. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +37 -0
  53. data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
  54. data/js/controls/dialogs/sheet/js.inc +0 -0
  55. data/js/controls/dialogs/sheet/sheet.js +84 -0
  56. data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
  57. data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
  58. data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
  59. data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
  60. data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
  61. data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
  62. data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
  63. data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
  64. data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
  65. data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
  66. data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
  67. data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
  68. data/js/controls/imageview/imageview.js +109 -0
  69. data/js/controls/imageview/js.inc +0 -0
  70. data/js/controls/imageview/themes/default/blank.gif +0 -0
  71. data/js/controls/passwordcontrol/js.inc +0 -0
  72. data/js/controls/passwordcontrol/passwordcontrol.js +23 -0
  73. data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
  74. data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
  75. data/js/controls/progress/progressbar/js.inc +0 -0
  76. data/js/controls/progress/progressbar/progressbar.js +40 -0
  77. data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
  78. data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
  79. data/js/controls/progress/progressindicator/js.inc +0 -0
  80. data/js/controls/progress/progressindicator/progressindicator.js +44 -0
  81. data/js/controls/radiobutton/js.inc +0 -0
  82. data/js/controls/radiobutton/radiobutton.js +43 -0
  83. data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
  84. data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
  85. data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
  86. data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
  87. data/js/controls/sliders/slider/js.inc +0 -0
  88. data/js/controls/sliders/slider/slider.js +357 -0
  89. data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
  90. data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
  91. data/js/controls/sliders/slider/themes/default/slider.css +108 -0
  92. data/js/controls/sliders/slider/themes/default/slider.html +5 -0
  93. data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
  94. data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
  95. data/js/controls/sliders/vslider/js.inc +0 -0
  96. data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
  97. data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
  98. data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
  99. data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
  100. data/js/controls/sliders/vslider/vslider.js +41 -0
  101. data/js/controls/stepper/js.inc +0 -0
  102. data/js/controls/stepper/stepper.js +213 -0
  103. data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
  104. data/js/controls/stepper/themes/default/stepper.css +14 -0
  105. data/js/controls/stepper/themes/default/stepper.html +2 -0
  106. data/js/controls/stepper/themes/default/stepper.png +0 -0
  107. data/js/controls/stringview/js.inc +0 -0
  108. data/js/controls/stringview/stringview.js +49 -0
  109. data/js/controls/stringview/themes/default/stringview.css +8 -0
  110. data/js/controls/stringview/themes/default/stringview.html +1 -0
  111. data/js/controls/tab/js.inc +0 -0
  112. data/js/controls/tab/tab.js +280 -0
  113. data/js/controls/tab/themes/bright/tab.css +76 -0
  114. data/js/controls/tab/themes/bright/tab.html +6 -0
  115. data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
  116. data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
  117. data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
  118. data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
  119. data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
  120. data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
  121. data/js/controls/tab/themes/default/tab.css +77 -0
  122. data/js/controls/tab/themes/default/tab.html +6 -0
  123. data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
  124. data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
  125. data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
  126. data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
  127. data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
  128. data/js/controls/tab/themes/default/tab_parts1.png +0 -0
  129. data/js/controls/textarea/js.inc +0 -0
  130. data/js/controls/textarea/textarea.js +24 -0
  131. data/js/controls/textarea/themes/default/textarea.css +21 -0
  132. data/js/controls/textarea/themes/default/textarea.html +18 -0
  133. data/js/controls/textcontrol/js.inc +0 -0
  134. data/js/controls/textcontrol/textcontrol.js +374 -0
  135. data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
  136. data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
  137. data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
  138. data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
  139. data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
  140. data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
  141. data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
  142. data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
  143. data/js/controls/uploader/js.inc +0 -0
  144. data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
  145. data/js/controls/uploader/themes/default/uploader.css +108 -0
  146. data/js/controls/uploader/themes/default/uploader.html +27 -0
  147. data/js/controls/uploader/uploader.js +154 -0
  148. data/js/controls/validatorview/js.inc +0 -0
  149. data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
  150. data/js/controls/validatorview/themes/default/validator.png +0 -0
  151. data/js/controls/validatorview/themes/default/validatorview.css +0 -0
  152. data/js/controls/validatorview/themes/default/validatorview.html +0 -0
  153. data/js/controls/validatorview/validatorview.js +62 -0
  154. data/js/controls/window/js.inc +0 -0
  155. data/js/controls/window/themes/default/window.css +219 -0
  156. data/js/controls/window/themes/default/window.html +17 -0
  157. data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
  158. data/js/controls/window/themes/default/window_bg_active.png +0 -0
  159. data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
  160. data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
  161. data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
  162. data/js/controls/window/themes/default/window_buttons.png +0 -0
  163. data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
  164. data/js/controls/window/themes/default/window_parts1.png +0 -0
  165. data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
  166. data/js/controls/window/themes/default/window_parts2.png +0 -0
  167. data/js/controls/window/window.js +286 -0
  168. data/js/core/class/class.js +318 -0
  169. data/js/core/class/js.inc +0 -0
  170. data/js/core/elem/elem.js +1383 -0
  171. data/js/core/elem/js.inc +0 -0
  172. data/js/core/event/event.js +153 -0
  173. data/js/core/event/js.inc +0 -0
  174. data/js/core/iefix/ie_css_element.htc +5 -0
  175. data/js/core/iefix/ie_css_style.htc +5 -0
  176. data/js/core/iefix/iefix.js +359 -0
  177. data/js/core/iefix/js.inc +0 -0
  178. data/js/core/rsence_ns/js.inc +0 -0
  179. data/js/core/rsence_ns/rsence_ns.js +21 -0
  180. data/js/datetime/calendar/calendar.js +198 -0
  181. data/js/datetime/calendar/js.inc +0 -0
  182. data/js/datetime/calendar/themes/default/calendar.css +108 -0
  183. data/js/datetime/calendar/themes/default/calendar.html +9 -0
  184. data/js/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
  185. data/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
  186. data/js/datetime/datetimevalue/datetimevalue.js +247 -0
  187. data/js/datetime/datetimevalue/js.inc +0 -0
  188. data/js/datetime/timesheet/js.inc +0 -0
  189. data/js/datetime/timesheet/themes/default/timesheet.css +30 -0
  190. data/js/datetime/timesheet/themes/default/timesheet.html +2 -0
  191. data/js/datetime/timesheet/timesheet.js +183 -0
  192. data/js/datetime/timesheet_item/js.inc +0 -0
  193. data/js/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
  194. data/js/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
  195. data/js/datetime/timesheet_item/timesheet_item.js +248 -0
  196. data/js/datetime/timesheet_item_edit/js.inc +0 -0
  197. data/js/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
  198. data/js/foundation/application/application.js +208 -0
  199. data/js/foundation/application/js.inc +0 -0
  200. data/js/foundation/control/control.js +339 -0
  201. data/js/foundation/control/controldefaults/controldefaults.js +56 -0
  202. data/js/foundation/control/controldefaults/js.inc +0 -0
  203. data/js/foundation/control/dummyvalue/dummyvalue.js +51 -0
  204. data/js/foundation/control/dummyvalue/js.inc +0 -0
  205. data/js/foundation/control/dyncontrol/dyncontrol.js +500 -0
  206. data/js/foundation/control/dyncontrol/js.inc +0 -0
  207. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
  208. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
  209. data/js/foundation/control/eventresponder/eventresponder.js +750 -0
  210. data/js/foundation/control/eventresponder/js.inc +0 -0
  211. data/js/foundation/control/js.inc +0 -0
  212. data/js/foundation/control/valuematrix/js.inc +0 -0
  213. data/js/foundation/control/valuematrix/valuematrix.js +135 -0
  214. data/js/foundation/control/valueresponder/js.inc +0 -0
  215. data/js/foundation/control/valueresponder/valueresponder.js +79 -0
  216. data/js/foundation/eventmanager/eventmanager.js +991 -0
  217. data/js/foundation/eventmanager/js.inc +0 -0
  218. data/js/foundation/geom/point/js.inc +0 -0
  219. data/js/foundation/geom/point/point.js +202 -0
  220. data/js/foundation/geom/rect/js.inc +0 -0
  221. data/js/foundation/geom/rect/rect.js +651 -0
  222. data/js/foundation/json_renderer/js.inc +0 -0
  223. data/js/foundation/json_renderer/json_renderer.js +246 -0
  224. data/js/foundation/system/js.inc +0 -0
  225. data/js/foundation/system/system.js +381 -0
  226. data/js/foundation/thememanager/js.inc +0 -0
  227. data/js/foundation/thememanager/thememanager.js +393 -0
  228. data/js/foundation/value/js.inc +0 -0
  229. data/js/foundation/value/value.js +183 -0
  230. data/js/foundation/view/js.inc +0 -0
  231. data/js/foundation/view/markupview/js.inc +0 -0
  232. data/js/foundation/view/markupview/markupview.js +114 -0
  233. data/js/foundation/view/morphanimation/js.inc +0 -0
  234. data/js/foundation/view/morphanimation/morphanimation.js +237 -0
  235. data/js/foundation/view/view.js +1812 -0
  236. data/js/foundation/view/viewdefaults/js.inc +0 -0
  237. data/js/foundation/view/viewdefaults/viewdefaults.js +26 -0
  238. data/js/lists/checkboxlist/checkboxlist.js +171 -0
  239. data/js/lists/checkboxlist/js.inc +0 -0
  240. data/js/lists/listitems/js.inc +0 -0
  241. data/js/lists/listitems/listitems.js +88 -0
  242. data/js/lists/propertylist/js.inc +0 -0
  243. data/js/lists/propertylist/propertylist.js +326 -0
  244. data/js/lists/radiobuttonlist/js.inc +0 -0
  245. data/js/lists/radiobuttonlist/radiobuttonlist.js +116 -0
  246. data/js/util/reloadapp/js.inc +0 -0
  247. data/js/util/reloadapp/reloadapp.js +152 -0
  248. data/js/util/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
  249. data/js/util/reloadapp/themes/default/reloadapp_warning.png +0 -0
  250. data/js/util/sha/js.inc +0 -0
  251. data/js/util/sha/sha.js +426 -0
  252. data/js/views/centerview/centerview.js +75 -0
  253. data/js/views/centerview/js.inc +0 -0
  254. data/js/views/inlineview/inlineview.js +15 -0
  255. data/js/views/inlineview/js.inc +0 -0
  256. data/js/views/scrollview/js.inc +0 -0
  257. data/js/views/scrollview/scrollview.js +40 -0
  258. data/lib/conf/argv.rb +850 -0
  259. data/lib/conf/default.rb +219 -0
  260. data/lib/daemon/daemon.rb +387 -0
  261. data/lib/daemon/sigcomm.rb +64 -0
  262. data/lib/http/broker.rb +150 -0
  263. data/lib/http/rackup.rb +91 -0
  264. data/lib/http/request.rb +66 -0
  265. data/lib/http/response.rb +65 -0
  266. data/lib/plugins/dependencies.rb +285 -0
  267. data/lib/plugins/gui_plugin.rb +160 -0
  268. data/lib/plugins/guiparser.rb +123 -0
  269. data/lib/plugins/plugin.rb +438 -0
  270. data/lib/plugins/plugin_base.rb +162 -0
  271. data/lib/plugins/plugin_plugins.rb +81 -0
  272. data/lib/plugins/plugin_sqlite_db.rb +98 -0
  273. data/lib/plugins/pluginmanager.rb +635 -0
  274. data/lib/plugins/plugins.rb +169 -0
  275. data/lib/plugins/servlet.rb +108 -0
  276. data/lib/rsence.rb +32 -0
  277. data/lib/session/msg.rb +327 -0
  278. data/lib/session/sessionmanager.rb +522 -0
  279. data/lib/session/sessionstorage.rb +340 -0
  280. data/lib/transporter/transporter.rb +263 -0
  281. data/lib/util/gzstring.rb +9 -0
  282. data/lib/util/ruby19_fixes.rb +18 -0
  283. data/lib/values/hvalue.rb +378 -0
  284. data/lib/values/valuemanager.rb +172 -0
  285. data/plugins/client_pkg/client_pkg.rb +157 -0
  286. data/plugins/client_pkg/info.yaml +25 -0
  287. data/plugins/client_pkg/lib/client_pkg_build.rb +561 -0
  288. data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
  289. data/plugins/client_pkg/lib/client_pkg_serve.rb +218 -0
  290. data/plugins/index_html/img/loading.gif +0 -0
  291. data/plugins/index_html/img/riassence.gif +0 -0
  292. data/plugins/index_html/index_html.rb +120 -0
  293. data/plugins/index_html/info.yaml +18 -0
  294. data/plugins/index_html/tmpl/index.html +15 -0
  295. data/plugins/main/info.yaml +18 -0
  296. data/plugins/main/js/main.js +84 -0
  297. data/plugins/main/main.rb +255 -0
  298. data/plugins/main/values.yaml +8 -0
  299. data/plugins/ticket/info.yaml +21 -0
  300. data/plugins/ticket/lib/common.rb +392 -0
  301. data/plugins/ticket/lib/favicon.rb +39 -0
  302. data/plugins/ticket/lib/file.rb +58 -0
  303. data/plugins/ticket/lib/img.rb +50 -0
  304. data/plugins/ticket/lib/objblob.rb +66 -0
  305. data/plugins/ticket/lib/rsrc.rb +34 -0
  306. data/plugins/ticket/lib/upload.rb +236 -0
  307. data/plugins/ticket/ticket.rb +333 -0
  308. data/setup/welcome/gui/welcome.yaml +92 -0
  309. data/setup/welcome/info.yaml +13 -0
  310. data/setup/welcome/text/welcome.html +9 -0
  311. data/setup/welcome/values.yaml +9 -0
  312. data/setup/welcome/welcome.rb +54 -0
  313. metadata +407 -0
@@ -0,0 +1,213 @@
1
+ /* RSence
2
+ * Copyright 2006 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ /*** = Description
10
+ ** HStepper is a control unit made of two adjacent buttons with up and down arrows
11
+ ** to select the previous or next of a set of contiguous values.
12
+ ** Normally, a HStepper instance works in combination with a HTextControl or a HStringView instance.
13
+ **
14
+ ** = Instance Variables
15
+ ** +minValue+:: The smallest allowed value
16
+ ** +maxValue+:: The biggest allowed value
17
+ ** +stepSize+:: Amount of to step, defaults to +/- 1
18
+ ** +repeatInterval+:: Interval in milliseconds for repeat
19
+ ** +wrapAround+:: Boolean to control wrap-around behaviour
20
+ ***/
21
+
22
+ var//RSence.Controls
23
+ HStepper = HControl.extend({
24
+
25
+ componentName: "stepper",
26
+
27
+ defaultEvents: {
28
+ mouseDown: true,
29
+ keyDown: true,
30
+ mouseWheel: true
31
+ },
32
+
33
+ controlDefaults: (HControlDefaults.extend({
34
+ minValue: 0,
35
+ maxValue: 100,
36
+ stepSize: 1,
37
+ repeatInterval: 200,
38
+ wrapAround: false
39
+ })),
40
+
41
+ /** Setter for wrap-around behaviour
42
+ **/
43
+ setWrapAround: function(_on){
44
+ this.options.wrapAround = _on;
45
+ },
46
+
47
+ // -- Makes sure the value is in its boundaries and either wrap-around
48
+ // to min/max or revert to the current value ++
49
+ _checkValueBoundaries: function(_value){
50
+
51
+ // -- checks for boundaries ++
52
+ var _this = this,
53
+ _options = _this.options,
54
+ _minVal = _options.minValue,
55
+ _maxVal = _options.maxValue,
56
+ _tooSmall = _value<_minVal,
57
+ _tooBig = _value>_maxVal,
58
+ _overflow = ( _tooSmall || _tooBig );
59
+
60
+ // -- The value is ok, just return it as it is ++
61
+ if (!_overflow) {
62
+ return _value;
63
+ }
64
+
65
+
66
+ /// -- Handle the overflow condition: ++
67
+
68
+ // -- Wrap around uses min/max as new value as either is reached ++
69
+ if (_options.wrapAround) {
70
+ if (_tooSmall) {
71
+ return _maxVal;
72
+ }
73
+ else {
74
+ return _minVal;
75
+ }
76
+ }
77
+ // -- Any other condition means we just revert the changes ++
78
+ else {
79
+ return _this.value;
80
+ }
81
+
82
+ },
83
+
84
+ /** Adds the step size to the value
85
+ **/
86
+ stepUp: function(){
87
+ this.setValue(
88
+ this._checkValueBoundaries(
89
+ this.value + this.options.stepSize
90
+ )
91
+ );
92
+ },
93
+
94
+ /** Subtracts the step size from the value
95
+ **/
96
+ stepDown: function(){
97
+ this.setValue(
98
+ this._checkValueBoundaries(
99
+ this.value - this.options.stepSize
100
+ )
101
+ );
102
+ },
103
+
104
+ // -- Returns an action string for the setInterval in _setRepeatInterval ++
105
+ _repeatIntervalStr: function( _up ){
106
+ return [
107
+ 'HSystem.views[',
108
+ this.viewId,
109
+ '].step',
110
+ (_up?'Up':'Down'),
111
+ '();'
112
+ ].join('');
113
+ },
114
+
115
+ // -- Background-offset of the state images up/down,
116
+ // overrideable in the html template ++
117
+ bgStateUp: '0px -23px',
118
+ bgStateDown: '0px -46px',
119
+
120
+ // enables the up/down effect in the image based on the _up boolean (true means up, false means down)
121
+ _bgStateOn: function( _up ){
122
+ ELEM.setStyle(this.markupElemIds.state,'background-position',_up?this.bgStateUp:this.bgStateDown);
123
+ },
124
+
125
+ // reverts the up/down effect
126
+ _bgStateOff: function(){
127
+ ELEM.setStyle(this.markupElemIds.state,'background-position','');
128
+ },
129
+
130
+ // Starts the repeating stepping up or down (when the mouse button or a arrow key is down)
131
+ _setRepeatInterval: function( _up ){
132
+ var _this = this,
133
+ _options = _this.options;
134
+ _this._bgStateOn( _up );
135
+ if (_up) {
136
+ _this.stepUp();
137
+ _this._repeatInterval = setInterval( _this._repeatIntervalStr(1), _options.repeatInterval );
138
+ }
139
+ else {
140
+ _this.stepDown();
141
+ _this._repeatInterval = setInterval( _this._repeatIntervalStr(0), _options.repeatInterval );
142
+ }
143
+ },
144
+
145
+ // Stops the repeating stepping up or down enabled in _setRepeatInterval
146
+ _clearRepeatInterval: function(){
147
+ this._bgStateOff();
148
+ clearInterval( this._repeatInterval );
149
+ },
150
+
151
+ /** Checks where the mouseDown happened and adjusts the stepper up/down based on that
152
+ **/
153
+ mouseDown: function( x, y ){
154
+ this.setMouseUp(true);
155
+ this._setRepeatInterval( ( y - ELEM.getVisiblePosition( this.elemId )[1] ) <= 11 );
156
+ },
157
+
158
+ /** Stops the repeating stepping, when the mouse button goes up
159
+ **/
160
+ mouseUp: function(){
161
+ this._clearRepeatInterval();
162
+ },
163
+
164
+ /** Stops the repeating stepping, when the control becomes inactive
165
+ **/
166
+ blur: function(){
167
+ this._clearRepeatInterval();
168
+ },
169
+
170
+ /** adjusts stepping up/down based on the arrow key pressed.
171
+ * up and right arrow keys steps the value up, down and left steps the value down
172
+ **/
173
+ keyDown: function( _keyCode ) {
174
+ this.setKeyUp(true);
175
+ var _keyDown = (_keyCode === Event.KEY_DOWN),
176
+ _keyUp = (_keyCode === Event.KEY_UP),
177
+ _keyLeft = (_keyCode === Event.KEY_LEFT),
178
+ _keyRight = (_keyCode === Event.KEY_RIGHT),
179
+ _arrowKey = (_keyDown || _keyUp || _keyLeft || _keyRight);
180
+ if (_arrowKey) {
181
+ this._setRepeatInterval( (_keyUp || _keyRight) );
182
+ }
183
+ else if (_keyCode === Event.KEY_HOME) {
184
+ this.setValue(this.options.minValue);
185
+ }
186
+ else if (_keyCode === Event.KEY_END) {
187
+ this.setValue(this.options.maxValue);
188
+ }
189
+ // Page up and page down keys act just like arrow up/down.
190
+ else if (_keyCode === Event.KEY_PAGEUP) {
191
+ this._setRepeatInterval( 1 );
192
+ }
193
+ else if (_keyCode === Event.KEY_PAGEDOWN) {
194
+ this._setRepeatInterval( 0 );
195
+ }
196
+ },
197
+
198
+ /** stops the repeating when a key goes up
199
+ **/
200
+ keyUp: function(){
201
+ this._clearRepeatInterval();
202
+ },
203
+
204
+ /** steps the value up/down based on the mouse scroll wheel
205
+ **/
206
+ mouseWheel: function(_delta) {
207
+ (_delta>0)?this.stepUp():this.stepDown();
208
+ }
209
+
210
+
211
+ });
212
+
213
+
@@ -0,0 +1,14 @@
1
+ .stepper_state {
2
+ position: absolute;
3
+ left: 0px;
4
+ top: 0px;
5
+ width: 15px;
6
+ height: 23px;
7
+ background-position: 0px 0px;
8
+ background-repeat: no-repeat;
9
+ background-image: #{this.getCssFilePath('stepper.png')};
10
+ }
11
+
12
+ .disabled .stepper_state {
13
+ background-position: 0px -69px;
14
+ }
@@ -0,0 +1,2 @@
1
+ <div class="stepper_state" id="state#{_ID}"></div>
2
+ ${this.bgStateUp='0px -23px';this.bgStateDown='0px -46px';}
File without changes
@@ -0,0 +1,49 @@
1
+ /* RSence
2
+ * Copyright 2006 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ /*** = Description
10
+ ** HStringView is a view component that represents a non-editable line of text.
11
+ ** Commonly, stringview is used as a label to control elements
12
+ ** that do not have implicit labels (text fields, checkboxes and radio buttons, and menus).
13
+ ** Some form controls automatically have labels associated with them (press buttons)
14
+ ** while most do not have (text fields, checkboxes and radio buttons, and sliders etc.).
15
+ **
16
+ ** = Instance variables
17
+ ** +type+:: '[HStringView]'
18
+ ** +value+:: The string that this string view displays when drawn.
19
+ ***/
20
+ var//RSence.Controls
21
+ HStringView = HControl.extend({
22
+
23
+ componentName: "stringview",
24
+
25
+ /** = Description
26
+ * setStyle function
27
+ *
28
+ **/
29
+ setStyle: function(_name, _value, _cacheOverride) {
30
+ if (!this['markupElemIds']||!this.markupElemIds['value']) {
31
+ return this;
32
+ }
33
+ ELEM.setStyle(this.markupElemIds.value, _name, _value, _cacheOverride);
34
+ return this;
35
+ },
36
+
37
+ /** = Description
38
+ * refreshLable function
39
+ *
40
+ **/
41
+ refreshLabel: function() {
42
+ if(this.markupElemIds) {
43
+ if(this.markupElemIds.value) {
44
+ ELEM.setAttr(this.markupElemIds.value, 'title', this.label);
45
+ }
46
+ }
47
+ }
48
+ });
49
+
@@ -0,0 +1,8 @@
1
+ .stringview {
2
+ color: #333;
3
+ padding: 1px;
4
+ font-size: 12px;
5
+ font-family: Arial, sans-serif;
6
+ overflow-y: visible;
7
+ }
8
+
@@ -0,0 +1 @@
1
+ <div class="stringview" id="value#{_ID}" title="#{this.label}"></div>
File without changes
@@ -0,0 +1,280 @@
1
+ /* RSence
2
+ * Copyright 2008 Riassence Inc.
3
+ * http://riassence.com/
4
+ *
5
+ * You should have received a copy of the GNU General Public License along
6
+ * with this software package. If not, contact licensing@riassence.com
7
+ */
8
+
9
+ /*** = Description
10
+ ** HTabView
11
+ **
12
+ **
13
+ ***/
14
+ var//RSence.Controls
15
+ HTabView = HView.extend({
16
+ /** = Description
17
+ * draw function
18
+ *
19
+ **/
20
+ draw: function(){
21
+ var _isDrawn = this.drawn;
22
+ this.base();
23
+ if(!_isDrawn){
24
+ var i=0,_styles = [
25
+ ['overflow','auto']
26
+ ];
27
+ for(i;i<_styles.length;i++){
28
+ this.setStyle(_styles[i][0],_styles[i][1]);
29
+ }
30
+ this.hide();
31
+ }
32
+ }
33
+ });
34
+
35
+ /** = Description
36
+ * HTab
37
+ *
38
+ **/
39
+ var//RSence.Controls
40
+ HTab = HControl.extend({
41
+ componentName: "tab",
42
+ refreshOnValueChange: true,
43
+ refreshOnLabelChange: false,
44
+
45
+ controlDefaults: (HControlDefaults.extend({
46
+ constructor: function(_ctrl){
47
+ this.tabInit(_ctrl);
48
+ },
49
+ tabInit: function(_ctrl){
50
+ _ctrl.tabs = [];
51
+ _ctrl.tabLabels = [];
52
+ _ctrl.tabLabelBounds = [];
53
+ _ctrl.tabLabelStrings = [];
54
+ }
55
+ })),
56
+
57
+ rightmostPx: 0,
58
+ selectIdx: -1,
59
+
60
+ // overridden in the template
61
+ tabLabelHeight: 20,
62
+
63
+ // overridden in the template
64
+ tabLabelLeftEdge: 4,
65
+
66
+ // overridden in the template
67
+ tabLabelRightEdge: 4,
68
+
69
+ // overridden in the template
70
+ fontStyle: 'font-family:Arial,sans-serif;font-size:13px;',
71
+
72
+ tabLabelHTMLPrefix1: '<div class="edge-left"></div><div class="tablabel" style="width:',
73
+ tabLabelHTMLPrefix2: 'px">',
74
+ tabLabelHTMLSuffix: '</div><div class="edge-right"></div>',
75
+ tabLabelParentElem: 'label',
76
+ tabLabelElementTagName: 'div',
77
+ tabLabelAlign: 'left',
78
+ tabLabelFillBg: false,
79
+ tabTriggerLink: true,
80
+ tabLabelNoHTMLPrefix: false,
81
+
82
+ /** = Description
83
+ * refreshValue function
84
+ *
85
+ **/
86
+ refreshValue: function(){
87
+ var _value = this.value;
88
+ if(typeof _value === 'number'){
89
+ var _index = parseInt(_value,10);
90
+ if(_index<this.tabs.length){
91
+ if(_index!==this.selectIdx){
92
+ this.selectTab(_index);
93
+ }
94
+ }
95
+ }
96
+ },
97
+
98
+ /** = Description
99
+ * Sets label for the tab.
100
+ *
101
+ * = Parameters
102
+ * +_label+:: Label for the tab
103
+ *
104
+ **/
105
+ setLabel: function(_label){
106
+ this.label = _label;
107
+ },
108
+
109
+ /** = Description
110
+ * selectTab function
111
+ *
112
+ * = Parameters
113
+ * +_tabIdx+::
114
+ *
115
+ **/
116
+ selectTab: function(_tabIdx){
117
+ if(_tabIdx instanceof HTabView){
118
+ _tabIdx = _tabIdx.tabIndex;
119
+ }
120
+ if(this.selectIdx!==-1){
121
+ var _tabSelectElemId = this.tabLabels[this.selectIdx],
122
+ _tabSelectViewId = this.tabs[this.selectIdx];
123
+ ELEM.removeClassName(_tabSelectElemId,'item-fg');
124
+ ELEM.addClassName(_tabSelectElemId,'item-bg');
125
+ HSystem.views[_tabSelectViewId].hide();
126
+ }
127
+ if(_tabIdx!==-1){
128
+ var _tabLabelElemId = this.tabLabels[_tabIdx],
129
+ _tabViewId = this.tabs[_tabIdx];
130
+ ELEM.removeClassName(_tabLabelElemId,'item-bg');
131
+ ELEM.addClassName(_tabLabelElemId,'item-fg');
132
+ HSystem.views[_tabViewId].show();
133
+ }
134
+ this.selectIdx = _tabIdx;
135
+ this.setValue(_tabIdx);
136
+ },
137
+
138
+ /** = Description
139
+ * addTab function
140
+ *
141
+ * = Parameters
142
+ * +_tabLabel+::
143
+ * +_doSelect+::
144
+ *
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);
153
+ _tabIdx = this.tabs.length;
154
+ if(this.tabLabelNoHTMLPrefix){
155
+ _tabLabelHTML = _tabLabel;
156
+ }
157
+ else {
158
+ _tabLabelHTML = this.tabLabelHTMLPrefix1+_labelTextWidth+this.tabLabelHTMLPrefix2+_tabLabel+this.tabLabelHTMLSuffix;
159
+ }
160
+ _tab.hide();
161
+ ELEM.addClassName(_tabLabelElemId,'item-bg');
162
+ ELEM.setStyle(_tabLabelElemId,'width',_labelWidth+'px');
163
+ ELEM.setStyle(_tabLabelElemId,this.tabLabelAlign,this.rightmostPx+'px');
164
+ 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 || BROWSER_TYPE.ie6)){
170
+ ELEM.setAttr(_tabLabelElemId,'onclick','HSystem.views['+this.viewId+'].selectTab('+_tabIdx+');');
171
+ }
172
+ else {
173
+ this.tabTriggerLink = false;
174
+ this.setClick(true);
175
+ this.tabLabelBounds.push([this.rightmostPx,this.rightmostPx+_labelWidth]);
176
+ }
177
+ this.rightmostPx+=_labelWidth;
178
+ if(this.tabLabelAlign === 'right'){
179
+ ELEM.setStyle(this.markupElemIds[this.tabLabelParentElem],'width',this.rightmostPx+'px');
180
+ }
181
+ else if (this.tabLabelFillBg) {
182
+ ELEM.setStyle(this.markupElemIds.state,'left',this.rightmostPx+'px');
183
+ }
184
+ this.tabs.push(_tab.viewId);
185
+ this.tabLabels.push(_tabLabelElemId);
186
+ _tab.tabIndex = _tabIdx;
187
+ if(_doSelect || (this.value === _tabIdx)){
188
+ this.selectTab(_tabIdx);
189
+ }
190
+ return _tab;
191
+ },
192
+
193
+ /** = Description
194
+ * click function
195
+ *
196
+ * = Parameters
197
+ * +_x+::
198
+ * +_y+::
199
+ *
200
+ **/
201
+ click: function(_x,_y){
202
+ if(this.tabTriggerLink){
203
+ this.setClickable(false);
204
+ return;
205
+ }
206
+ _x -= this.pageX();
207
+ _y -= this.pageY();
208
+ if(_y<=this.tabLabelHeight){
209
+ if (this.tabLabelAlign === 'right') {
210
+ _x = this.rect.width - _x;
211
+ }
212
+ if(_x<=this.rightmostPx){
213
+ var i=0,_labelBounds;
214
+ for(i;i<this.tabLabelBounds.length;i++){
215
+ _labelBounds = this.tabLabelBounds[i];
216
+ if(_x<_labelBounds[1] && _x>=_labelBounds[0]){
217
+ this.selectTab(i);
218
+ return;
219
+ }
220
+ }
221
+ }
222
+
223
+ }
224
+ },
225
+
226
+ /** = Description
227
+ * removeTab function
228
+ *
229
+ * = Parameters
230
+ * +_tabIdx+::
231
+ *
232
+ **/
233
+ removeTab: function(_tabIdx){
234
+ var _selIdx = this.selectIdx,
235
+ _tabViewId = this.tabs[_tabIdx],
236
+ _tabLabelElemId = this.tabViews[_tabIdx];
237
+ this.tabs.splice(_tabIdx,1);
238
+ this.tabLabels.splice(_tabIdx,1);
239
+ this.tabLabelBounds.splice(_tabIdx,1);
240
+ this.tabLabelStrings.splice(_tabIdx,1);
241
+ if(_tabIdx===_selIdx){
242
+ this.selectIdx=-1;
243
+ if(_tabIdx===0&&this.tabs.length===0){
244
+ this.selectTab(-1);
245
+ }
246
+ else if(_tabIdx===(this.tabs.length-1)){
247
+ this.selectTab(_tabIdx-1);
248
+ }
249
+ else{
250
+ this.selectTab(_tabIdx);
251
+ }
252
+ }
253
+ else if(_tabIdx<_selIdx){
254
+ this.selectIdx--;
255
+ }
256
+ ELEM.del(_tabLabelElemId);
257
+ HSystem.views[_tabViewId].die();
258
+ }
259
+ });
260
+
261
+ /** = Description
262
+ * HTabItem is a wrapper for creating tabs as subviews when using JSONRenderer.
263
+ * rect is ignored
264
+ * parent is the HTab instance
265
+ * options may contain the following:
266
+ * select: true|false, passed on to addTab
267
+ * label: true|false, passed on to addTab
268
+ *
269
+ * = Returns
270
+ * a new HTabView instance returned by addTab
271
+ *
272
+ **/
273
+ var//RSence.Controls
274
+ HTabItem = {
275
+ nu: function(_rect, _parent, _options){
276
+ return _parent.addTab( _options.label, _options.select );
277
+ }
278
+ };
279
+
280
+
@@ -0,0 +1,76 @@
1
+ /* tab bar */
2
+ .tab_label {
3
+ position: absolute;
4
+ top: 0px; left: 0px right: 0px; height: 24px;
5
+ cursor: pointer;
6
+ }
7
+
8
+ /* set left and width manually */
9
+ .tab_label .item-fg,
10
+ .tab_label .item-bg {
11
+ position: absolute;
12
+ top: 0px; height: 24px;
13
+ background-repeat: repeat-x;
14
+ }
15
+ .tab_label,
16
+ .tab_label .edge-left,
17
+ .tab_label .edge-right,
18
+ .tab_label .tablabel,
19
+ .tab_label_fill_bg {
20
+ background-repeat: no-repeat;
21
+ background-image: #{this.getCssFilePath('tab_parts1.png')};
22
+ }
23
+ .tab_label_fill_bg {
24
+ position: absolute;
25
+ top: 0px; left: 0px; right: 0px; height: 24px;
26
+ background-position: 0px -96px;
27
+ background-repeat: repeat-x;
28
+ }
29
+
30
+ .tab_label .edge-left {
31
+ position: absolute;
32
+ top: 0px; left: 0px; width: 12px; height: 24px;
33
+ background-position: 0px 0px;
34
+ }
35
+ .tab_label .item-bg .edge-left {
36
+ background-position: -24px 0px;
37
+ }
38
+
39
+ .tab_label .edge-right {
40
+ position: absolute;
41
+ top: 0px; right: 0px; width: 9px; height: 24px;
42
+ background-position: -12px 0px;
43
+ }
44
+ .tab_label .item-bg .edge-right {
45
+ background-position: -36px 0px;
46
+ }
47
+
48
+ .tab_label .tablabel {
49
+ position: absolute;
50
+ top: 0px; left: 12px; right: 9px; height: 24px;
51
+ background-position: 0px -24px;
52
+ background-repeat: repeat-x;
53
+ vertical-align: middle;
54
+ text-align: center;
55
+ color: #000;
56
+ line-height: 26px;
57
+ text-align: center; vertical-align: middle;
58
+ font-family: Arial, sans-serif;
59
+ font-size: 12px; font-weight: bold;
60
+ color: #333;
61
+ }
62
+ .tab_label .item-bg .tablabel {
63
+ background-position: 0px -48px;
64
+ color: #666;
65
+ }
66
+
67
+ .tab_bg {
68
+ position: absolute;
69
+ top: 24px; left: 0px; right: 0px; bottom: 0px;
70
+ background-image: #{this.getCssFilePath('tab_border_pattern.png')};
71
+ }
72
+ .tab_fg {
73
+ position: absolute;
74
+ top: 0px; left: 1px; right: 1px; bottom: 1px;
75
+ background-image: #{this.getCssFilePath('tab_bg_color.png')};
76
+ }
@@ -0,0 +1,6 @@
1
+ <div class="tab_bg" id="bg#{_ID}">
2
+ <div class="tab_fg"></div>
3
+ </div>
4
+ <div class="tab_label" id="label#{_ID}"></div>
5
+ <div class="tab_label_fill_bg" id="state#{_ID}"></div>
6
+ ${this.tabLabelLeftEdge=12;this.tabLabelRightEdge=9;this.tabLabelHeight=24;this.fontStyle='font-size: 12px; font-weight: bold;';this.tabLabelFillBg=true;}