qooxview 1.9.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.project +13 -0
- data/.ruby-version +1 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +89 -0
- data/LICENSE.txt +619 -0
- data/README.md +31 -0
- data/Rakefile +2 -0
- data/VERSIONS +12 -0
- data/lib/qooxview/additions.rb +161 -0
- data/lib/qooxview/config_yaml.rb +42 -0
- data/lib/qooxview/entity.rb +698 -0
- data/lib/qooxview/frontend/1build_generate +14 -0
- data/lib/qooxview/frontend/2src_generate +4 -0
- data/lib/qooxview/frontend/Manifest.json +34 -0
- data/lib/qooxview/frontend/README +19 -0
- data/lib/qooxview/frontend/UploadMgr/.project +11 -0
- data/lib/qooxview/frontend/UploadMgr/Manifest.json +34 -0
- data/lib/qooxview/frontend/UploadMgr/config.json +77 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/Manifest.json +34 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/config.json +84 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/generate.py +72 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/Application.js +224 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/simulation/DemoSimulation.js +44 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/test/DemoTest.js +55 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Appearance.js +18 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Color.js +18 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Decoration.js +18 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Font.js +18 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/class/uploadmgr/demo/theme/Theme.js +21 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/index.html +9 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/resource/uploadmgr/demo/test.png +0 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/script/uploadmgr.demo.d88b4fb45db4.js +1 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/script/uploadmgr.demo.js +211 -0
- data/lib/qooxview/frontend/UploadMgr/demo/default/source/translation/readme.txt +3 -0
- data/lib/qooxview/frontend/UploadMgr/generate.py +72 -0
- data/lib/qooxview/frontend/UploadMgr/server/LICENSE.TXT +3 -0
- data/lib/qooxview/frontend/UploadMgr/server/README.txt +3 -0
- data/lib/qooxview/frontend/UploadMgr/server/java/com/zenesis/qx/upload/DemoUploadServlet.java +176 -0
- data/lib/qooxview/frontend/UploadMgr/server/perl.cgi +62 -0
- data/lib/qooxview/frontend/UploadMgr/server/php.php +116 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/AbstractHandler.js +278 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/File.js +178 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/FormHandler.js +192 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/InputElement.js +68 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/MParameters.js +67 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/MUploadButton.js +40 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/UploadButton.js +35 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/UploadMgr.js +301 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/UploadToolbarButton.js +35 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/XhrHandler.js +176 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/simulation/DemoSimulation.js +44 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/test/DemoTest.js +55 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Appearance.js +18 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Color.js +18 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Decoration.js +18 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Font.js +18 -0
- data/lib/qooxview/frontend/UploadMgr/source/class/com/zenesis/qx/upload/theme/Theme.js +21 -0
- data/lib/qooxview/frontend/UploadMgr/source/index.html +9 -0
- data/lib/qooxview/frontend/UploadMgr/source/resource/com/zenesis/qx/upload/banner-bg.png +0 -0
- data/lib/qooxview/frontend/UploadMgr/source/resource/com/zenesis/qx/upload/banner.png +0 -0
- data/lib/qooxview/frontend/UploadMgr/source/resource/com/zenesis/qx/upload/logo.gif +0 -0
- data/lib/qooxview/frontend/UploadMgr/source/resource/com/zenesis/qx/upload/test.png +0 -0
- data/lib/qooxview/frontend/UploadMgr/source/translation/readme.txt +3 -0
- data/lib/qooxview/frontend/build/index.html +11 -0
- data/lib/qooxview/frontend/build/resource/frontend/test.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/app-header.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/down-invert.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/down-small-invert.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/down-small.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/down.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/forward.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/left-invert.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/left.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/rewind.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/right-invert.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/right.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/up-invert.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/up-small.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows/up.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/arrows-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/button-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/button-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/checkradio-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector/brightness-field.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector/brightness-handle.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector/huesaturation-field.jpg +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector/huesaturation-handle.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/colorselector-combined.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors/alias.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors/copy.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors/move.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors/nodrop.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/cursors-combined.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-checked.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-disabled.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-preselected.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-pressed.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/button.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-disabled.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-focused-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-hovered-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-pressed-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked-pressed.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-checked.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-disabled.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-focused-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-hovered-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-pressed-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-pressed.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-disabled.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-focused-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-hovered-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox-undetermined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checkbox.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checked-disabled.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/checked.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/input-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/input.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-disabled.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-focused-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-hovered-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-pressed-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked-pressed.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-checked.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-disabled.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-focused-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-focused.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-hovered-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-pressed-invalid.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton-pressed.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/radiobutton.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-arrow-right.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-arrow.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/tooltip-error.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/undetermined-disabled.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/form/undetermined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/group-item.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox/groupbox.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/groupbox-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/background.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/bar-background.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/checkbox-invert.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/checkbox.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/radiobutton-invert.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu/radiobutton.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu-background-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/menu-checkradio-combined.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane/pane.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/pane-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-bg-horizontal.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-bg-pressed-horizontal.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-bg-pressed-vertical.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-bg-vertical.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-button-bg-horizontal.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-button-bg-vertical.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-down.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-left.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-right.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/scrollbar-up.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar/slider-knob-background.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/scrollbar-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/selection.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-small.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow/shadow.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow-small-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow-small-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/shadow-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/splitpane/knob-horizontal.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/splitpane/knob-vertical.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/splitpane-knobs-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/ascending.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/boolean-false.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/boolean-true.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/descending.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/header-cell.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table/select-column-order.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/table-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-bottom-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-left-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-right-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tab-button-top-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview/tabview-pane.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-active-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-active-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-inactive-b-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-inactive-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-bottom-inactive-t-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-active-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-active-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-inactive-b-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-inactive-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-left-inactive-t-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-active-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-active-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-inactive-b-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-inactive-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-right-inactive-t-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-active-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-active-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-inactive-b-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-inactive-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-button-top-inactive-t-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-pane-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tabview-pane-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar/toolbar-gradient-blue.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar/toolbar-gradient.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar/toolbar-handle-knob.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar/toolbar-part.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/toolbar-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tooltip-error-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tooltip-error-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree/closed-selected.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree/closed.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree/open-selected.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree/open.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/tree-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/captionbar-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/close-active-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/close-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/close-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/maximize-active-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/maximize-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/maximize-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/minimize-active-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/minimize-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/minimize-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/restore-active-hovered.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/restore-active.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/restore-inactive.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-b.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-bl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-br.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-c.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-l.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-r.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-t.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-tl.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar-tr.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window/statusbar.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-buttons-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-lr-active-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-lr-inactive-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-tb-active-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-captionbar-tb-inactive-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-statusbar-lr-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/decoration/Modern/window-statusbar-tb-combined.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/actions/dialog-cancel.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/actions/dialog-ok.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/actions/view-refresh.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/actions/window-close.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/apps/office-calendar.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/apps/utilities-color-chooser.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/mimetypes/office-document.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/places/folder-open.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/16/places/folder.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/22/mimetypes/office-document.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/22/places/folder-open.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/22/places/folder.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/32/mimetypes/office-document.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/32/places/folder-open.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/icon/Tango/32/places/folder.png +0 -0
- data/lib/qooxview/frontend/build/resource/qx/static/blank.gif +0 -0
- data/lib/qooxview/frontend/build/resource/qx/static/blank.png +0 -0
- data/lib/qooxview/frontend/build/script/frontend.js +213 -0
- data/lib/qooxview/frontend/config.json +58 -0
- data/lib/qooxview/frontend/generate.py +149 -0
- data/lib/qooxview/frontend/mklink +2 -0
- data/lib/qooxview/frontend/readme.txt +11 -0
- data/lib/qooxview/frontend/source/class/frontend/Application.js +84 -0
- data/lib/qooxview/frontend/source/class/frontend/LAYOUT +120 -0
- data/lib/qooxview/frontend/source/class/frontend/Lib/Fields.js +1486 -0
- data/lib/qooxview/frontend/source/class/frontend/Lib/RPC.js +104 -0
- data/lib/qooxview/frontend/source/class/frontend/Lib/TimerF.js +63 -0
- data/lib/qooxview/frontend/source/class/frontend/Views/Form.js +150 -0
- data/lib/qooxview/frontend/source/class/frontend/Views/Ltab.js +633 -0
- data/lib/qooxview/frontend/source/class/frontend/__init__.js +6 -0
- data/lib/qooxview/frontend/source/class/frontend/globals.js +51 -0
- data/lib/qooxview/frontend/source/class/frontend/simulation/DemoSimulation.js +42 -0
- data/lib/qooxview/frontend/source/class/frontend/test/DemoTest.js +55 -0
- data/lib/qooxview/frontend/source/class/frontend/theme/Appearance.js +18 -0
- data/lib/qooxview/frontend/source/class/frontend/theme/Color.js +18 -0
- data/lib/qooxview/frontend/source/class/frontend/theme/Decoration.js +18 -0
- data/lib/qooxview/frontend/source/class/frontend/theme/Font.js +18 -0
- data/lib/qooxview/frontend/source/class/frontend/theme/Theme.js +21 -0
- data/lib/qooxview/frontend/source/index.html +11 -0
- data/lib/qooxview/frontend/source/resource/frontend/test.png +0 -0
- data/lib/qooxview/frontend/source/translation/readme.txt +3 -0
- data/lib/qooxview/helpers/config_base.rb +264 -0
- data/lib/qooxview/helpers/icc.rb +222 -0
- data/lib/qooxview/helpers/make_steps.rb +77 -0
- data/lib/qooxview/helpers/migration_version.rb +18 -0
- data/lib/qooxview/helpers/open_print.rb +286 -0
- data/lib/qooxview/helpers/permission.rb +146 -0
- data/lib/qooxview/helpers/qoox_parser.rb +54 -0
- data/lib/qooxview/helpers/session.rb +68 -0
- data/lib/qooxview/helpers/static.rb +23 -0
- data/lib/qooxview/helpers/upload_files.rb +27 -0
- data/lib/qooxview/helpers/vtlist_pane.rb +158 -0
- data/lib/qooxview/helpers/welcome.rb +55 -0
- data/lib/qooxview/qooxview.rb +175 -0
- data/lib/qooxview/rpcqooxdoo.rb +395 -0
- data/lib/qooxview/storage_handler.rb +455 -0
- data/lib/qooxview/storage_type.rb +129 -0
- data/lib/qooxview/storages/csv.rb +170 -0
- data/lib/qooxview/storages/ldap.rb +238 -0
- data/lib/qooxview/storages/sqlite.rb +198 -0
- data/lib/qooxview/value.rb +202 -0
- data/lib/qooxview/version.rb +3 -0
- data/lib/qooxview/view.rb +904 -0
- data/lib/qooxview.rb +83 -0
- data/qooxview.gemspec +50 -0
- data/test/benchmark_creation.rb +37 -0
- data/test/config.yaml +36 -0
- data/test/entities/config.rb +33 -0
- data/test/entities/course.rb +28 -0
- data/test/entities/databases.rb +17 -0
- data/test/entities/doubleCase.rb +12 -0
- data/test/entities/dummies.rb +24 -0
- data/test/entities/inventory.rb +6 -0
- data/test/entities/needs.rb +20 -0
- data/test/entities/person.rb +73 -0
- data/test/file_binary.bin +0 -0
- data/test/files/print_formulas.ods +0 -0
- data/test/files/print_formulas_2.ods +0 -0
- data/test/files/student_card.odg +0 -0
- data/test/gettext.po +24 -0
- data/test/gettext.pot +0 -0
- data/test/messages.mo +0 -0
- data/test/po/fr/LC_MESSAGES/gettext.mo +0 -0
- data/test/qooxdoo-layout-frontend.js +49 -0
- data/test/qv_configbase.rb +98 -0
- data/test/qv_entity.rb +271 -0
- data/test/qv_gettext.rb +28 -0
- data/test/qv_helpers.rb +173 -0
- data/test/qv_icc.rb +60 -0
- data/test/qv_migration.rb +130 -0
- data/test/qv_permission.rb +34 -0
- data/test/qv_print.rb +73 -0
- data/test/qv_session.rb +29 -0
- data/test/qv_sqlite.rb +73 -0
- data/test/qv_store_csv.rb +86 -0
- data/test/qv_stype.rb +41 -0
- data/test/qv_view.rb +204 -0
- data/test/st_dummy.rb +30 -0
- data/test/test.rb +49 -0
- data/test/views/aview.rb +24 -0
- data/test/views/bview.rb +10 -0
- data/test/views/configviews.rb +19 -0
- data/test/views/courseshow.rb +11 -0
- data/test/views/cview.rb +22 -0
- data/test/views/login.rb +15 -0
- data/test/views/print.rb +10 -0
- 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
|