qooxview 1.9.9

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