rsence 2.0.0.0.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 (311) hide show
  1. data/INSTALL.rdoc +295 -0
  2. data/LICENSE +622 -0
  3. data/README.rdoc +24 -0
  4. data/VERSION +1 -0
  5. data/bin/build_client.rb +254 -0
  6. data/bin/help +6 -0
  7. data/bin/launch.rb +120 -0
  8. data/bin/rdoc.sh +2 -0
  9. data/bin/restart +6 -0
  10. data/bin/rsence +120 -0
  11. data/bin/run +6 -0
  12. data/bin/run.rb +6 -0
  13. data/bin/save +6 -0
  14. data/bin/start +6 -0
  15. data/bin/status +6 -0
  16. data/bin/stop +6 -0
  17. data/conf/config.ru +5 -0
  18. data/conf/default_conf.yaml +337 -0
  19. data/conf/default_strings.yaml +77 -0
  20. data/conf/local_conf.yaml +14 -0
  21. data/conf/unicorn.conf +78 -0
  22. data/js/comm/comm/autosync/autosync.js +18 -0
  23. data/js/comm/comm/autosync/js.inc +0 -0
  24. data/js/comm/comm/comm.js +195 -0
  25. data/js/comm/comm/js.inc +0 -0
  26. data/js/comm/comm/queue/js.inc +0 -0
  27. data/js/comm/comm/queue/queue.js +183 -0
  28. data/js/comm/comm/session/js.inc +0 -0
  29. data/js/comm/comm/session/session.js +51 -0
  30. data/js/comm/comm/sessionwatcher/js.inc +0 -0
  31. data/js/comm/comm/sessionwatcher/sessionwatcher.js +43 -0
  32. data/js/comm/comm/transporter/js.inc +0 -0
  33. data/js/comm/comm/transporter/transporter.js +257 -0
  34. data/js/comm/comm/urlresponder/js.inc +0 -0
  35. data/js/comm/comm/urlresponder/urlresponder.js +148 -0
  36. data/js/comm/comm/values/js.inc +0 -0
  37. data/js/comm/comm/values/values.js +432 -0
  38. data/js/comm/jsloader/js.inc +0 -0
  39. data/js/comm/jsloader/jsloader.js +114 -0
  40. data/js/comm/reloadapp/js.inc +0 -0
  41. data/js/comm/reloadapp/reloadapp.js +150 -0
  42. data/js/comm/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
  43. data/js/comm/reloadapp/themes/default/reloadapp_warning.png +0 -0
  44. data/js/comm/sha/js.inc +0 -0
  45. data/js/comm/sha/sha.js +432 -0
  46. data/js/comm/values/value/js.inc +0 -0
  47. data/js/comm/values/value/value.js +182 -0
  48. data/js/comm/values/valuematrix/js.inc +0 -0
  49. data/js/comm/values/valuematrix/valuematrix.js +138 -0
  50. data/js/controls/button/button.js +57 -0
  51. data/js/controls/button/js.inc +0 -0
  52. data/js/controls/button/themes/bright/button.css +89 -0
  53. data/js/controls/button/themes/bright/button.html +7 -0
  54. data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
  55. data/js/controls/button/themes/bright/button_parts1.png +0 -0
  56. data/js/controls/button/themes/default/button.css +89 -0
  57. data/js/controls/button/themes/default/button.html +7 -0
  58. data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
  59. data/js/controls/button/themes/default/button_parts1.png +0 -0
  60. data/js/controls/checkbox/checkbox.js +47 -0
  61. data/js/controls/checkbox/js.inc +0 -0
  62. data/js/controls/checkbox/themes/default/checkbox.css +69 -0
  63. data/js/controls/checkbox/themes/default/checkbox.html +5 -0
  64. data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
  65. data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
  66. data/js/controls/datetime/calendar/calendar.js +197 -0
  67. data/js/controls/datetime/calendar/js.inc +0 -0
  68. data/js/controls/datetime/calendar/themes/default/calendar.css +108 -0
  69. data/js/controls/datetime/calendar/themes/default/calendar.html +9 -0
  70. data/js/controls/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
  71. data/js/controls/datetime/calendar/themes/default/calendar_arrows.png +0 -0
  72. data/js/controls/datetime/datetimevalue/datetimevalue.js +246 -0
  73. data/js/controls/datetime/datetimevalue/js.inc +0 -0
  74. data/js/controls/datetime/timesheet/js.inc +0 -0
  75. data/js/controls/datetime/timesheet/themes/default/timesheet.css +30 -0
  76. data/js/controls/datetime/timesheet/themes/default/timesheet.html +2 -0
  77. data/js/controls/datetime/timesheet/timesheet.js +182 -0
  78. data/js/controls/datetime/timesheet_item/js.inc +0 -0
  79. data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
  80. data/js/controls/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
  81. data/js/controls/datetime/timesheet_item/timesheet_item.js +247 -0
  82. data/js/controls/datetime/timesheet_item_edit/js.inc +0 -0
  83. data/js/controls/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
  84. data/js/controls/dialogs/alert_sheet/alert_sheet.js +62 -0
  85. data/js/controls/dialogs/alert_sheet/js.inc +0 -0
  86. data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +36 -0
  87. data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
  88. data/js/controls/dialogs/sheet/js.inc +0 -0
  89. data/js/controls/dialogs/sheet/sheet.js +83 -0
  90. data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
  91. data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
  92. data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
  93. data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
  94. data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
  95. data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
  96. data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
  97. data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
  98. data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
  99. data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
  100. data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
  101. data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
  102. data/js/controls/imageview/imageview.js +108 -0
  103. data/js/controls/imageview/js.inc +0 -0
  104. data/js/controls/imageview/themes/default/blank.gif +0 -0
  105. data/js/controls/lists/checkboxlist/checkboxlist.js +170 -0
  106. data/js/controls/lists/checkboxlist/js.inc +0 -0
  107. data/js/controls/lists/listitems/js.inc +0 -0
  108. data/js/controls/lists/listitems/listitems.js +65 -0
  109. data/js/controls/lists/radiobuttonlist/js.inc +0 -0
  110. data/js/controls/lists/radiobuttonlist/radiobuttonlist.js +126 -0
  111. data/js/controls/passwordcontrol/js.inc +0 -0
  112. data/js/controls/passwordcontrol/passwordcontrol.js +22 -0
  113. data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
  114. data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
  115. data/js/controls/progress/progressbar/js.inc +0 -0
  116. data/js/controls/progress/progressbar/progressbar.js +36 -0
  117. data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
  118. data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
  119. data/js/controls/progress/progressindicator/js.inc +0 -0
  120. data/js/controls/progress/progressindicator/progressindicator.js +43 -0
  121. data/js/controls/radiobutton/js.inc +0 -0
  122. data/js/controls/radiobutton/radiobutton.js +41 -0
  123. data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
  124. data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
  125. data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
  126. data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
  127. data/js/controls/sliders/slider/js.inc +0 -0
  128. data/js/controls/sliders/slider/slider.js +356 -0
  129. data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
  130. data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
  131. data/js/controls/sliders/slider/themes/default/slider.css +108 -0
  132. data/js/controls/sliders/slider/themes/default/slider.html +5 -0
  133. data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
  134. data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
  135. data/js/controls/sliders/vslider/js.inc +0 -0
  136. data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
  137. data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
  138. data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
  139. data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
  140. data/js/controls/sliders/vslider/vslider.js +40 -0
  141. data/js/controls/stepper/js.inc +0 -0
  142. data/js/controls/stepper/stepper.js +212 -0
  143. data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
  144. data/js/controls/stepper/themes/default/stepper.css +14 -0
  145. data/js/controls/stepper/themes/default/stepper.html +2 -0
  146. data/js/controls/stepper/themes/default/stepper.png +0 -0
  147. data/js/controls/stringview/js.inc +0 -0
  148. data/js/controls/stringview/stringview.js +49 -0
  149. data/js/controls/stringview/themes/default/stringview.css +8 -0
  150. data/js/controls/stringview/themes/default/stringview.html +1 -0
  151. data/js/controls/tab/js.inc +0 -0
  152. data/js/controls/tab/tab.js +276 -0
  153. data/js/controls/tab/themes/bright/tab.css +76 -0
  154. data/js/controls/tab/themes/bright/tab.html +6 -0
  155. data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
  156. data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
  157. data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
  158. data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
  159. data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
  160. data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
  161. data/js/controls/tab/themes/default/tab.css +77 -0
  162. data/js/controls/tab/themes/default/tab.html +6 -0
  163. data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
  164. data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
  165. data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
  166. data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
  167. data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
  168. data/js/controls/tab/themes/default/tab_parts1.png +0 -0
  169. data/js/controls/textarea/js.inc +0 -0
  170. data/js/controls/textarea/textarea.js +23 -0
  171. data/js/controls/textarea/themes/default/textarea.css +21 -0
  172. data/js/controls/textarea/themes/default/textarea.html +18 -0
  173. data/js/controls/textcontrol/js.inc +0 -0
  174. data/js/controls/textcontrol/textcontrol.js +372 -0
  175. data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
  176. data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
  177. data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
  178. data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
  179. data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
  180. data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
  181. data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
  182. data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
  183. data/js/controls/uploader/js.inc +0 -0
  184. data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
  185. data/js/controls/uploader/themes/default/uploader.css +108 -0
  186. data/js/controls/uploader/themes/default/uploader.html +27 -0
  187. data/js/controls/uploader/uploader.js +153 -0
  188. data/js/controls/validatorview/js.inc +0 -0
  189. data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
  190. data/js/controls/validatorview/themes/default/validator.png +0 -0
  191. data/js/controls/validatorview/themes/default/validatorview.css +0 -0
  192. data/js/controls/validatorview/themes/default/validatorview.html +0 -0
  193. data/js/controls/validatorview/validatorview.js +55 -0
  194. data/js/controls/window/js.inc +0 -0
  195. data/js/controls/window/themes/default/window.css +219 -0
  196. data/js/controls/window/themes/default/window.html +17 -0
  197. data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
  198. data/js/controls/window/themes/default/window_bg_active.png +0 -0
  199. data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
  200. data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
  201. data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
  202. data/js/controls/window/themes/default/window_buttons.png +0 -0
  203. data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
  204. data/js/controls/window/themes/default/window_parts1.png +0 -0
  205. data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
  206. data/js/controls/window/themes/default/window_parts2.png +0 -0
  207. data/js/controls/window/window.js +284 -0
  208. data/js/core/class/class.js +317 -0
  209. data/js/core/class/js.inc +0 -0
  210. data/js/core/elem/elem.js +1376 -0
  211. data/js/core/elem/js.inc +0 -0
  212. data/js/core/event/event.js +1021 -0
  213. data/js/core/event/js.inc +0 -0
  214. data/js/core/iefix/ie_css_element.htc +5 -0
  215. data/js/core/iefix/ie_css_style.htc +5 -0
  216. data/js/core/iefix/iefix.js +359 -0
  217. data/js/core/iefix/js.inc +0 -0
  218. data/js/debugg/debugg.js +43 -0
  219. data/js/debugg/js.inc +0 -0
  220. data/js/foundation/application/application.js +209 -0
  221. data/js/foundation/application/js.inc +0 -0
  222. data/js/foundation/control/control.js +342 -0
  223. data/js/foundation/control/controldefaults/controldefaults.js +59 -0
  224. data/js/foundation/control/controldefaults/js.inc +0 -0
  225. data/js/foundation/control/dummyvalue/dummyvalue.js +50 -0
  226. data/js/foundation/control/dummyvalue/js.inc +0 -0
  227. data/js/foundation/control/dyncontrol/dyncontrol.js +494 -0
  228. data/js/foundation/control/dyncontrol/js.inc +0 -0
  229. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
  230. data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
  231. data/js/foundation/control/eventresponder/eventresponder.js +713 -0
  232. data/js/foundation/control/eventresponder/js.inc +0 -0
  233. data/js/foundation/control/js.inc +0 -0
  234. data/js/foundation/control/valueresponder/js.inc +0 -0
  235. data/js/foundation/control/valueresponder/valueresponder.js +77 -0
  236. data/js/foundation/geom/point/js.inc +0 -0
  237. data/js/foundation/geom/point/point.js +202 -0
  238. data/js/foundation/geom/rect/js.inc +0 -0
  239. data/js/foundation/geom/rect/rect.js +610 -0
  240. data/js/foundation/json_renderer/js.inc +0 -0
  241. data/js/foundation/json_renderer/json_renderer.js +231 -0
  242. data/js/foundation/system/js.inc +0 -0
  243. data/js/foundation/system/system.js +369 -0
  244. data/js/foundation/thememanager/js.inc +0 -0
  245. data/js/foundation/thememanager/thememanager.js +387 -0
  246. data/js/foundation/view/js.inc +0 -0
  247. data/js/foundation/view/markupview/js.inc +0 -0
  248. data/js/foundation/view/markupview/markupview.js +113 -0
  249. data/js/foundation/view/morphanimation/js.inc +0 -0
  250. data/js/foundation/view/morphanimation/morphanimation.js +236 -0
  251. data/js/foundation/view/view.js +1804 -0
  252. data/js/foundation/view/viewdefaults/js.inc +0 -0
  253. data/js/foundation/view/viewdefaults/viewdefaults.js +25 -0
  254. data/js/views/centerview/centerview.js +45 -0
  255. data/js/views/centerview/js.inc +0 -0
  256. data/js/views/inlineview/inlineview.js +14 -0
  257. data/js/views/inlineview/js.inc +0 -0
  258. data/js/views/scrollview/js.inc +0 -0
  259. data/js/views/scrollview/scrollview.js +39 -0
  260. data/lib/conf/default.rb +220 -0
  261. data/lib/conf/wizard.rb +303 -0
  262. data/lib/daemon/daemon.rb +293 -0
  263. data/lib/http/broker.rb +102 -0
  264. data/lib/http/rackup.rb +88 -0
  265. data/lib/http/request.rb +69 -0
  266. data/lib/http/response.rb +63 -0
  267. data/lib/plugins/gui_plugin.rb +129 -0
  268. data/lib/plugins/guiparser.rb +114 -0
  269. data/lib/plugins/plugin.rb +652 -0
  270. data/lib/plugins/plugin_plugins.rb +47 -0
  271. data/lib/plugins/plugin_sqlite_db.rb +72 -0
  272. data/lib/plugins/plugin_util.rb +96 -0
  273. data/lib/plugins/pluginmanager.rb +517 -0
  274. data/lib/plugins/servlet.rb +69 -0
  275. data/lib/session/msg.rb +291 -0
  276. data/lib/session/sessionmanager.rb +491 -0
  277. data/lib/session/sessionstorage.rb +314 -0
  278. data/lib/transporter/transporter.rb +254 -0
  279. data/lib/util/gzstring.rb +5 -0
  280. data/lib/values/hvalue.rb +323 -0
  281. data/lib/values/valuemanager.rb +152 -0
  282. data/plugins/client_pkg/client_pkg.rb +186 -0
  283. data/plugins/client_pkg/info.yaml +25 -0
  284. data/plugins/client_pkg/lib/client_pkg_build.rb +569 -0
  285. data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
  286. data/plugins/client_pkg/lib/client_pkg_serve.rb +210 -0
  287. data/plugins/client_pkg/log/build_log +0 -0
  288. data/plugins/index_html/img/loading.gif +0 -0
  289. data/plugins/index_html/img/riassence.gif +0 -0
  290. data/plugins/index_html/index_html.rb +150 -0
  291. data/plugins/index_html/tmpl/index.html +22 -0
  292. data/plugins/index_html/tmpl/startup_index.html +29 -0
  293. data/plugins/legacy/disabled +0 -0
  294. data/plugins/legacy/disabled- +0 -0
  295. data/plugins/legacy/info.yaml +22 -0
  296. data/plugins/legacy/legacy.rb +15 -0
  297. data/plugins/main/js/riassence_ns.js +87 -0
  298. data/plugins/main/main.rb +234 -0
  299. data/plugins/main/values.yaml +8 -0
  300. data/plugins/ticketservices/lib/common.rb +300 -0
  301. data/plugins/ticketservices/lib/favicon.rb +38 -0
  302. data/plugins/ticketservices/lib/file.rb +58 -0
  303. data/plugins/ticketservices/lib/img.rb +50 -0
  304. data/plugins/ticketservices/lib/objblob.rb +66 -0
  305. data/plugins/ticketservices/lib/rsrc.rb +34 -0
  306. data/plugins/ticketservices/lib/upload.rb +206 -0
  307. data/plugins/ticketservices/ticketservices.rb +268 -0
  308. data/var/db/.git_include +0 -0
  309. data/var/log/.git_include +0 -0
  310. data/var/run/.git_include +0 -0
  311. metadata +390 -0
File without changes
@@ -0,0 +1,182 @@
1
+ /* Riassence Framework
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
+ ** Data value synchonization container object.
11
+ **
12
+ ** +HValue+ is the default class to use for data syrchronization purposes.
13
+ ** It's smart enough to tell COMM.Values (Value Manager) that it has
14
+ ** been changed.
15
+ **
16
+ ** A single HValue instance can be bound to any number of responders, the
17
+ ** main client-side responder class is +HControl+.
18
+ **
19
+ ** When you change the value in one of the instances bound to the HValue
20
+ ** instances, all other instances get notified too and the server is also
21
+ ** notified and can be further bound on the server side to any number of
22
+ ** responders there too.
23
+ **
24
+ ** An instance constructed with "false" (Boolean) as its id is not reported
25
+ ** to the server. Such an instance can be used for client-side responder
26
+ ** synchronization.
27
+ **
28
+ ** Priority-wise, only the server can create a value id. If a value id is
29
+ ** created on the client, the server won't recognize nor accept it.
30
+ **
31
+ ** If a value is changed on the server, it overrides the changes on
32
+ ** the client, so no server-client lock is needed in this model.
33
+ **
34
+ ** = Instance variables:
35
+ ** +id+:: Value Id, used by the whole value management system to identify individual values.
36
+ ** +type+:: '[HValue]'
37
+ ** +value+:: The container/"payload" data value itself.
38
+ ** +views+:: A list of Components that uses this value.
39
+ ** Used for automatic value syncronization between responders.
40
+ ***/
41
+ HValue = HClass.extend({
42
+
43
+ /** = Description
44
+ * Constructs a value with the initial value +_value+ and the unique id +_id+.
45
+ *
46
+ * Only the server can create value id's, so use false when constructing
47
+ * from the client. A value with a false id is not reported to the server.
48
+ *
49
+ * = Parameters
50
+ * +_id+:: The source id (ideally set by server, should be unique)
51
+ * +_value+:: The initial data
52
+ *
53
+ **/
54
+ constructor: function(_id,_value){
55
+ this.id = _id;
56
+ this.value = _value;
57
+ this.views = [];
58
+ if(_id){
59
+ COMM.Values.add(_id,this);
60
+ }
61
+ },
62
+
63
+ /** Destructor method. Releases all bindings.
64
+ **/
65
+ die: function(){
66
+ for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
67
+ var _tryObj = this.views[_viewNum];
68
+ _tryObj.setValueObj( HDummyValue.nu() );
69
+ this.views.splice(_viewNum,1);
70
+ }
71
+ if(this.id){
72
+ COMM.Values.del(this.id);
73
+ }
74
+ },
75
+
76
+ /** = Description
77
+ * Replaces the data of the value.
78
+ *
79
+ * Extend this method, if you want client-side validation in the value itself.
80
+ *
81
+ * = Parameters
82
+ * +_value+:: The new data to replace the old data with.
83
+ *
84
+ **/
85
+ set: function(_value){
86
+ if(this.differs(_value)){
87
+ this.value = _value;
88
+ if(this.id){
89
+ COMM.Values.changed(this);
90
+ }
91
+ this.refresh();
92
+ }
93
+ },
94
+
95
+ /** Compares +_value+ with +self.value+.
96
+ * = Returns
97
+ * true or false, depending on the equality
98
+ **/
99
+ differs: function(_value){
100
+ return (COMM.Values.encode(_value) !== COMM.Values.encode(this.value));
101
+ },
102
+
103
+ /** = Description
104
+ * Setter for the server.
105
+ *
106
+ * Just as +self.set+, but doesn't re-notify the server about the change.
107
+ **/
108
+ s: function(_value){
109
+ this.value = _value;
110
+ this.refresh();
111
+ },
112
+
113
+ /** = Description
114
+ * Return the data, returns the +self.value+ instance variable
115
+ *
116
+ * Returns:
117
+ * The value instance variable (the data "payload")
118
+ **/
119
+ get: function(){
120
+ return this.value;
121
+ },
122
+
123
+ /** = Description
124
+ * Bind a responder to the value, use to attach HValues to responders derived from HControl.
125
+ *
126
+ * = Parameters
127
+ * +_responder+:: Any responder that is derived from HControl or any other
128
+ * class instance that implements HValueResponder or has
129
+ * compatible typing.
130
+ **/
131
+ bind: function(_responder){
132
+ if(_responder===undefined){
133
+ throw("HValueBindError: responder is undefined!");
134
+ }
135
+ if(this.views.indexOf(_responder)===-1){
136
+ this.views.push(_responder);
137
+ _responder.setValueObj( this );
138
+ }
139
+ },
140
+
141
+ /** = Description
142
+ * Release a responder bound to the HValue instance itself.
143
+ *
144
+ * = Parameters
145
+ * +_responder+:: Any responder that is derived from HControl or any other
146
+ * class instance that implements HValueResponder or has
147
+ * compatible typing.
148
+ **/
149
+ unbind: function(_responder){
150
+ for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
151
+ var _tryObj = this.views[_viewNum];
152
+ if(_tryObj===_responder){
153
+ this.views.splice(_viewNum,1);
154
+ return;
155
+ }
156
+ }
157
+ },
158
+
159
+ /** Alias of +self.unbind+, opposite of +bind+.
160
+ **/
161
+ release: function(_responder){
162
+ return this.unbind(_responder);
163
+ },
164
+
165
+ /** Calls the setValue method all responders bound to this HValue.
166
+ **/
167
+ refresh: function(){
168
+ for(var _viewNum=0;_viewNum<this.views.length;_viewNum++){
169
+ var _responder = this.views[_viewNum];
170
+ if(_responder.value !== this.value){
171
+ if(!_responder._valueIsBeingSet){
172
+ _responder._valueIsBeingSet=true;
173
+ _responder.setValue( this.value );
174
+ _responder._valueIsBeingSet=false;
175
+ }
176
+ }
177
+ }
178
+ }
179
+
180
+ });
181
+
182
+
File without changes
@@ -0,0 +1,138 @@
1
+ /* Riassence Framework
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
+ ** An interface to implement for classes that are members of +HValueMatrix+.
11
+ **
12
+ ** A HRadioButton is an example of an class that implements
13
+ ** the HValueMatrixInterface.
14
+ ***/
15
+ HValueMatrixInterface = {
16
+
17
+ componentBehaviour: ['view','control','matrix'],
18
+
19
+ /** = Description
20
+ * Standard +HControl+ constructor model.
21
+ * Passes parameters through to its base class's constructor,
22
+ * then calls +self.setValueMatrix+.
23
+ *
24
+ **/
25
+ constructor: function(_rect, _parent, _options) {
26
+ this.base(_rect, _parent, _options);
27
+ this.setValueMatrix();
28
+ },
29
+
30
+ /** = Description
31
+ * Binds itself to the parent's HValueMatrix instance.
32
+ *
33
+ * Creates a valueMatrix member into the parent of itself, if none is present yet.
34
+ * Sets the +self.value+ to true or false depending on the parent's valueMatrix value.
35
+ *
36
+ **/
37
+ setValueMatrix: function(){
38
+ if(this.parent['valueMatrix'] === undefined){
39
+ this.parent.valueMatrix = HValueMatrix.nu();
40
+ }
41
+ this.valueMatrixIndex = this.parent.valueMatrix.addControl(this);
42
+ },
43
+
44
+ /** Sets itself active using the parent's valueMatrix on the click event.
45
+ **/
46
+ click: function(){
47
+ if (this.parent.valueMatrix instanceof HValueMatrix) {
48
+ this.parent.valueMatrix.setValue( this.valueMatrixIndex );
49
+ }
50
+ },
51
+
52
+ /** The destructor makes sure +self+ is released from the parent's valueMatrix
53
+ * upon destruction.
54
+ **/
55
+ die: function(){
56
+ if(this['parent']){
57
+ if(this.parent['valueMatrix']){
58
+ this.parent.valueMatrix.release(this);
59
+ }
60
+ }
61
+ this.base();
62
+ }
63
+ };
64
+
65
+ // Alias for backwards compatibility.
66
+ HValueMatrixComponentExtension = HValueMatrixInterface;
67
+
68
+ /*** = Description
69
+ ** A HValueMatrix operates a number of components that operate on boolean
70
+ ** values, like the HRadioButton using a separate value for selecting the
71
+ ** index of selected items.
72
+ ***/
73
+ HValueMatrix = HClass.extend({
74
+
75
+ /** The constructor doesn't take parameters.
76
+ **/
77
+ constructor: function(){
78
+ // An array to hold member components
79
+ this.ctrls = [];
80
+ // The index of the value member chosen
81
+ this.value = -1;
82
+ this.valueObj = new HDummyValue();
83
+ },
84
+
85
+ /** Method for value interfaces, called by the HValue instance when bound.
86
+ **/
87
+ setValueObj: function(_valueObj){
88
+ this.valueObj = _valueObj;
89
+ this.setValue(_valueObj.value);
90
+ },
91
+
92
+ /** Method for value interfaces, the +_index+ is the
93
+ * index of the item to select.
94
+ **/
95
+ setValue: function(_index){
96
+ if( _index !== this.value ){
97
+ // Set the previous value object to false (reflects to its container component(s))
98
+ if(this.value !== -1){
99
+ if(this.ctrls[this.value]){
100
+ this.ctrls[this.value].setValue(false);
101
+ }
102
+ }
103
+ // Store the new index as the currently active value
104
+ this.value = _index;
105
+ if(_index !== -1){
106
+ // Set the new value object to true (reflects to its container component(s))
107
+ if(_index<this.ctrls.length){
108
+ this.ctrls[_index].setValue(true);
109
+ }
110
+ }
111
+ this.valueObj.set(_index);
112
+ }
113
+ },
114
+
115
+ /** A method for attaching a +HControl+ -derived class to the matrix.
116
+ **/
117
+ addControl: function(_ctrl) {
118
+ this.ctrls.push(_ctrl);
119
+ var _newIndex = this.ctrls.length-1;
120
+ if(_ctrl.value){
121
+ this.setValue(_newIndex);
122
+ }
123
+ return _newIndex;
124
+ },
125
+
126
+ /** A method for releasing a +HControl+ -derived class from the matrix.
127
+ **/
128
+ release: function(_ctrl) {
129
+ var _index = this.ctrls.indexOf(_ctrl);
130
+ if(_index !== -1){
131
+ this.ctrls.splice( _index, 1 );
132
+ if(_index === this.value){
133
+ this.setValue(-1);
134
+ }
135
+ }
136
+ }
137
+ });
138
+
@@ -0,0 +1,57 @@
1
+ /* Riassence Framework
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
+
10
+ /*** = Description
11
+ ** Simple button component, designed to be extended for any
12
+ ** actual functionality above regular HControl.
13
+ ** It's limited to 24px height by the default theme, because
14
+ ** it's much simpler to render that way.
15
+ ***/
16
+ HButton = HControl.extend({
17
+ componentName: 'button',
18
+ /** = Description
19
+ * setStyle function for button.
20
+ *
21
+ **/
22
+ setStyle: function(_name, _value){
23
+ ELEM.setStyle(this.markupElemIds.label,_name,_value);
24
+ return this;
25
+ }
26
+ });
27
+
28
+ /*** = Description
29
+ ** Simple HButton extension, operates on its value so it's useful
30
+ ** for sending button clicks to the server and the like.
31
+ ** For the value responder, reset the value to 0 when read to make
32
+ ** the button clickable again.
33
+ **
34
+ ** = Value states
35
+ ** +0+:: Enabled, clickable
36
+ ** +1+:: Disabled, clicked
37
+ ** +Other+:: Disabled, not clickable, not clicked
38
+ ***/
39
+ HClickValueButton = HButton.extend({
40
+ /** = Description
41
+ * Sets the button enabled if this.value is 0.
42
+ *
43
+ **/
44
+ refreshValue: function(){
45
+ this.setEnabled( this.value === 0 );
46
+ },
47
+ /** = Description
48
+ * Click method, sets the value to disabled if the button is enabled.
49
+ *
50
+ **/
51
+ click: function(){
52
+ if(this.enabled){
53
+ this.setValue(1);
54
+ }
55
+ }
56
+ });
57
+
File without changes
@@ -0,0 +1,89 @@
1
+
2
+ .button_control,
3
+ .button_edge_left,
4
+ .button_center,
5
+ .button_edge_right,
6
+ .button_label,
7
+ .button_antiselect {
8
+ position: absolute;
9
+ top: 0px; height: 24px;
10
+ }
11
+
12
+ .button_control {
13
+ left: 0px; right: 0px;
14
+ cursor: pointer;
15
+ }
16
+ .disabled .button_control {
17
+ cursor: default;
18
+ }
19
+
20
+ .button_edge_left,
21
+ .button_center,
22
+ .button_edge_right {
23
+ background-repeat: repeat-x;
24
+ background-image: #{this.getCssFilePath('button_parts1.png')};
25
+ }
26
+
27
+ .button_edge_left {
28
+ left: 0px; width: 24px;
29
+ background-position: 0px 0px;
30
+ }
31
+ .disabled > .button_control > .button_edge_left {
32
+ background-position: 0px -144px;
33
+ }
34
+ .enabled > .button_control:hover > .button_edge_left {
35
+ background-position: 0px -48px;
36
+ }
37
+ .enabled > .button_control:active > .button_edge_left {
38
+ background-position: 0px -96px;
39
+ }
40
+
41
+ .button_edge_right {
42
+ right: 0px; width: 24px;
43
+ background-position: -24px 0px;
44
+ }
45
+ .disabled > .button_control > .button_edge_right {
46
+ background-position: -24px -144px;
47
+ }
48
+ .enabled > .button_control:hover > .button_edge_right {
49
+ background-position: -24px -48px;
50
+ }
51
+ .enabled > .button_control:active > .button_edge_right {
52
+ background-position: -24px -96px;
53
+ }
54
+
55
+ .button_center {
56
+ left: 24px; right: 24px;
57
+ background-position: 0px -24px;
58
+ }
59
+ .disabled > .button_control > .button_center {
60
+ background-position: 0px -168px;
61
+ }
62
+ .enabled > .button_control:hover > .button_center {
63
+ background-position: 0px -72px;
64
+ }
65
+ .enabled > .button_control:active > .button_center {
66
+ background-position: 0px -120px;
67
+ }
68
+
69
+ .button_label {
70
+ left: 6px; right: 6px; top: 2px;
71
+ height: 20px; line-height: 21px;
72
+ text-align: center; vertical-align: middle;
73
+ font-family: Arial, sans-serif;
74
+ font-size: 12px; font-weight: bold;
75
+ color: #333;
76
+ }
77
+ .disabled > .button_control > .button_label {
78
+ color: #999;
79
+ }
80
+ .enabled > .button_control:hover > .button_label {
81
+ color: #000;
82
+ }
83
+ .enabled > .button_control:active > .button_label {
84
+ color: #000;
85
+ }
86
+
87
+ .button_antiselect {
88
+ left: 0px; right: 0px;
89
+ }