qooxview 1.9.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (605) hide show
  1. checksums.yaml +7 -0
  2. data/.project +13 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +5 -0
  5. data/Gemfile.lock +89 -0
  6. data/LICENSE.txt +619 -0
  7. data/README.md +31 -0
  8. data/Rakefile +2 -0
  9. data/VERSIONS +12 -0
  10. data/lib/qooxview/additions.rb +161 -0
  11. data/lib/qooxview/config_yaml.rb +42 -0
  12. data/lib/qooxview/entity.rb +698 -0
  13. data/lib/qooxview/frontend/1build_generate +14 -0
  14. data/lib/qooxview/frontend/2src_generate +4 -0
  15. data/lib/qooxview/frontend/Manifest.json +34 -0
  16. data/lib/qooxview/frontend/README +19 -0
  17. data/lib/qooxview/frontend/UploadMgr/.project +11 -0
  18. data/lib/qooxview/frontend/UploadMgr/Manifest.json +34 -0
  19. data/lib/qooxview/frontend/UploadMgr/config.json +77 -0
  20. data/lib/qooxview/frontend/UploadMgr/demo/default/Manifest.json +34 -0
  21. data/lib/qooxview/frontend/UploadMgr/demo/default/config.json +84 -0
  22. data/lib/qooxview/frontend/UploadMgr/demo/default/generate.py +72 -0
  23. data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/Application.js +224 -0
  24. data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/simulation/DemoSimulation.js +44 -0
  25. data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/test/DemoTest.js +55 -0
  26. data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Appearance.js +18 -0
  27. data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Color.js +18 -0
  28. data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Decoration.js +18 -0
  29. data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Font.js +18 -0
  30. data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Theme.js +21 -0
  31. data/lib/qooxview/frontend/UploadMgr/demo/default/source/index.html +9 -0
  32. data/lib/qooxview/frontend/UploadMgr/demo/default/source/resource/uploadmgr/demo/test.png +0 -0
  33. data/lib/qooxview/frontend/UploadMgr/demo/default/source/script/uploadmgr.demo.d88b4fb45db4.js +1 -0
  34. data/lib/qooxview/frontend/UploadMgr/demo/default/source/script/uploadmgr.demo.js +211 -0
  35. data/lib/qooxview/frontend/UploadMgr/demo/default/source/translation/readme.txt +3 -0
  36. data/lib/qooxview/frontend/UploadMgr/generate.py +72 -0
  37. data/lib/qooxview/frontend/UploadMgr/server/LICENSE.TXT +3 -0
  38. data/lib/qooxview/frontend/UploadMgr/server/README.txt +3 -0
  39. data/lib/qooxview/frontend/UploadMgr/server/java/com/zenesis/qx/upload/DemoUploadServlet.java +176 -0
  40. data/lib/qooxview/frontend/UploadMgr/server/perl.cgi +62 -0
  41. data/lib/qooxview/frontend/UploadMgr/server/php.php +116 -0
  42. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/AbstractHandler.js +278 -0
  43. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/File.js +178 -0
  44. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/FormHandler.js +192 -0
  45. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/InputElement.js +68 -0
  46. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/MParameters.js +67 -0
  47. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/MUploadButton.js +40 -0
  48. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/UploadButton.js +35 -0
  49. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/UploadMgr.js +301 -0
  50. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/UploadToolbarButton.js +35 -0
  51. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/XhrHandler.js +176 -0
  52. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/simulation/DemoSimulation.js +44 -0
  53. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/test/DemoTest.js +55 -0
  54. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Appearance.js +18 -0
  55. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Color.js +18 -0
  56. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Decoration.js +18 -0
  57. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Font.js +18 -0
  58. data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Theme.js +21 -0
  59. data/lib/qooxview/frontend/UploadMgr/source/index.html +9 -0
  60. data/lib/qooxview/frontend/UploadMgr/source/resource/com/zenesis/qx/upload/banner-bg.png +0 -0
  61. data/lib/qooxview/frontend/UploadMgr/source/resource/com/zenesis/qx/upload/banner.png +0 -0
  62. data/lib/qooxview/frontend/UploadMgr/source/resource/com/zenesis/qx/upload/logo.gif +0 -0
  63. data/lib/qooxview/frontend/UploadMgr/source/resource/com/zenesis/qx/upload/test.png +0 -0
  64. data/lib/qooxview/frontend/UploadMgr/source/translation/readme.txt +3 -0
  65. data/lib/qooxview/frontend/build/index.html +11 -0
  66. data/lib/qooxview/frontend/build/resource/frontend/test.png +0 -0
  67. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/app-header.png +0 -0
  68. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/down-invert.png +0 -0
  69. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/down-small-invert.png +0 -0
  70. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/down-small.png +0 -0
  71. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/down.png +0 -0
  72. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/forward.png +0 -0
  73. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/left-invert.png +0 -0
  74. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/left.png +0 -0
  75. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/rewind.png +0 -0
  76. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/right-invert.png +0 -0
  77. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/right.png +0 -0
  78. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/up-invert.png +0 -0
  79. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/up-small.png +0 -0
  80. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/up.png +0 -0
  81. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows-combined.png +0 -0
  82. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/button-lr-combined.png +0 -0
  83. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/button-tb-combined.png +0 -0
  84. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/checkradio-combined.png +0 -0
  85. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector/brightness-field.png +0 -0
  86. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector/brightness-handle.gif +0 -0
  87. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector/huesaturation-field.jpg +0 -0
  88. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector/huesaturation-handle.gif +0 -0
  89. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector-combined.gif +0 -0
  90. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors/alias.gif +0 -0
  91. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors/copy.gif +0 -0
  92. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors/move.gif +0 -0
  93. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors/nodrop.gif +0 -0
  94. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors-combined.gif +0 -0
  95. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-b.png +0 -0
  96. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-bl.png +0 -0
  97. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-br.png +0 -0
  98. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-c.png +0 -0
  99. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-b.png +0 -0
  100. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-bl.png +0 -0
  101. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-br.png +0 -0
  102. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-c.png +0 -0
  103. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-b.png +0 -0
  104. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-bl.png +0 -0
  105. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-br.png +0 -0
  106. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-c.png +0 -0
  107. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-l.png +0 -0
  108. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-r.png +0 -0
  109. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-t.png +0 -0
  110. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-tl.png +0 -0
  111. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-tr.png +0 -0
  112. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused.png +0 -0
  113. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-l.png +0 -0
  114. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-r.png +0 -0
  115. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-t.png +0 -0
  116. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-tl.png +0 -0
  117. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-tr.png +0 -0
  118. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked.png +0 -0
  119. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-b.png +0 -0
  120. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-bl.png +0 -0
  121. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-br.png +0 -0
  122. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-c.png +0 -0
  123. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-l.png +0 -0
  124. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-r.png +0 -0
  125. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-t.png +0 -0
  126. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-tl.png +0 -0
  127. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-tr.png +0 -0
  128. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled.png +0 -0
  129. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-b.png +0 -0
  130. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-bl.png +0 -0
  131. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-br.png +0 -0
  132. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-c.png +0 -0
  133. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-l.png +0 -0
  134. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-r.png +0 -0
  135. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-t.png +0 -0
  136. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-tl.png +0 -0
  137. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-tr.png +0 -0
  138. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused.png +0 -0
  139. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-b.png +0 -0
  140. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-bl.png +0 -0
  141. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-br.png +0 -0
  142. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-c.png +0 -0
  143. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-l.png +0 -0
  144. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-r.png +0 -0
  145. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-t.png +0 -0
  146. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-tl.png +0 -0
  147. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-tr.png +0 -0
  148. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered.png +0 -0
  149. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-l.png +0 -0
  150. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-b.png +0 -0
  151. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-bl.png +0 -0
  152. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-br.png +0 -0
  153. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-c.png +0 -0
  154. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-b.png +0 -0
  155. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-bl.png +0 -0
  156. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-br.png +0 -0
  157. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-c.png +0 -0
  158. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-l.png +0 -0
  159. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-r.png +0 -0
  160. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-t.png +0 -0
  161. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-tl.png +0 -0
  162. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-tr.png +0 -0
  163. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused.png +0 -0
  164. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-l.png +0 -0
  165. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-r.png +0 -0
  166. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-t.png +0 -0
  167. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-tl.png +0 -0
  168. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-tr.png +0 -0
  169. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected.png +0 -0
  170. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-b.png +0 -0
  171. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-bl.png +0 -0
  172. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-br.png +0 -0
  173. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-c.png +0 -0
  174. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-l.png +0 -0
  175. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-r.png +0 -0
  176. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-t.png +0 -0
  177. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-tl.png +0 -0
  178. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-tr.png +0 -0
  179. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed.png +0 -0
  180. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-r.png +0 -0
  181. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-t.png +0 -0
  182. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-tl.png +0 -0
  183. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-tr.png +0 -0
  184. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button.png +0 -0
  185. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-disabled.png +0 -0
  186. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-focused-invalid.png +0 -0
  187. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-focused.png +0 -0
  188. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-hovered-invalid.png +0 -0
  189. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-hovered.png +0 -0
  190. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-invalid.png +0 -0
  191. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-pressed-invalid.png +0 -0
  192. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-pressed.png +0 -0
  193. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked.png +0 -0
  194. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-disabled.png +0 -0
  195. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-focused-invalid.png +0 -0
  196. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-focused.png +0 -0
  197. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-hovered-invalid.png +0 -0
  198. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-hovered.png +0 -0
  199. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-invalid.png +0 -0
  200. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-pressed-invalid.png +0 -0
  201. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-pressed.png +0 -0
  202. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-disabled.png +0 -0
  203. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-focused-invalid.png +0 -0
  204. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-focused.png +0 -0
  205. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-hovered-invalid.png +0 -0
  206. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-hovered.png +0 -0
  207. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-invalid.png +0 -0
  208. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined.png +0 -0
  209. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox.png +0 -0
  210. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checked-disabled.png +0 -0
  211. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checked.png +0 -0
  212. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/input-focused.png +0 -0
  213. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/input.png +0 -0
  214. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-disabled.png +0 -0
  215. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-focused-invalid.png +0 -0
  216. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-focused.png +0 -0
  217. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-hovered-invalid.png +0 -0
  218. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-hovered.png +0 -0
  219. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-invalid.png +0 -0
  220. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-pressed-invalid.png +0 -0
  221. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-pressed.png +0 -0
  222. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked.png +0 -0
  223. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-disabled.png +0 -0
  224. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-focused-invalid.png +0 -0
  225. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-focused.png +0 -0
  226. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-hovered-invalid.png +0 -0
  227. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-hovered.png +0 -0
  228. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-invalid.png +0 -0
  229. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-pressed-invalid.png +0 -0
  230. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-pressed.png +0 -0
  231. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton.png +0 -0
  232. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-arrow-right.png +0 -0
  233. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-arrow.png +0 -0
  234. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-b.png +0 -0
  235. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-bl.png +0 -0
  236. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-br.png +0 -0
  237. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-c.png +0 -0
  238. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-l.png +0 -0
  239. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-r.png +0 -0
  240. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-t.png +0 -0
  241. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-tl.png +0 -0
  242. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-tr.png +0 -0
  243. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error.png +0 -0
  244. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/undetermined-disabled.png +0 -0
  245. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/undetermined.png +0 -0
  246. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/group-item.png +0 -0
  247. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-b.png +0 -0
  248. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-bl.png +0 -0
  249. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-br.png +0 -0
  250. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-c.png +0 -0
  251. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-l.png +0 -0
  252. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-r.png +0 -0
  253. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-t.png +0 -0
  254. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-tl.png +0 -0
  255. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-tr.png +0 -0
  256. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox.png +0 -0
  257. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox-lr-combined.png +0 -0
  258. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox-tb-combined.png +0 -0
  259. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/background.png +0 -0
  260. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/bar-background.png +0 -0
  261. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/checkbox-invert.gif +0 -0
  262. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/checkbox.gif +0 -0
  263. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/radiobutton-invert.gif +0 -0
  264. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/radiobutton.gif +0 -0
  265. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu-background-combined.png +0 -0
  266. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu-checkradio-combined.gif +0 -0
  267. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-b.png +0 -0
  268. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-bl.png +0 -0
  269. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-br.png +0 -0
  270. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-c.png +0 -0
  271. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-l.png +0 -0
  272. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-r.png +0 -0
  273. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-t.png +0 -0
  274. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-tl.png +0 -0
  275. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-tr.png +0 -0
  276. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane.png +0 -0
  277. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane-lr-combined.png +0 -0
  278. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane-tb-combined.png +0 -0
  279. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-bg-horizontal.png +0 -0
  280. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-bg-pressed-horizontal.png +0 -0
  281. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-bg-pressed-vertical.png +0 -0
  282. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-bg-vertical.png +0 -0
  283. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-button-bg-horizontal.png +0 -0
  284. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-button-bg-vertical.png +0 -0
  285. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-down.png +0 -0
  286. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-left.png +0 -0
  287. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-right.png +0 -0
  288. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-up.png +0 -0
  289. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/slider-knob-background.png +0 -0
  290. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar-combined.png +0 -0
  291. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/selection.png +0 -0
  292. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-b.png +0 -0
  293. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-bl.png +0 -0
  294. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-br.png +0 -0
  295. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-c.png +0 -0
  296. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-l.png +0 -0
  297. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-r.png +0 -0
  298. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-b.png +0 -0
  299. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-bl.png +0 -0
  300. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-br.png +0 -0
  301. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-c.png +0 -0
  302. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-l.png +0 -0
  303. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-r.png +0 -0
  304. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-t.png +0 -0
  305. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-tl.png +0 -0
  306. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-tr.png +0 -0
  307. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small.png +0 -0
  308. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-t.png +0 -0
  309. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-tl.png +0 -0
  310. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-tr.png +0 -0
  311. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow.png +0 -0
  312. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow-lr-combined.png +0 -0
  313. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow-small-lr-combined.png +0 -0
  314. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow-small-tb-combined.png +0 -0
  315. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow-tb-combined.png +0 -0
  316. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/splitpane/knob-horizontal.png +0 -0
  317. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/splitpane/knob-vertical.png +0 -0
  318. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/splitpane-knobs-combined.png +0 -0
  319. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/ascending.png +0 -0
  320. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/boolean-false.png +0 -0
  321. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/boolean-true.png +0 -0
  322. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/descending.png +0 -0
  323. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/header-cell.png +0 -0
  324. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/select-column-order.png +0 -0
  325. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table-combined.png +0 -0
  326. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-b.png +0 -0
  327. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-bl.png +0 -0
  328. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-br.png +0 -0
  329. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-c.png +0 -0
  330. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-l.png +0 -0
  331. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-r.png +0 -0
  332. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-t.png +0 -0
  333. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-tl.png +0 -0
  334. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-tr.png +0 -0
  335. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active.png +0 -0
  336. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-b.png +0 -0
  337. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-bl.png +0 -0
  338. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-br.png +0 -0
  339. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-c.png +0 -0
  340. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-l.png +0 -0
  341. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-r.png +0 -0
  342. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-t.png +0 -0
  343. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-tl.png +0 -0
  344. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-tr.png +0 -0
  345. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive.png +0 -0
  346. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-b.png +0 -0
  347. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-bl.png +0 -0
  348. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-br.png +0 -0
  349. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-c.png +0 -0
  350. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-l.png +0 -0
  351. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-r.png +0 -0
  352. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-t.png +0 -0
  353. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-tl.png +0 -0
  354. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-tr.png +0 -0
  355. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active.png +0 -0
  356. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-b.png +0 -0
  357. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-bl.png +0 -0
  358. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-br.png +0 -0
  359. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-c.png +0 -0
  360. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-l.png +0 -0
  361. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-r.png +0 -0
  362. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-t.png +0 -0
  363. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-tl.png +0 -0
  364. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-tr.png +0 -0
  365. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive.png +0 -0
  366. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-b.png +0 -0
  367. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-bl.png +0 -0
  368. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-br.png +0 -0
  369. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-c.png +0 -0
  370. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-l.png +0 -0
  371. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-r.png +0 -0
  372. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-t.png +0 -0
  373. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-tl.png +0 -0
  374. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-tr.png +0 -0
  375. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active.png +0 -0
  376. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-b.png +0 -0
  377. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-bl.png +0 -0
  378. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-br.png +0 -0
  379. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-c.png +0 -0
  380. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-l.png +0 -0
  381. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-r.png +0 -0
  382. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-t.png +0 -0
  383. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-tl.png +0 -0
  384. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-tr.png +0 -0
  385. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive.png +0 -0
  386. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-b.png +0 -0
  387. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-bl.png +0 -0
  388. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-br.png +0 -0
  389. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-c.png +0 -0
  390. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-l.png +0 -0
  391. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-r.png +0 -0
  392. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-t.png +0 -0
  393. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-tl.png +0 -0
  394. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-tr.png +0 -0
  395. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active.png +0 -0
  396. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-b.png +0 -0
  397. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-bl.png +0 -0
  398. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-br.png +0 -0
  399. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-c.png +0 -0
  400. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-l.png +0 -0
  401. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-r.png +0 -0
  402. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-t.png +0 -0
  403. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-tl.png +0 -0
  404. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-tr.png +0 -0
  405. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive.png +0 -0
  406. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-b.png +0 -0
  407. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-bl.png +0 -0
  408. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-br.png +0 -0
  409. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-c.png +0 -0
  410. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-l.png +0 -0
  411. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-r.png +0 -0
  412. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-t.png +0 -0
  413. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-tl.png +0 -0
  414. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-tr.png +0 -0
  415. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane.png +0 -0
  416. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-active-lr-combined.png +0 -0
  417. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-active-tb-combined.png +0 -0
  418. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-inactive-b-combined.png +0 -0
  419. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-inactive-lr-combined.png +0 -0
  420. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-inactive-t-combined.png +0 -0
  421. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-active-lr-combined.png +0 -0
  422. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-active-tb-combined.png +0 -0
  423. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-inactive-b-combined.png +0 -0
  424. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-inactive-lr-combined.png +0 -0
  425. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-inactive-t-combined.png +0 -0
  426. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-active-lr-combined.png +0 -0
  427. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-active-tb-combined.png +0 -0
  428. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-inactive-b-combined.png +0 -0
  429. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-inactive-lr-combined.png +0 -0
  430. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-inactive-t-combined.png +0 -0
  431. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-active-lr-combined.png +0 -0
  432. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-active-tb-combined.png +0 -0
  433. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-inactive-b-combined.png +0 -0
  434. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-inactive-lr-combined.png +0 -0
  435. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-inactive-t-combined.png +0 -0
  436. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-pane-lr-combined.png +0 -0
  437. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-pane-tb-combined.png +0 -0
  438. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar/toolbar-gradient-blue.png +0 -0
  439. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar/toolbar-gradient.png +0 -0
  440. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar/toolbar-handle-knob.gif +0 -0
  441. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar/toolbar-part.gif +0 -0
  442. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar-combined.png +0 -0
  443. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tooltip-error-lr-combined.png +0 -0
  444. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tooltip-error-tb-combined.png +0 -0
  445. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree/closed-selected.png +0 -0
  446. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree/closed.png +0 -0
  447. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree/open-selected.png +0 -0
  448. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree/open.png +0 -0
  449. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree-combined.png +0 -0
  450. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-b.png +0 -0
  451. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-bl.png +0 -0
  452. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-br.png +0 -0
  453. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-c.png +0 -0
  454. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-l.png +0 -0
  455. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-r.png +0 -0
  456. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-t.png +0 -0
  457. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-tl.png +0 -0
  458. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-tr.png +0 -0
  459. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active.png +0 -0
  460. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-b.png +0 -0
  461. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-bl.png +0 -0
  462. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-br.png +0 -0
  463. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-c.png +0 -0
  464. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-l.png +0 -0
  465. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-r.png +0 -0
  466. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-t.png +0 -0
  467. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-tl.png +0 -0
  468. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-tr.png +0 -0
  469. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive.png +0 -0
  470. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/close-active-hovered.png +0 -0
  471. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/close-active.png +0 -0
  472. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/close-inactive.png +0 -0
  473. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/maximize-active-hovered.png +0 -0
  474. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/maximize-active.png +0 -0
  475. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/maximize-inactive.png +0 -0
  476. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/minimize-active-hovered.png +0 -0
  477. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/minimize-active.png +0 -0
  478. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/minimize-inactive.png +0 -0
  479. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/restore-active-hovered.png +0 -0
  480. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/restore-active.png +0 -0
  481. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/restore-inactive.png +0 -0
  482. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-b.png +0 -0
  483. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-bl.png +0 -0
  484. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-br.png +0 -0
  485. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-c.png +0 -0
  486. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-l.png +0 -0
  487. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-r.png +0 -0
  488. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-t.png +0 -0
  489. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-tl.png +0 -0
  490. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-tr.png +0 -0
  491. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar.png +0 -0
  492. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-buttons-combined.png +0 -0
  493. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-lr-active-combined.png +0 -0
  494. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-lr-inactive-combined.png +0 -0
  495. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-tb-active-combined.png +0 -0
  496. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-tb-inactive-combined.png +0 -0
  497. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-statusbar-lr-combined.png +0 -0
  498. data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-statusbar-tb-combined.png +0 -0
  499. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/actions/dialog-cancel.png +0 -0
  500. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/actions/dialog-ok.png +0 -0
  501. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/actions/view-refresh.png +0 -0
  502. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/actions/window-close.png +0 -0
  503. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/apps/office-calendar.png +0 -0
  504. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/apps/utilities-color-chooser.png +0 -0
  505. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/mimetypes/office-document.png +0 -0
  506. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/places/folder-open.png +0 -0
  507. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/places/folder.png +0 -0
  508. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/22/mimetypes/office-document.png +0 -0
  509. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/22/places/folder-open.png +0 -0
  510. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/22/places/folder.png +0 -0
  511. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/32/mimetypes/office-document.png +0 -0
  512. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/32/places/folder-open.png +0 -0
  513. data/lib/qooxview/frontend/build/resource/qx/icon/Tango/32/places/folder.png +0 -0
  514. data/lib/qooxview/frontend/build/resource/qx/static/blank.gif +0 -0
  515. data/lib/qooxview/frontend/build/resource/qx/static/blank.png +0 -0
  516. data/lib/qooxview/frontend/build/script/frontend.js +213 -0
  517. data/lib/qooxview/frontend/config.json +58 -0
  518. data/lib/qooxview/frontend/generate.py +149 -0
  519. data/lib/qooxview/frontend/mklink +2 -0
  520. data/lib/qooxview/frontend/readme.txt +11 -0
  521. data/lib/qooxview/frontend/source/class/frontend/Application.js +84 -0
  522. data/lib/qooxview/frontend/source/class/frontend/LAYOUT +120 -0
  523. data/lib/qooxview/frontend/source/class/frontend/Lib/Fields.js +1486 -0
  524. data/lib/qooxview/frontend/source/class/frontend/Lib/RPC.js +104 -0
  525. data/lib/qooxview/frontend/source/class/frontend/Lib/TimerF.js +63 -0
  526. data/lib/qooxview/frontend/source/class/frontend/Views/Form.js +150 -0
  527. data/lib/qooxview/frontend/source/class/frontend/Views/Ltab.js +633 -0
  528. data/lib/qooxview/frontend/source/class/frontend/__init__.js +6 -0
  529. data/lib/qooxview/frontend/source/class/frontend/globals.js +51 -0
  530. data/lib/qooxview/frontend/source/class/frontend/simulation/DemoSimulation.js +42 -0
  531. data/lib/qooxview/frontend/source/class/frontend/test/DemoTest.js +55 -0
  532. data/lib/qooxview/frontend/source/class/frontend/theme/Appearance.js +18 -0
  533. data/lib/qooxview/frontend/source/class/frontend/theme/Color.js +18 -0
  534. data/lib/qooxview/frontend/source/class/frontend/theme/Decoration.js +18 -0
  535. data/lib/qooxview/frontend/source/class/frontend/theme/Font.js +18 -0
  536. data/lib/qooxview/frontend/source/class/frontend/theme/Theme.js +21 -0
  537. data/lib/qooxview/frontend/source/index.html +11 -0
  538. data/lib/qooxview/frontend/source/resource/frontend/test.png +0 -0
  539. data/lib/qooxview/frontend/source/translation/readme.txt +3 -0
  540. data/lib/qooxview/helpers/config_base.rb +264 -0
  541. data/lib/qooxview/helpers/icc.rb +222 -0
  542. data/lib/qooxview/helpers/make_steps.rb +77 -0
  543. data/lib/qooxview/helpers/migration_version.rb +18 -0
  544. data/lib/qooxview/helpers/open_print.rb +286 -0
  545. data/lib/qooxview/helpers/permission.rb +146 -0
  546. data/lib/qooxview/helpers/qoox_parser.rb +54 -0
  547. data/lib/qooxview/helpers/session.rb +68 -0
  548. data/lib/qooxview/helpers/static.rb +23 -0
  549. data/lib/qooxview/helpers/upload_files.rb +27 -0
  550. data/lib/qooxview/helpers/vtlist_pane.rb +158 -0
  551. data/lib/qooxview/helpers/welcome.rb +55 -0
  552. data/lib/qooxview/qooxview.rb +175 -0
  553. data/lib/qooxview/rpcqooxdoo.rb +395 -0
  554. data/lib/qooxview/storage_handler.rb +455 -0
  555. data/lib/qooxview/storage_type.rb +129 -0
  556. data/lib/qooxview/storages/csv.rb +170 -0
  557. data/lib/qooxview/storages/ldap.rb +238 -0
  558. data/lib/qooxview/storages/sqlite.rb +198 -0
  559. data/lib/qooxview/value.rb +202 -0
  560. data/lib/qooxview/version.rb +3 -0
  561. data/lib/qooxview/view.rb +904 -0
  562. data/lib/qooxview.rb +83 -0
  563. data/qooxview.gemspec +50 -0
  564. data/test/benchmark_creation.rb +37 -0
  565. data/test/config.yaml +36 -0
  566. data/test/entities/config.rb +33 -0
  567. data/test/entities/course.rb +28 -0
  568. data/test/entities/databases.rb +17 -0
  569. data/test/entities/doubleCase.rb +12 -0
  570. data/test/entities/dummies.rb +24 -0
  571. data/test/entities/inventory.rb +6 -0
  572. data/test/entities/needs.rb +20 -0
  573. data/test/entities/person.rb +73 -0
  574. data/test/file_binary.bin +0 -0
  575. data/test/files/print_formulas.ods +0 -0
  576. data/test/files/print_formulas_2.ods +0 -0
  577. data/test/files/student_card.odg +0 -0
  578. data/test/gettext.po +24 -0
  579. data/test/gettext.pot +0 -0
  580. data/test/messages.mo +0 -0
  581. data/test/po/fr/LC_MESSAGES/gettext.mo +0 -0
  582. data/test/qooxdoo-layout-frontend.js +49 -0
  583. data/test/qv_configbase.rb +98 -0
  584. data/test/qv_entity.rb +271 -0
  585. data/test/qv_gettext.rb +28 -0
  586. data/test/qv_helpers.rb +173 -0
  587. data/test/qv_icc.rb +60 -0
  588. data/test/qv_migration.rb +130 -0
  589. data/test/qv_permission.rb +34 -0
  590. data/test/qv_print.rb +73 -0
  591. data/test/qv_session.rb +29 -0
  592. data/test/qv_sqlite.rb +73 -0
  593. data/test/qv_store_csv.rb +86 -0
  594. data/test/qv_stype.rb +41 -0
  595. data/test/qv_view.rb +204 -0
  596. data/test/st_dummy.rb +30 -0
  597. data/test/test.rb +49 -0
  598. data/test/views/aview.rb +24 -0
  599. data/test/views/bview.rb +10 -0
  600. data/test/views/configviews.rb +19 -0
  601. data/test/views/courseshow.rb +11 -0
  602. data/test/views/cview.rb +22 -0
  603. data/test/views/login.rb +15 -0
  604. data/test/views/print.rb +10 -0
  605. metadata +1068 -0
@@ -0,0 +1,904 @@
1
+ =begin rdoc
2
+ Holds all general methods to present the views. According to the name, a tree
3
+ is built, which is then presented in the web-frontend
4
+
5
+ Upon inheritance of View, the class is put into an array and as such will
6
+ be presented if the rights are correct.
7
+
8
+ The class should override the layout-method to define it's own layout.
9
+ In there the view describes how the windows shall be handled, using
10
+ VBoxes, HBoxes, entry-fields and some special class-variables:
11
+ - @update - whether to call the instance the first time it's shown
12
+ - @auto_update - at what time-interval the instance should be updated, in seconds
13
+ - @auto_update_send_values - whether the form sends the values of the fields to the
14
+ update-method
15
+ - @data_class - the main responsible for that view - might be empty
16
+
17
+ There are three main groups of methods:
18
+ - gui_* are used to place the elements
19
+ - show_* refer to the elements being placed
20
+ - rpc_* are called whenever something important happens on the frontend
21
+ =end
22
+
23
+ # TODO: transform all show_* to be used like the value_* from Entities
24
+
25
+ class Object
26
+ def deep_clone
27
+ if instance_variable_defined? :@deep_cloning and @deep_cloning
28
+ return @deep_cloning_obj
29
+ end
30
+ @deep_cloning_obj = clone
31
+ @deep_cloning_obj.instance_variables.each do |var|
32
+ val = @deep_cloning_obj.instance_variable_get(var)
33
+ begin
34
+ @deep_cloning = true
35
+ val = val.deep_clone
36
+ rescue TypeError
37
+ next
38
+ ensure
39
+ @deep_cloning = false
40
+ end
41
+ @deep_cloning_obj.instance_variable_set(var, val)
42
+ end
43
+ deep_cloning_obj = @deep_cloning_obj
44
+ @deep_cloning_obj = nil
45
+ deep_cloning_obj
46
+ end
47
+ end
48
+
49
+
50
+ class String
51
+ def tab_parts
52
+ res = self.match(/^([A-Z][a-z]*)([A-Z]*[a-z]*)/)
53
+ return res ? res[1, 2] : ['', '']
54
+ end
55
+
56
+ def tab_name
57
+ self.tab_parts[0]
58
+ end
59
+
60
+ def sub_name
61
+ self.tab_parts[1]
62
+ end
63
+
64
+ def main_tab
65
+ "#{tab_name}Tabs"
66
+ end
67
+ end
68
+
69
+
70
+ class View < RPCQooxdooService
71
+ attr_reader :visible, :configured, :order, :name, :is_tabs, :name_tab
72
+
73
+ @@list = []
74
+ @@tabs = []
75
+
76
+ def initialize
77
+ @visible = true
78
+ @order = 50
79
+ @name = self.class.name
80
+ @debug = false
81
+ @is_tabs = false
82
+ @name_tab = nil
83
+ @main_tab = nil
84
+
85
+ if @name != 'View'
86
+ @@list.push self
87
+ if @name =~ /.*Tabs$/
88
+ @name_tab = @name.tab_name
89
+ @is_tabs = true
90
+ @@tabs.push @name_tab
91
+ else
92
+ @main_tab = @name.main_tab
93
+ end
94
+ dputs(4) { "Initializing #{self.class.name}" }
95
+ dputs(5) { "Total list of view-classes: #{@@list.join('::')}" }
96
+
97
+ @layout = [[]]
98
+ @actual = []
99
+ @update = false
100
+ @update_layout = true
101
+ @auto_update = 0
102
+ @auto_update_async = 0
103
+ @auto_update_send_values = true
104
+ @configured = true
105
+ @functions_need = []
106
+ @values_need = {}
107
+ @functions_reject = []
108
+ @data_class = Entities.service(@name.tab_name.pluralize_simple)
109
+ @static = Statics.get_hash("View.#{@name}")
110
+
111
+ if Entities.has_entity?(dc = @name.sub(/^[A-Z][a-z_-]*/, ''))
112
+ dputs(3) { "Setting data-class to #{dc} for #{@name}" }
113
+ set_data_class(dc.pluralize_simple)
114
+ end
115
+
116
+ # Fetch the layout of the view
117
+ if @is_tabs
118
+ gui_hboxg do
119
+ gui_vbox :nogroup do
120
+ layout
121
+ end
122
+ gui_tabs @name
123
+ end
124
+ else
125
+ layout
126
+ end
127
+
128
+ # Check for config of this special class
129
+ dputs(5) { "config is #{$config.inspect}" }
130
+ if get_config(false, :Views, self.class.name)
131
+ @config = $config[:Views][self.class.name.to_sym]
132
+ dputs(3) { "Writing config #{@config.inspect} for #{self.class.name}" }
133
+ @config.each { |k, v|
134
+ begin
135
+ instance_variable_set("@#{k.to_s}", eval(v))
136
+ rescue Exception => e
137
+ instance_variable_set("@#{k.to_s}", v)
138
+ end
139
+ self.class.send(:attr_reader, k)
140
+ dputs(3) { "Setting #{k} = #{v}}" }
141
+ }
142
+ else
143
+ @config = nil
144
+ end
145
+
146
+ # Clean up eventual left-overs from a simple (or very complicated) layout
147
+ while @layout.size > 1
148
+ dputs(5) { 'Cleaning up' }
149
+ do_container_end
150
+ end
151
+ dputs(5) { "Layout is #{@layout.inspect}" }
152
+
153
+ update_configured
154
+ end
155
+ end
156
+
157
+ # Override this class to define your own layout. Use eventually
158
+ # set_data_class
159
+ def layout
160
+ end
161
+
162
+ # This method lets you set the data_class of your view. Later on this
163
+ # will be automated by taking the first part of the view
164
+ def set_data_class(d_c)
165
+ dputs(3) { "Getting pointer #{d_c} for class #{@data_class}" }
166
+ @data_class = Entities.send(d_c)
167
+ end
168
+
169
+ # Helper for the containers
170
+ def do_container_start(tags)
171
+ [*tags].each { |t|
172
+ @layout.push []
173
+ @actual.push t
174
+ }
175
+ end
176
+
177
+ # Finish a GUI-container
178
+ def do_container_end
179
+ @layout[-2].push [@actual.pop, @layout.pop]
180
+ end
181
+
182
+ # Handle a whole GUI-container of different kind:
183
+ # - vbox - starts a vertical box
184
+ # - hbox - starts a horizontal box
185
+ # - fields - starts a group of elements like buttons, labels and input-boxes
186
+ # - group - draws a gray line around the container
187
+ # - tabs - start a tabs-in-tab
188
+ def do_container(tags, b)
189
+ # The actual depth has to be kept, because the "b.call" might add additional depths,
190
+ # for example a "fields, group" in case of an element.
191
+ depth = @actual.length
192
+ do_container_start(tags)
193
+ b.call
194
+ # Now we can undo all elements, even those perhaps added by "b.call" - close nicely
195
+ dputs(4) { "Undoing #{@actual.length - depth} levels" }
196
+ (@actual.length - depth).times { do_container_end }
197
+ end
198
+
199
+ def do_box(btype, arg, b)
200
+ if @actual[-1] == 'fields'
201
+ dputs(0) { "Can't put a VBox or a HBox in a field!" }
202
+ exit
203
+ end
204
+ do_container(arg == :nogroup ? [btype] : ['group', btype], b)
205
+ end
206
+
207
+ def do_boxg(btype, arg, b)
208
+ if @actual[-1] == 'fields'
209
+ dputs(0) { "Can't put a VBox or a HBox in a field!" }
210
+ exit
211
+ end
212
+ do_container(arg == :nogroup ? [btype] : ['groupw', btype], b)
213
+ end
214
+
215
+ # A vertical box, takes :nogroup as an argument, so it doesn't do
216
+ # a "group" around it, and as such doesn't draw a gray line
217
+ def gui_vbox(arg = nil, &b)
218
+ do_box('vbox', arg, b)
219
+ end
220
+
221
+ # A vertical box, takes :nogroup as an argument, so it doesn't do
222
+ # a "group" around it, and as such doesn't draw a gray line
223
+ # Different that vbox, it grows
224
+ def gui_vboxg(arg = nil, &b)
225
+ do_box('vboxg', arg, b)
226
+ end
227
+
228
+ # A vertical box, takes :nogroup as an argument, so it doesn't do
229
+ # a "group" around it, and as such doesn't draw a gray line
230
+ # Different that vboxg, it grows but with limit to it's parent
231
+ def gui_vboxgl(arg = nil, &b)
232
+ do_box('vboxgl', arg, b)
233
+ end
234
+
235
+ # A horizontal box, takes :nogroup as an argument, so it doesn't do
236
+ # a "group" around it, and as such doesn't draw a gray line
237
+ def gui_hbox(arg = nil, &b)
238
+ do_box('hbox', arg, b)
239
+ end
240
+
241
+ # A horizontal box, takes :nogroup as an argument, so it doesn't do
242
+ # a "group" around it, and as such doesn't draw a gray line
243
+ # Different that hbox, it grows
244
+ def gui_hboxg(arg = nil, &b)
245
+ do_boxg('hboxg', arg, b)
246
+ end
247
+
248
+ def gui_grow(&b)
249
+ do_container('grow', b)
250
+ end
251
+
252
+ def gui_window(arg = nil, &b)
253
+ do_container(["window:#{arg.to_s}"], b)
254
+ end
255
+
256
+ # Contains fields of same kind
257
+ def gui_fields(arg = nil, &b)
258
+ if arg == :noflex
259
+ do_container('fields_noflex', b)
260
+ else
261
+ do_container('fields', b)
262
+ end
263
+ end
264
+
265
+ # Draws a gray border around
266
+ def gui_group(&b)
267
+ do_container('group', b)
268
+ end
269
+
270
+ # Draws a gray border around and allows height-fill
271
+ def gui_shrink(&b)
272
+ do_container('shrink', b)
273
+ end
274
+
275
+ # Presents a tabs-in-tab
276
+ def gui_tabs(parent)
277
+ do_container_start(['tabs', parent])
278
+ do_container_end
279
+ end
280
+
281
+ def show_in_field(a, args={}) # :nodoc:
282
+ if not @actual.last =~ /^fields/
283
+ do_container_start(%w( group fields ))
284
+ end
285
+ dputs(4) { "we'll show: #{a.inspect}" }
286
+ [a].flatten.each { |v|
287
+ dputs(4) { "Working on: #{v.dtype.inspect}: #{a.inspect}" }
288
+ if v.dtype == 'entity'
289
+ dputs(3) { "Showing entity #{v.inspect}" }
290
+ end
291
+ value = v.deep_clone
292
+ value.args.merge!(args)
293
+ @layout.last.push value
294
+ }
295
+ end
296
+
297
+ # Shows an entity in different formats
298
+ # - name - the internal name
299
+ # - entity - what entity to show
300
+ # - gui - how to display it (drop)
301
+ # - field - what field of the entity to display
302
+ def show_entity(name, entity, gui, field, args)
303
+ show_add(['entity', entity], [name, gui, field, args])
304
+ end
305
+
306
+ # Shows an existing field
307
+ def show_field(name, args = nil)
308
+ @data_class.blocks.each { |k, v|
309
+ dputs(4) { "#{k}:#{v}" }
310
+ fields = v.select { |f| f.name == name }
311
+ if fields.length > 0
312
+ dputs(4) { fields.inspect }
313
+ show_in_field fields
314
+ end
315
+ }
316
+ args and show_arg(name, args)
317
+ end
318
+
319
+ def show_field_ro(name, args = {})
320
+ show_field(name, {:ro => true}.merge(args))
321
+ end
322
+
323
+ # Shows an input-box for an existing field that will call a "match_by_" method
324
+ # if something is entered
325
+ def show_find(name)
326
+ a = []
327
+ @data_class.blocks.each { |k, v|
328
+ a.push(*v.select { |b| b.name == name }.collect { |e|
329
+ Value.simple(e.dtype, e.name, 'id')
330
+ })
331
+ }
332
+ show_in_field a
333
+ end
334
+
335
+ # Shows a button, takes care about placing it correctly. Takes also
336
+ # multiple buttons as arguments
337
+ def show_button(*buttons)
338
+ do_container_end if @actual.last == 'fields'
339
+ do_container(buttons.length > 1 ? 'hbox' : 'vbox',
340
+ proc {
341
+ buttons.each { |b|
342
+ # @layout.last.push [ :button, b, b, nil ]
343
+ @layout.last.push Value.simple(:button, b)
344
+ }
345
+ }
346
+ )
347
+ do_container_end if @actual.last == 'group'
348
+ end
349
+
350
+ def show_split_button(name, menu)
351
+ dputs(4) { "Adding a split-button #{name} with menu #{menu.inspect}" }
352
+ do_container_end if @actual.last == 'fields'
353
+ do_container('vbox', proc {
354
+ @layout.last.push Value.new([:split_button],
355
+ [name, {:menu => menu}])
356
+ }
357
+ )
358
+ do_container_end if @actual.last == 'group'
359
+ end
360
+
361
+ # Adds a new, general item
362
+ def show_add(cmds, args)
363
+ value = Value.new(cmds, args)
364
+
365
+ case value.dtype
366
+ when 'block'
367
+ # Shows a block as defined in an Entities - useful if the same
368
+ # values will be shown in different views
369
+ show_in_field(@data_class.blocks[value.name], value.args)
370
+
371
+ when 'block_ro'
372
+ # as "block", but all elements are read-only
373
+ show_in_field(@data_class.blocks[value.name], value.args)
374
+
375
+ when 'find_text'
376
+ # Shows an input-box for any data needed, calling "match_by_" if something is
377
+ # entered
378
+ show_in_field [Value.simple('id_text', name)]
379
+
380
+ when 'htmls'
381
+ # HTML-fields aren't under a "field", but a "group" is enough
382
+ do_container_start 'group'
383
+ @layout.last.push value
384
+ do_container_end
385
+
386
+ else
387
+ # Simple types that pass directly
388
+ show_in_field [value]
389
+ end
390
+ end
391
+
392
+ # Adds arguments to an already existing field
393
+ def show_arg(val, args, lay = @layout)
394
+ lay.each { |l|
395
+ case l.class.name
396
+ when 'Array'
397
+ show_arg(val, args, l)
398
+ when 'Value'
399
+ if l.name == val
400
+ l.args.merge! args
401
+ end
402
+ end
403
+ }
404
+ end
405
+
406
+ # Returns a list of the available views for a given user
407
+ def self.rpc_list(session)
408
+ View.reply(:list, View.list(session)) +
409
+ (session.s_data._sub_tabs_only ? View.reply(:bar_position, 'top') : [])
410
+ end
411
+
412
+ def rpc_list(session)
413
+ dputs(5) { 'rpc_list' }
414
+ View.rpc_list(session)
415
+ end
416
+
417
+ def list(session)
418
+ View.list(session)
419
+ end
420
+
421
+ def self.list(session, tabs = nil) # :nodoc:
422
+ if not session
423
+ dputs(2) { 'No session given, returning empty' }
424
+ return {:views => []}
425
+ end
426
+ dputs(4) { "Found user #{session.owner.inspect} for session_id #{session_id}" }
427
+ views = []
428
+ dputs(5) { @@list.inspect }
429
+ @@list.each { |l|
430
+ shown = l.visible
431
+ shown &&= session.can_view(l.class.name)
432
+ shown &&= l.configured
433
+ if shown
434
+ dputs(5) { "Found view #{l.class.name}" }
435
+ views.push(l)
436
+ end
437
+ }
438
+
439
+ sub_tabs_only = false
440
+ if not tabs
441
+ # First test if we only have sub-tabs (they'll be shown seperatly)
442
+ main_tabs = views.collect { |v|
443
+ v.name.tab_name
444
+ }.uniq
445
+ dputs(4) { "Main_tabs are #{main_tabs.inspect}" }
446
+ # Check for lonely tabs
447
+ main_tabs.each { |t|
448
+ vlen = views.select { |v|
449
+ dputs(5) { "We have #{v.name}, #{v.name.tab_name} and #{t}" }
450
+ v.name.tab_name == t
451
+ }.length
452
+ dputs(5) { "Calculating doubles for #{t}, found #{vlen}" }
453
+ if vlen == 1
454
+ dputs(3) { "Deleting tab #{t}" }
455
+ views.delete_if { |v| v.name.tab_name == t and v.name.sub_name == 'Tabs' }
456
+ end
457
+ }
458
+ if main_tabs.length == 1
459
+ # There is only one main_tab, we have to clean it
460
+ views.delete_if { |v| v.name == "#{main_tabs[0]}Tabs" }
461
+ sub_tabs_only = true
462
+ end
463
+ end
464
+
465
+ if not sub_tabs_only
466
+ dputs(3) { "Views before: #{views.each { |v| v.name }}" }
467
+ views.delete_if { |l|
468
+ tab_name = l.name.tab_name
469
+ is_tabs_or_tab = @@tabs.index(tab_name)
470
+ dputs(3) { "#{l.class} is visible? #{l.visible} - " +
471
+ "configured? #{l.configured} - order is #{l.order}" }
472
+ #dputs( 3 ){ "tabs: #{tabs.inspect} - tab_name: #{tab_name}" }
473
+ # Either we ask specifically for all sub-tabs, but then we don't show the main-tab
474
+ # or we don't ask for tabs and
475
+ # are the main-tab or
476
+ # are not tabs or tab at all
477
+ not ((tab_name == tabs and not l.is_tabs) or
478
+ (not tabs and (l.is_tabs or not is_tabs_or_tab)))
479
+ }
480
+ dputs(3) { "Views after: #{views.each { |v| v.name }}" }
481
+ end
482
+
483
+ session.s_data._sub_tabs_only = sub_tabs_only
484
+ self.list_views(views)
485
+ end
486
+
487
+ def self.list_views(list = @@list)
488
+ {:views => list.select { |l| l.name != 'Welcome' }.sort { |s, t|
489
+ #dputs( 3 ){ "#{s.order} - #{t.order}" }
490
+ #dputs( 4 ){ "#{s.name} - #{t.name}" }
491
+ order = s.order.to_i <=> t.order.to_i
492
+ if order == 0
493
+ order = s.name <=> t.name
494
+ end
495
+ order
496
+ }.collect { |c| [c.name, GetText._(c.name)] }
497
+ }
498
+ end
499
+
500
+ def rpc_tabs_list_choice(session, args)
501
+ dputs(4) { "args is #{args.inspect}" }
502
+ ret = []
503
+ if args.class == Hash
504
+ args.keys.sort.each { |k|
505
+ if args[k].class == Array
506
+ dputs(3) { "Calling rpc_list_choice with #{k.inspect}" }
507
+ ret += rpc_list_choice(session, k, args).to_a
508
+ end
509
+ }
510
+ end
511
+ dputs(3) { "ret is #{ret.inspect}" }
512
+ ret
513
+ end
514
+
515
+ def rpc_tabs_show(session, args)
516
+ rpc_show(session) +
517
+ rpc_tabs_list_choice(session, args)
518
+ end
519
+
520
+ def rpc_tabs_update_view(session, args)
521
+ rpc_update_view(session) +
522
+ rpc_tabs_list_choice(session, args)
523
+ end
524
+
525
+ # Gives the GUI-elements for the active view
526
+ def rpc_show(session)
527
+ # user = Entities.Persons.match_by_session_id( session_id )
528
+ # TODO: test for permission
529
+
530
+ dputs(5) { 'entered rpc_show' }
531
+ reply('show',
532
+ {:layout => layout_eval,
533
+ :data_class => @data_class.class.to_s,
534
+ :view_class => self.class.to_s}) +
535
+ rpc_update_view(session)
536
+ end
537
+
538
+ def rpc_list_tabs(session)
539
+ dputs(3) { 'Showing tabs for @name' }
540
+ reply('list', View.list(session, @name_tab))
541
+ end
542
+
543
+ def update_layout(session)
544
+ return [] if not @layout
545
+ dputs(3) { 'Updating layout' }
546
+ ret = []
547
+ layout_recurse(@layout).each { |l|
548
+ case l.dtype
549
+ when /list|select|entity/
550
+ if not l.args.has_key?(:lazy)
551
+ values = l.to_a[3][:list_values]
552
+ dputs(3) { "Here comes element #{l.name} with new list-value #{values.inspect}" }
553
+ ret += reply(:empty_update, {l.name => values})
554
+ end
555
+ end
556
+ }
557
+ dputs(3) { "Reply is #{ret.inspect}" }
558
+ ret
559
+ end
560
+
561
+ # Updates the layout of the form, especially the lists
562
+ def rpc_update_view(session, args = nil)
563
+ # reply( 'empty', '*' ) +
564
+ # reply( 'update', layout_recurse( @layout ))
565
+ ret = []
566
+ if @update_layout
567
+ dputs(3) { 'updating layout' }
568
+ ret += update_layout(session)
569
+ end
570
+ if @auto_update > 0
571
+ dputs(3) { 'auto-updating' }
572
+ ret += reply('auto_update',
573
+ @auto_update * (@auto_update_send_values ? -1 : 1))
574
+ end
575
+ if @auto_update_async > 0
576
+ dputs(3) { 'auto-updating async' }
577
+ ret += reply('auto_update_async',
578
+ @auto_update_async * (@auto_update_send_values ? -1 : 1))
579
+ end
580
+ if @debug
581
+ dputs(4) { 'debugging' }
582
+ ret += reply('debug', 1)
583
+ end
584
+ if @update
585
+ update = rpc_update(session)
586
+ dputs(3) { "@update #{update.inspect}" }
587
+ update and ret += update
588
+ end
589
+ if args
590
+ dputs(3) { "Args: #{args.inspect}" }
591
+ if args.class == Array
592
+ args.flatten!(1)
593
+ end
594
+ ret += rpc_autofill(session, args)
595
+ end
596
+ dputs(3) { "showing: #{ret.inspect}" }
597
+ ret
598
+ end
599
+
600
+ def rpc_autofill(session, args)
601
+ dputs(3) { "args is #{args.inspect}" }
602
+ ret = []
603
+ args.keys.each { |a|
604
+ if l = layout_find(a)
605
+ dputs(3) { "found layout for #{a}" }
606
+ ret += reply(:update, a => args[a])
607
+ end
608
+ }
609
+ ret
610
+ end
611
+
612
+ def call_named(type, session, name, *args)
613
+ rpc_name = "rpc_#{type}_#{name}"
614
+ dputs(3) { "Searching for #{rpc_name}" }
615
+ if self.respond_to? rpc_name
616
+ dputs(3) { "Found #{rpc_name} and calling it with #{args.inspect}" }
617
+ return self.send(rpc_name, session, args[0])
618
+ else
619
+ dputs(0) { "Error: Nobody listens to #{rpc_name} in " +
620
+ "#{self.class.name.to_s} - ignoring" }
621
+ return []
622
+ end
623
+ end
624
+
625
+ # Call the children's rpc_button_name, if present
626
+ def rpc_button(session, name, *args)
627
+ call_named('button', session, name, *args)
628
+ end
629
+
630
+ # Call the children's rpc_button_name, if present
631
+ def rpc_table(session, name, *args)
632
+ call_named('table', session, name, *args)
633
+ end
634
+
635
+ # Call the children's rpc_callback_name, if present
636
+ def rpc_callback(session, name, *args)
637
+ call_named('callback', session, name, *args)
638
+ end
639
+
640
+ # Upon choice of an entry in the list
641
+ def rpc_list_choice(session, name, data)
642
+ if respond_to? "rpc_list_choice_#{name}"
643
+ dputs(3) { "Calling rpc_list_choice-#{name}" }
644
+ return send("rpc_list_choice_#{name}", session, data)
645
+ elsif @main_tab
646
+ dputs(3) { "Calling #{@main_tab}.rpc_list_choice" }
647
+ mt = View.method_missing(@main_tab)
648
+ if mt.respond_to? :rpc_list_choice_sub
649
+ mt.rpc_list_choice_sub(session, name, data)
650
+ else
651
+ dputs(0) { "Error: #{@main_tab} doesn't listen to rpc_list_choice_sub and " +
652
+ "neither does #{@name} listen to rpc_list_choice_#{name.to_s}" }
653
+ end
654
+ else
655
+ dputs(0) { 'Error: Nobody listens to ' +
656
+ "rpc_list_choice_#{name.to_s} in #{self.class.name.to_s} " +
657
+ "- #{data.inspect}" }
658
+ end
659
+ end
660
+
661
+ # Send the current values that are displayed
662
+ def rpc_update(session)
663
+ dputs(4) { 'rpc_update' }
664
+ reply('update', update(session))
665
+ end
666
+
667
+ def rpc_update_async(session)
668
+ rpc_update(session)
669
+ end
670
+
671
+ # Returns the data for the fields as a hash
672
+ def update(session)
673
+ dputs(4) { 'update' }
674
+ end
675
+
676
+ # Make a flat array containing the elements of the layout
677
+ def layout_recurse(lay = @layout) # :nodoc:
678
+ return [] if not lay
679
+ ret = []
680
+ lay.each { |l|
681
+ if l.class == Array
682
+ ret.push(*layout_recurse(l))
683
+ elsif l.class == Value
684
+ ret.push l
685
+ end
686
+ }
687
+ ret
688
+ end
689
+
690
+ def layout_find(name)
691
+ layout_recurse.find { |l| l.name.to_s == name.to_s }
692
+ end
693
+
694
+ def layout_eval(lay = @layout[0][0].dup)
695
+ lay.collect { |l|
696
+ if l.class == Value
697
+ l.to_a
698
+ elsif l.class == Array
699
+ layout_eval(l)
700
+ else
701
+ l
702
+ end
703
+ }
704
+ end
705
+
706
+ def update_form_data(data)
707
+ rep = {}
708
+ not data and return rep
709
+
710
+ d = data.to_hash
711
+ dputs(5) { "update #{d.inspect} with layout #{@layout.inspect} - " +
712
+ "#{layout_recurse(@layout).inspect}" }
713
+ layout_recurse(@layout).each { |l|
714
+ if d.has_key?(l.name)
715
+ rep[l.name] = d[l.name]
716
+ end
717
+ }
718
+ dputs(4) { "form_data #{rep.inspect}" }
719
+ reply(:update, rep)
720
+ end
721
+
722
+ # Packs a command and a data in a hash. Multiple commands can be put together:
723
+ # reply( 'update', { :hello => "hello world" } ) +
724
+ # reply( 'self-update', 10 )
725
+ def reply(cmd, data = nil)
726
+ View.reply(cmd, data)
727
+ end
728
+
729
+ def self.reply(cmd, data = nil)
730
+ [{:cmd => cmd, :data => data}]
731
+ end
732
+
733
+ def reply_visible(visible, element)
734
+ View.reply_visible(visible, element)
735
+ end
736
+
737
+ def self.reply_visible(visible, element)
738
+ View.reply(visible ? :unhide : :hide, element)
739
+ end
740
+
741
+ def reply_table_columns_visible(visible, element)
742
+ View.reply_table_columns_visible(visible, element)
743
+ end
744
+
745
+ def self.reply_table_columns_visible(visible, element)
746
+ View.reply(visible ? :table_columns_show : :table_columns_hide, element)
747
+ end
748
+
749
+ def reply_one_two(choice, one, two)
750
+ View.reply_one_two(choice, one, two)
751
+ end
752
+
753
+ def self.reply_one_two(choice, one, two)
754
+ View.reply_visible(choice, one) +
755
+ View.reply_visible(!choice, two)
756
+ end
757
+
758
+ def reply_show_hide(show, hide)
759
+ View.reply_show_hide(show, hide)
760
+ end
761
+
762
+ def self.reply_show_hide(show, hide)
763
+ self.reply_one_two(true, show, hide)
764
+ end
765
+
766
+ # Standard button which just saves the entered data
767
+ def rpc_button_save(session, data)
768
+ reply(:update, @data_class.save_data(data))
769
+ end
770
+
771
+ # Standard button that cleans all fields
772
+ def rpc_button_new(session, data)
773
+ reply(:empty)
774
+ end
775
+
776
+ def rpc_button_close(session, data)
777
+ reply(:window_hide)
778
+ end
779
+
780
+ # Standard search-field action to take
781
+ def rpc_find(session, field, data)
782
+ rep = @data_class.find(field, data)
783
+ if not rep
784
+ rep = {"#{field}" => data}
785
+ end
786
+ reply('update', rep) + rpc_update(session)
787
+ end
788
+
789
+ # Filters data from own Entity, so that these fields are not
790
+ # overwritten
791
+ def filter_from_entity(data)
792
+ dputs(3) { data.inspect }
793
+ if data and data.keys.length > 0
794
+ data_only_keys = data.keys.select { |k|
795
+ !@data_class.has_field? k
796
+ }
797
+ if data_only_keys
798
+ data_only = data_only_keys.collect { |k|
799
+ [k, data[k]]
800
+ }
801
+ else
802
+ return Hash.new
803
+ end
804
+ Hash[*data_only.flatten(1)]
805
+ else
806
+ Hash.new
807
+ end
808
+ end
809
+
810
+ def method_missing(cmd, *args)
811
+ cmd_str = cmd.to_s
812
+ dputs(5) { "Method missing: #{cmd}" }
813
+ case cmd_str
814
+ when /^show_/
815
+ cmds = cmd_str.split('_')[1..-1]
816
+ show_add(cmds, args)
817
+ else
818
+ super(cmd, args)
819
+ end
820
+ end
821
+
822
+ def respond_to?(cmd)
823
+ return super(cmd)
824
+ end
825
+
826
+ # Used to access subclasses defined in RPCQooxdoo
827
+ def self.method_missing(m, *args)
828
+ dputs(3) { "Searching #{m} with #{args.inspect}" }
829
+ @@services_hash["View.#{m}"]
830
+ end
831
+
832
+ # Gets the request and converts the ids of the Entites back to
833
+ # the objects they once were - which makes life much more easy...
834
+ def parse_request(method, session, params)
835
+ #dputs_func
836
+ dputs(3) { "Parsing #{params.inspect}" }
837
+ return params if params.length == 0
838
+ layout_recurse.each { |l|
839
+ if params.last && params.last.has_key?(l.name.to_s)
840
+ value = params.last[l.name.to_s]
841
+ rep = l.parse(value)
842
+ if rep
843
+ dputs(3) { "Converted #{value} to #{rep.to_s}" }
844
+ params.last[l.name.to_s] = rep
845
+ end
846
+ end
847
+ }
848
+ return params
849
+ end
850
+
851
+ def parse_reply(method, session, request)
852
+ rep = self.send(method, session, *request)
853
+ rep
854
+ end
855
+
856
+ def get_tab_members
857
+ dputs(2) { "Getting tab members of #{@name} with #{@@list.inspect}" }
858
+ @@list.select { |l|
859
+ l.name =~ /^#{@name}/
860
+ }.collect { |l|
861
+ dputs(2) { 'Collected ' + l.name }
862
+ l.name
863
+ }
864
+ end
865
+
866
+ def update_configured
867
+ if defined? ConfigBase
868
+ functions = ConfigBase.get_functions
869
+ @configured = true
870
+ @functions_need.each { |f|
871
+ if not functions.index(f)
872
+ dputs(3) { "Rejecting because #{f} is missing" }
873
+ @configured = false
874
+ end
875
+ }
876
+ @functions_reject.each { |f|
877
+ if functions.index(f)
878
+ dputs(3) { "Rejecting because #{f} is here" }
879
+ @configured = false
880
+ end
881
+ }
882
+ @values_need.keys.each { |k|
883
+ v = @values_need[k]
884
+ dputs(3) { "Testing whether #{k.inspect} has #{v.inspect}" }
885
+ if data = ConfigBase.data_get(k)
886
+ dputs(3) { "Found data #{data.inspect}" }
887
+ if data.to_s != v.to_s
888
+ @configured = false
889
+ end
890
+ else
891
+ @configured = false
892
+ end
893
+ }
894
+ dputs(3) { "Configured for #{self.name} is #{@configured}" }
895
+ end
896
+ end
897
+
898
+ def self.update_configured_all
899
+ @@list.each { |l|
900
+ dputs(4) { "Testing for view #{l.name}" }
901
+ l.update_configured
902
+ }
903
+ end
904
+ end