lpmp 1.0.0
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.
- data/LICENSE +3 -0
- data/README +3 -0
- data/Rakefile +45 -0
- data/bin/lpmp +107 -0
- data/config/help.yaml +1 -0
- data/config/hosts.yaml +2 -0
- data/config/log.yaml +1 -0
- data/config/memcache.yaml +5 -0
- data/erb/index.erb +62 -0
- data/lib/bg_pull/caichen.rb +199 -0
- data/lib/bg_pull/lpmp.rb +45 -0
- data/lib/exception.rb +8 -0
- data/lib/lpmp.rb +53 -0
- data/lib/pull/lpmp.rb +355 -0
- data/lib/remote_lmp.rb +129 -0
- data/lib/utils.rb +14 -0
- data/lib/xq_push/caichen.rb +174 -0
- data/lib/xq_push/lpmp.rb +96 -0
- data/log/lpmp1st.log +1 -0
- data/public/css/ext-portal.css +40 -0
- data/public/css/lpmp.css +6 -0
- data/public/designer/caichen.epj +1 -0
- data/public/designer/hostmonitor.epj +1 -0
- data/public/ext-3.0.0/INCLUDE_ORDER.txt +35 -0
- data/public/ext-3.0.0/adapter/ext/ext-base-debug.js +3589 -0
- data/public/ext-3.0.0/adapter/ext/ext-base.js +7 -0
- data/public/ext-3.0.0/adapter/jquery/ext-jquery-adapter-debug.js +2292 -0
- data/public/ext-3.0.0/adapter/jquery/ext-jquery-adapter.js +7 -0
- data/public/ext-3.0.0/adapter/prototype/ext-prototype-adapter-debug.js +2346 -0
- data/public/ext-3.0.0/adapter/prototype/ext-prototype-adapter.js +7 -0
- data/public/ext-3.0.0/adapter/yui/ext-yui-adapter-debug.js +2136 -0
- data/public/ext-3.0.0/adapter/yui/ext-yui-adapter.js +7 -0
- data/public/ext-3.0.0/ext-all-debug.js +65610 -0
- data/public/ext-3.0.0/ext-all.js +11 -0
- data/public/ext-3.0.0/license.txt +42 -0
- data/public/ext-3.0.0/pkgs/cmp-foundation-debug.js +11287 -0
- data/public/ext-3.0.0/pkgs/cmp-foundation.js +7 -0
- data/public/ext-3.0.0/pkgs/data-foundation-debug.js +3853 -0
- data/public/ext-3.0.0/pkgs/data-foundation.js +7 -0
- data/public/ext-3.0.0/pkgs/data-grouping-debug.js +139 -0
- data/public/ext-3.0.0/pkgs/data-grouping.js +7 -0
- data/public/ext-3.0.0/pkgs/data-json-debug.js +582 -0
- data/public/ext-3.0.0/pkgs/data-json.js +7 -0
- data/public/ext-3.0.0/pkgs/data-list-views-debug.js +1278 -0
- data/public/ext-3.0.0/pkgs/data-list-views.js +7 -0
- data/public/ext-3.0.0/pkgs/data-xml-debug.js +234 -0
- data/public/ext-3.0.0/pkgs/data-xml.js +7 -0
- data/public/ext-3.0.0/pkgs/direct-debug.js +1121 -0
- data/public/ext-3.0.0/pkgs/direct.js +7 -0
- data/public/ext-3.0.0/pkgs/ext-dd-debug.js +4567 -0
- data/public/ext-3.0.0/pkgs/ext-dd.js +7 -0
- data/public/ext-3.0.0/pkgs/ext-foundation-debug.js +13417 -0
- data/public/ext-3.0.0/pkgs/ext-foundation.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-buttons-debug.js +1060 -0
- data/public/ext-3.0.0/pkgs/pkg-buttons.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-charts-debug.js +1621 -0
- data/public/ext-3.0.0/pkgs/pkg-charts.js +10 -0
- data/public/ext-3.0.0/pkgs/pkg-forms-debug.js +7661 -0
- data/public/ext-3.0.0/pkgs/pkg-forms.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-grid-editor-debug.js +560 -0
- data/public/ext-3.0.0/pkgs/pkg-grid-editor.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-grid-foundation-debug.js +4765 -0
- data/public/ext-3.0.0/pkgs/pkg-grid-foundation.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-grid-grouping-debug.js +517 -0
- data/public/ext-3.0.0/pkgs/pkg-grid-grouping.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-grid-property-debug.js +370 -0
- data/public/ext-3.0.0/pkgs/pkg-grid-property.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-history-debug.js +203 -0
- data/public/ext-3.0.0/pkgs/pkg-history.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-menu-debug.js +1628 -0
- data/public/ext-3.0.0/pkgs/pkg-menu.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-tabs-debug.js +1100 -0
- data/public/ext-3.0.0/pkgs/pkg-tabs.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-tips-debug.js +994 -0
- data/public/ext-3.0.0/pkgs/pkg-tips.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-toolbars-debug.js +1374 -0
- data/public/ext-3.0.0/pkgs/pkg-toolbars.js +7 -0
- data/public/ext-3.0.0/pkgs/pkg-tree-debug.js +4522 -0
- data/public/ext-3.0.0/pkgs/pkg-tree.js +7 -0
- data/public/ext-3.0.0/pkgs/resizable-debug.js +760 -0
- data/public/ext-3.0.0/pkgs/resizable.js +7 -0
- data/public/ext-3.0.0/pkgs/state-debug.js +274 -0
- data/public/ext-3.0.0/pkgs/state.js +7 -0
- data/public/ext-3.0.0/pkgs/window-debug.js +1888 -0
- data/public/ext-3.0.0/pkgs/window.js +7 -0
- data/public/ext-3.0.0/resources/charts.swf +0 -0
- data/public/ext-3.0.0/resources/css/README.txt +3 -0
- data/public/ext-3.0.0/resources/css/ext-all-notheme.css +5345 -0
- data/public/ext-3.0.0/resources/css/ext-all.css +6990 -0
- data/public/ext-3.0.0/resources/css/reset-min.css +7 -0
- data/public/ext-3.0.0/resources/css/structure/borders.css +54 -0
- data/public/ext-3.0.0/resources/css/structure/box.css +80 -0
- data/public/ext-3.0.0/resources/css/structure/button.css +440 -0
- data/public/ext-3.0.0/resources/css/structure/combo.css +45 -0
- data/public/ext-3.0.0/resources/css/structure/core.css +326 -0
- data/public/ext-3.0.0/resources/css/structure/date-picker.css +265 -0
- data/public/ext-3.0.0/resources/css/structure/dd.css +61 -0
- data/public/ext-3.0.0/resources/css/structure/debug.css +26 -0
- data/public/ext-3.0.0/resources/css/structure/dialog.css +62 -0
- data/public/ext-3.0.0/resources/css/structure/editor.css +92 -0
- data/public/ext-3.0.0/resources/css/structure/form.css +562 -0
- data/public/ext-3.0.0/resources/css/structure/grid.css +552 -0
- data/public/ext-3.0.0/resources/css/structure/layout.css +296 -0
- data/public/ext-3.0.0/resources/css/structure/list-view.css +85 -0
- data/public/ext-3.0.0/resources/css/structure/menu.css +205 -0
- data/public/ext-3.0.0/resources/css/structure/panel-reset.css +130 -0
- data/public/ext-3.0.0/resources/css/structure/panel.css +468 -0
- data/public/ext-3.0.0/resources/css/structure/progress.css +42 -0
- data/public/ext-3.0.0/resources/css/structure/qtips.css +153 -0
- data/public/ext-3.0.0/resources/css/structure/reset.css +7 -0
- data/public/ext-3.0.0/resources/css/structure/resizable.css +149 -0
- data/public/ext-3.0.0/resources/css/structure/slider.css +103 -0
- data/public/ext-3.0.0/resources/css/structure/tabs.css +372 -0
- data/public/ext-3.0.0/resources/css/structure/toolbar.css +259 -0
- data/public/ext-3.0.0/resources/css/structure/tree.css +203 -0
- data/public/ext-3.0.0/resources/css/structure/window.css +222 -0
- data/public/ext-3.0.0/resources/css/visual/borders.css +25 -0
- data/public/ext-3.0.0/resources/css/visual/box.css +74 -0
- data/public/ext-3.0.0/resources/css/visual/button.css +94 -0
- data/public/ext-3.0.0/resources/css/visual/combo.css +43 -0
- data/public/ext-3.0.0/resources/css/visual/core.css +76 -0
- data/public/ext-3.0.0/resources/css/visual/date-picker.css +143 -0
- data/public/ext-3.0.0/resources/css/visual/dd.css +29 -0
- data/public/ext-3.0.0/resources/css/visual/debug.css +24 -0
- data/public/ext-3.0.0/resources/css/visual/dialog.css +34 -0
- data/public/ext-3.0.0/resources/css/visual/editor.css +13 -0
- data/public/ext-3.0.0/resources/css/visual/form.css +117 -0
- data/public/ext-3.0.0/resources/css/visual/grid.css +272 -0
- data/public/ext-3.0.0/resources/css/visual/layout.css +53 -0
- data/public/ext-3.0.0/resources/css/visual/list-view.css +37 -0
- data/public/ext-3.0.0/resources/css/visual/menu.css +82 -0
- data/public/ext-3.0.0/resources/css/visual/panel.css +87 -0
- data/public/ext-3.0.0/resources/css/visual/progress.css +32 -0
- data/public/ext-3.0.0/resources/css/visual/qtips.css +44 -0
- data/public/ext-3.0.0/resources/css/visual/resizable.css +43 -0
- data/public/ext-3.0.0/resources/css/visual/slider.css +21 -0
- data/public/ext-3.0.0/resources/css/visual/tabs.css +119 -0
- data/public/ext-3.0.0/resources/css/visual/toolbar.css +103 -0
- data/public/ext-3.0.0/resources/css/visual/tree.css +157 -0
- data/public/ext-3.0.0/resources/css/visual/window.css +86 -0
- data/public/ext-3.0.0/resources/css/xtheme-blue.css +1652 -0
- data/public/ext-3.0.0/resources/expressinstall.swf +0 -0
- data/public/ext-3.0.0/resources/images/default/box/corners-blue.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/box/corners.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/box/l-blue.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/box/l.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/box/r-blue.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/box/r.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/box/tb-blue.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/box/tb.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/arrow.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/btn.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/group-cs.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/group-lr.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/group-tb.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/s-arrow-b-noline.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/s-arrow-b.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/s-arrow-bo.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/s-arrow-noline.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/s-arrow-o.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/button/s-arrow.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/dd/drop-add.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/dd/drop-no.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/dd/drop-yes.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/editor/tb-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/checkbox.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/clear-trigger.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/clear-trigger.psd +0 -0
- data/public/ext-3.0.0/resources/images/default/form/date-trigger.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/date-trigger.psd +0 -0
- data/public/ext-3.0.0/resources/images/default/form/error-tip-corners.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/exclamation.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/radio.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/search-trigger.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/search-trigger.psd +0 -0
- data/public/ext-3.0.0/resources/images/default/form/text-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/trigger-tpl.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/trigger.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/form/trigger.psd +0 -0
- data/public/ext-3.0.0/resources/images/default/gradient-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/arrow-left-white.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/arrow-right-white.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/col-move-bottom.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/col-move-top.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/columns.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/dirty.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/done.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/drop-no.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/drop-yes.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/footer-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid-blue-hd.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid-blue-split.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid-hrow.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid-loading.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid-split.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid-vista-hd.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid3-hd-btn.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid3-hrow-over.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid3-hrow.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid3-special-col-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/grid3-special-col-sel-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/group-by.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/group-collapse.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/group-expand-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/group-expand.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/hd-pop.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/hmenu-asc.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/hmenu-desc.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/hmenu-lock.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/hmenu-lock.png +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/hmenu-unlock.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/hmenu-unlock.png +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/invalid_line.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/loading.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/mso-hd.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/nowait.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/page-first-disabled.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/page-first.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/page-last-disabled.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/page-last.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/page-next-disabled.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/page-next.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/page-prev-disabled.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/page-prev.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/pick-button.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/refresh.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/row-check-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/row-expand-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/row-over.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/row-sel.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/sort-hd.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/sort_asc.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/sort_desc.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/grid/wait.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/collapse.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/expand.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/gradient-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/mini-bottom.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/mini-left.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/mini-right.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/mini-top.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/ns-collapse.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/ns-expand.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/panel-close.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/panel-title-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/panel-title-light-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/stick.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/stuck.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/tab-close-on.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/layout/tab-close.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/menu/checked.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/menu/group-checked.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/menu/item-over.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/menu/menu-parent.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/menu/menu.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/menu/unchecked.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/corners-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/left-right.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/light-hd.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/tool-sprite-tpl.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/tool-sprites.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/tools-sprites-trans.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/top-bottom.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/top-bottom.png +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/white-corners-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/white-left-right.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/panel/white-top-bottom.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/progress/progress-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/qtip/bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/qtip/close.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/qtip/tip-anchor-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/qtip/tip-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/s.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shadow-c.png +0 -0
- data/public/ext-3.0.0/resources/images/default/shadow-lr.png +0 -0
- data/public/ext-3.0.0/resources/images/default/shadow.png +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/blue-loading.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/calendar.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/glass-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/hd-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/large-loading.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/left-btn.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/loading-balls.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/right-btn.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/shared/warning.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/e-handle-dark.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/e-handle.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/ne-handle-dark.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/ne-handle.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/nw-handle-dark.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/nw-handle.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/s-handle-dark.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/s-handle.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/se-handle-dark.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/se-handle.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/square.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/sw-handle-dark.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/sizer/sw-handle.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/slider/slider-bg.png +0 -0
- data/public/ext-3.0.0/resources/images/default/slider/slider-thumb.png +0 -0
- data/public/ext-3.0.0/resources/images/default/slider/slider-v-bg.png +0 -0
- data/public/ext-3.0.0/resources/images/default/slider/slider-v-thumb.png +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/scroll-left.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/scroll-right.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/scroller-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-left-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tab-btm-right-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tab-close.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-bg.png +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tab-strip-btm-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tabs/tabs-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/btn-arrow-light.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/btn-arrow.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/btn-over-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/gray-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/more.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/tb-bg.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/tb-btn-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/tb-xl-btn-sprite.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/toolbar/tb-xl-sep.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/arrows.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/drop-add.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/drop-between.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/drop-no.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/drop-over.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/drop-under.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/drop-yes.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-end-minus-nl.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-end-minus.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-end-plus-nl.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-end-plus.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-end.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-line.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-minus-nl.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-minus.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-plus-nl.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow-plus.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/elbow.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/folder-open.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/folder.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/leaf.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/loading.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/tree/s.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/window/icon-error.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/window/icon-info.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/window/icon-question.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/window/icon-warning.gif +0 -0
- data/public/ext-3.0.0/resources/images/default/window/left-corners.png +0 -0
- data/public/ext-3.0.0/resources/images/default/window/left-corners.psd +0 -0
- data/public/ext-3.0.0/resources/images/default/window/left-right.png +0 -0
- data/public/ext-3.0.0/resources/images/default/window/left-right.psd +0 -0
- data/public/ext-3.0.0/resources/images/default/window/right-corners.png +0 -0
- data/public/ext-3.0.0/resources/images/default/window/right-corners.psd +0 -0
- data/public/ext-3.0.0/resources/images/default/window/top-bottom.png +0 -0
- data/public/ext-3.0.0/resources/images/default/window/top-bottom.psd +0 -0
- data/public/ext-3.0.0/resources/images/icon/chart.gif +0 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-ajax.js +371 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-anim-extra.js +301 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-anim.js +477 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-begin.js +18 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-dom.js +157 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-end.js +21 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-event.js +453 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-point.js +17 -0
- data/public/ext-3.0.0/src/adapter/core/ext-base-region.js +81 -0
- data/public/ext-3.0.0/src/adapter/ext-base-dom-more.js +9 -0
- data/public/ext-3.0.0/src/adapter/jquery-bridge.js +546 -0
- data/public/ext-3.0.0/src/adapter/prototype-bridge.js +600 -0
- data/public/ext-3.0.0/src/adapter/yui-bridge.js +390 -0
- data/public/ext-3.0.0/src/core/CompositeElement.js +136 -0
- data/public/ext-3.0.0/src/core/CompositeElementLite-more.js +102 -0
- data/public/ext-3.0.0/src/core/DomHelper-more.js +179 -0
- data/public/ext-3.0.0/src/core/Element-more.js +192 -0
- data/public/ext-3.0.0/src/core/Element.alignment.js +370 -0
- data/public/ext-3.0.0/src/core/Element.dd.js +46 -0
- data/public/ext-3.0.0/src/core/Element.fx-more.js +152 -0
- data/public/ext-3.0.0/src/core/Element.insertion-more.js +52 -0
- data/public/ext-3.0.0/src/core/Element.keys.js +48 -0
- data/public/ext-3.0.0/src/core/Element.legacy.js +42 -0
- data/public/ext-3.0.0/src/core/Element.position-more.js +165 -0
- data/public/ext-3.0.0/src/core/Element.scroll-more.js +110 -0
- data/public/ext-3.0.0/src/core/Element.style-more.js +318 -0
- data/public/ext-3.0.0/src/core/Error.js +81 -0
- data/public/ext-3.0.0/src/core/EventManager-more.js +334 -0
- data/public/ext-3.0.0/src/core/Ext-more.js +669 -0
- data/public/ext-3.0.0/src/core/Template-more.js +115 -0
- data/public/ext-3.0.0/src/core/core/CompositeElementLite.js +197 -0
- data/public/ext-3.0.0/src/core/core/DomHelper.js +378 -0
- data/public/ext-3.0.0/src/core/core/DomQuery.js +826 -0
- data/public/ext-3.0.0/src/core/core/Element.fx.js +324 -0
- data/public/ext-3.0.0/src/core/core/Element.insertion.js +147 -0
- data/public/ext-3.0.0/src/core/core/Element.js +945 -0
- data/public/ext-3.0.0/src/core/core/Element.position.js +303 -0
- data/public/ext-3.0.0/src/core/core/Element.scroll.js +58 -0
- data/public/ext-3.0.0/src/core/core/Element.style.js +439 -0
- data/public/ext-3.0.0/src/core/core/Element.traversal.js +176 -0
- data/public/ext-3.0.0/src/core/core/EventManager.js +623 -0
- data/public/ext-3.0.0/src/core/core/Ext.js +922 -0
- data/public/ext-3.0.0/src/core/core/Fx.js +1115 -0
- data/public/ext-3.0.0/src/core/core/Template.js +185 -0
- data/public/ext-3.0.0/src/data/Api.js +210 -0
- data/public/ext-3.0.0/src/data/ArrayReader.js +102 -0
- data/public/ext-3.0.0/src/data/ArrayStore.js +70 -0
- data/public/ext-3.0.0/src/data/DataField.js +249 -0
- data/public/ext-3.0.0/src/data/DataProxy.js +427 -0
- data/public/ext-3.0.0/src/data/DataReader.js +160 -0
- data/public/ext-3.0.0/src/data/DataWriter.js +201 -0
- data/public/ext-3.0.0/src/data/DirectProxy.js +141 -0
- data/public/ext-3.0.0/src/data/DirectStore.js +52 -0
- data/public/ext-3.0.0/src/data/GroupingStore.js +139 -0
- data/public/ext-3.0.0/src/data/HttpProxy.js +276 -0
- data/public/ext-3.0.0/src/data/JsonReader.js +311 -0
- data/public/ext-3.0.0/src/data/JsonStore.js +49 -0
- data/public/ext-3.0.0/src/data/JsonWriter.js +77 -0
- data/public/ext-3.0.0/src/data/MemoryProxy.js +69 -0
- data/public/ext-3.0.0/src/data/Record.js +400 -0
- data/public/ext-3.0.0/src/data/ScriptTagProxy.js +279 -0
- data/public/ext-3.0.0/src/data/SortTypes.js +91 -0
- data/public/ext-3.0.0/src/data/Store.js +1492 -0
- data/public/ext-3.0.0/src/data/StoreMgr.js +72 -0
- data/public/ext-3.0.0/src/data/Tree.js +785 -0
- data/public/ext-3.0.0/src/data/XmlReader.js +128 -0
- data/public/ext-3.0.0/src/data/XmlStore.js +75 -0
- data/public/ext-3.0.0/src/data/XmlWriter.js +45 -0
- data/public/ext-3.0.0/src/data/core/Connection.js +575 -0
- data/public/ext-3.0.0/src/dd/DDCore.js +2992 -0
- data/public/ext-3.0.0/src/dd/DragSource.js +365 -0
- data/public/ext-3.0.0/src/dd/DragTracker.js +217 -0
- data/public/ext-3.0.0/src/dd/DragZone.js +133 -0
- data/public/ext-3.0.0/src/dd/DropTarget.js +115 -0
- data/public/ext-3.0.0/src/dd/DropZone.js +262 -0
- data/public/ext-3.0.0/src/dd/Registry.js +127 -0
- data/public/ext-3.0.0/src/dd/ScrollManager.js +201 -0
- data/public/ext-3.0.0/src/dd/StatusProxy.js +171 -0
- data/public/ext-3.0.0/src/debug.js +906 -0
- data/public/ext-3.0.0/src/direct/Direct.js +235 -0
- data/public/ext-3.0.0/src/direct/Event.js +34 -0
- data/public/ext-3.0.0/src/direct/JsonProvider.js +45 -0
- data/public/ext-3.0.0/src/direct/PollingProvider.js +151 -0
- data/public/ext-3.0.0/src/direct/Provider.js +110 -0
- data/public/ext-3.0.0/src/direct/RemotingProvider.js +373 -0
- data/public/ext-3.0.0/src/direct/Transaction.js +32 -0
- data/public/ext-3.0.0/src/locale/ext-lang-af.js +184 -0
- data/public/ext-3.0.0/src/locale/ext-lang-bg.js +278 -0
- data/public/ext-3.0.0/src/locale/ext-lang-ca.js +315 -0
- data/public/ext-3.0.0/src/locale/ext-lang-cs.js +293 -0
- data/public/ext-3.0.0/src/locale/ext-lang-da.js +296 -0
- data/public/ext-3.0.0/src/locale/ext-lang-de.js +326 -0
- data/public/ext-3.0.0/src/locale/ext-lang-el_GR.js +309 -0
- data/public/ext-3.0.0/src/locale/ext-lang-en.js +335 -0
- data/public/ext-3.0.0/src/locale/ext-lang-en_GB.js +315 -0
- data/public/ext-3.0.0/src/locale/ext-lang-es.js +318 -0
- data/public/ext-3.0.0/src/locale/ext-lang-fa.js +272 -0
- data/public/ext-3.0.0/src/locale/ext-lang-fi.js +302 -0
- data/public/ext-3.0.0/src/locale/ext-lang-fr.js +335 -0
- data/public/ext-3.0.0/src/locale/ext-lang-fr_CA.js +218 -0
- data/public/ext-3.0.0/src/locale/ext-lang-gr.js +175 -0
- data/public/ext-3.0.0/src/locale/ext-lang-he.js +292 -0
- data/public/ext-3.0.0/src/locale/ext-lang-hr.js +295 -0
- data/public/ext-3.0.0/src/locale/ext-lang-hu.js +296 -0
- data/public/ext-3.0.0/src/locale/ext-lang-id.js +302 -0
- data/public/ext-3.0.0/src/locale/ext-lang-it.js +295 -0
- data/public/ext-3.0.0/src/locale/ext-lang-ja.js +318 -0
- data/public/ext-3.0.0/src/locale/ext-lang-ko.js +267 -0
- data/public/ext-3.0.0/src/locale/ext-lang-lt.js +333 -0
- data/public/ext-3.0.0/src/locale/ext-lang-lv.js +176 -0
- data/public/ext-3.0.0/src/locale/ext-lang-mk.js +176 -0
- data/public/ext-3.0.0/src/locale/ext-lang-nl.js +323 -0
- data/public/ext-3.0.0/src/locale/ext-lang-no_NB.js +294 -0
- data/public/ext-3.0.0/src/locale/ext-lang-no_NN.js +294 -0
- data/public/ext-3.0.0/src/locale/ext-lang-pl.js +304 -0
- data/public/ext-3.0.0/src/locale/ext-lang-pt.js +260 -0
- data/public/ext-3.0.0/src/locale/ext-lang-pt_BR.js +302 -0
- data/public/ext-3.0.0/src/locale/ext-lang-pt_PT.js +298 -0
- data/public/ext-3.0.0/src/locale/ext-lang-ro.js +295 -0
- data/public/ext-3.0.0/src/locale/ext-lang-ru.js +319 -0
- data/public/ext-3.0.0/src/locale/ext-lang-sk.js +182 -0
- data/public/ext-3.0.0/src/locale/ext-lang-sl.js +176 -0
- data/public/ext-3.0.0/src/locale/ext-lang-sr.js +179 -0
- data/public/ext-3.0.0/src/locale/ext-lang-sr_RS.js +178 -0
- data/public/ext-3.0.0/src/locale/ext-lang-sv_SE.js +178 -0
- data/public/ext-3.0.0/src/locale/ext-lang-th.js +294 -0
- data/public/ext-3.0.0/src/locale/ext-lang-tr.js +306 -0
- data/public/ext-3.0.0/src/locale/ext-lang-ukr.js +258 -0
- data/public/ext-3.0.0/src/locale/ext-lang-vn.js +181 -0
- data/public/ext-3.0.0/src/locale/ext-lang-zh_CN.js +174 -0
- data/public/ext-3.0.0/src/locale/ext-lang-zh_TW.js +178 -0
- data/public/ext-3.0.0/src/state/CookieProvider.js +91 -0
- data/public/ext-3.0.0/src/state/Provider.js +127 -0
- data/public/ext-3.0.0/src/state/StateManager.js +69 -0
- data/public/ext-3.0.0/src/util/CSS.js +161 -0
- data/public/ext-3.0.0/src/util/ClickRepeater.js +200 -0
- data/public/ext-3.0.0/src/util/Cookies.js +96 -0
- data/public/ext-3.0.0/src/util/Date.js +1317 -0
- data/public/ext-3.0.0/src/util/Format.js +356 -0
- data/public/ext-3.0.0/src/util/History.js +203 -0
- data/public/ext-3.0.0/src/util/KeyMap.js +242 -0
- data/public/ext-3.0.0/src/util/KeyNav.js +161 -0
- data/public/ext-3.0.0/src/util/MixedCollection.js +576 -0
- data/public/ext-3.0.0/src/util/Observable-more.js +178 -0
- data/public/ext-3.0.0/src/util/TextMetrics.js +131 -0
- data/public/ext-3.0.0/src/util/UpdateManager.js +536 -0
- data/public/ext-3.0.0/src/util/XTemplate.js +379 -0
- data/public/ext-3.0.0/src/util/core/DelayedTask.js +68 -0
- data/public/ext-3.0.0/src/util/core/JSON.js +174 -0
- data/public/ext-3.0.0/src/util/core/Observable.js +483 -0
- data/public/ext-3.0.0/src/util/core/TaskMgr.js +174 -0
- data/public/ext-3.0.0/src/widgets/Action.js +252 -0
- data/public/ext-3.0.0/src/widgets/BoxComponent.js +519 -0
- data/public/ext-3.0.0/src/widgets/Button.js +762 -0
- data/public/ext-3.0.0/src/widgets/ButtonGroup.js +103 -0
- data/public/ext-3.0.0/src/widgets/ColorPalette.js +148 -0
- data/public/ext-3.0.0/src/widgets/Component.js +1540 -0
- data/public/ext-3.0.0/src/widgets/ComponentMgr.js +159 -0
- data/public/ext-3.0.0/src/widgets/Container.js +894 -0
- data/public/ext-3.0.0/src/widgets/CycleButton.js +188 -0
- data/public/ext-3.0.0/src/widgets/DataView.js +749 -0
- data/public/ext-3.0.0/src/widgets/DatePicker.js +771 -0
- data/public/ext-3.0.0/src/widgets/Editor.js +385 -0
- data/public/ext-3.0.0/src/widgets/Layer.js +466 -0
- data/public/ext-3.0.0/src/widgets/LoadMask.js +123 -0
- data/public/ext-3.0.0/src/widgets/MessageBox.js +626 -0
- data/public/ext-3.0.0/src/widgets/PagingToolbar.js +502 -0
- data/public/ext-3.0.0/src/widgets/Panel.js +1772 -0
- data/public/ext-3.0.0/src/widgets/PanelDD.js +154 -0
- data/public/ext-3.0.0/src/widgets/ProgressBar.js +289 -0
- data/public/ext-3.0.0/src/widgets/Resizable.js +760 -0
- data/public/ext-3.0.0/src/widgets/Shadow.js +192 -0
- data/public/ext-3.0.0/src/widgets/Slider.js +426 -0
- data/public/ext-3.0.0/src/widgets/SplitBar.js +436 -0
- data/public/ext-3.0.0/src/widgets/SplitButton.js +124 -0
- data/public/ext-3.0.0/src/widgets/TabPanel.js +1100 -0
- data/public/ext-3.0.0/src/widgets/Toolbar.js +781 -0
- data/public/ext-3.0.0/src/widgets/Viewport.js +124 -0
- data/public/ext-3.0.0/src/widgets/Window.js +941 -0
- data/public/ext-3.0.0/src/widgets/WindowManager.js +187 -0
- data/public/ext-3.0.0/src/widgets/chart/Chart.js +721 -0
- data/public/ext-3.0.0/src/widgets/chart/EventProxy.js +20 -0
- data/public/ext-3.0.0/src/widgets/chart/FlashComponent.js +117 -0
- data/public/ext-3.0.0/src/widgets/chart/swfobject.js +783 -0
- data/public/ext-3.0.0/src/widgets/form/Action.js +626 -0
- data/public/ext-3.0.0/src/widgets/form/BasicForm.js +735 -0
- data/public/ext-3.0.0/src/widgets/form/Checkbox.js +177 -0
- data/public/ext-3.0.0/src/widgets/form/CheckboxGroup.js +419 -0
- data/public/ext-3.0.0/src/widgets/form/Combo.js +1232 -0
- data/public/ext-3.0.0/src/widgets/form/DateField.js +389 -0
- data/public/ext-3.0.0/src/widgets/form/DisplayField.js +98 -0
- data/public/ext-3.0.0/src/widgets/form/Field.js +640 -0
- data/public/ext-3.0.0/src/widgets/form/FieldSet.js +305 -0
- data/public/ext-3.0.0/src/widgets/form/Form.js +335 -0
- data/public/ext-3.0.0/src/widgets/form/Hidden.js +39 -0
- data/public/ext-3.0.0/src/widgets/form/HtmlEditor.js +1179 -0
- data/public/ext-3.0.0/src/widgets/form/Label.js +64 -0
- data/public/ext-3.0.0/src/widgets/form/NumberField.js +139 -0
- data/public/ext-3.0.0/src/widgets/form/Radio.js +81 -0
- data/public/ext-3.0.0/src/widgets/form/RadioGroup.js +116 -0
- data/public/ext-3.0.0/src/widgets/form/TextArea.js +117 -0
- data/public/ext-3.0.0/src/widgets/form/TextField.js +491 -0
- data/public/ext-3.0.0/src/widgets/form/TimeField.js +146 -0
- data/public/ext-3.0.0/src/widgets/form/TriggerField.js +328 -0
- data/public/ext-3.0.0/src/widgets/form/VTypes.js +135 -0
- data/public/ext-3.0.0/src/widgets/grid/AbstractSelectionModel.js +57 -0
- data/public/ext-3.0.0/src/widgets/grid/CellSelectionModel.js +262 -0
- data/public/ext-3.0.0/src/widgets/grid/CheckboxSelectionModel.js +103 -0
- data/public/ext-3.0.0/src/widgets/grid/Column.js +406 -0
- data/public/ext-3.0.0/src/widgets/grid/ColumnDD.js +199 -0
- data/public/ext-3.0.0/src/widgets/grid/ColumnModel.js +592 -0
- data/public/ext-3.0.0/src/widgets/grid/ColumnSplitDD.js +62 -0
- data/public/ext-3.0.0/src/widgets/grid/EditorGrid.js +291 -0
- data/public/ext-3.0.0/src/widgets/grid/GridDD.js +95 -0
- data/public/ext-3.0.0/src/widgets/grid/GridEditor.js +21 -0
- data/public/ext-3.0.0/src/widgets/grid/GridPanel.js +952 -0
- data/public/ext-3.0.0/src/widgets/grid/GridView.js +1776 -0
- data/public/ext-3.0.0/src/widgets/grid/GroupingView.js +517 -0
- data/public/ext-3.0.0/src/widgets/grid/PropertyGrid.js +370 -0
- data/public/ext-3.0.0/src/widgets/grid/RowNumberer.js +61 -0
- data/public/ext-3.0.0/src/widgets/grid/RowSelectionModel.js +530 -0
- data/public/ext-3.0.0/src/widgets/layout/AbsoluteLayout.js +82 -0
- data/public/ext-3.0.0/src/widgets/layout/AccordionLayout.js +177 -0
- data/public/ext-3.0.0/src/widgets/layout/AnchorLayout.js +200 -0
- data/public/ext-3.0.0/src/widgets/layout/BorderLayout.js +1108 -0
- data/public/ext-3.0.0/src/widgets/layout/BoxLayout.js +417 -0
- data/public/ext-3.0.0/src/widgets/layout/CardLayout.js +127 -0
- data/public/ext-3.0.0/src/widgets/layout/ColumnLayout.js +130 -0
- data/public/ext-3.0.0/src/widgets/layout/ContainerLayout.js +215 -0
- data/public/ext-3.0.0/src/widgets/layout/FitLayout.js +48 -0
- data/public/ext-3.0.0/src/widgets/layout/FormLayout.js +266 -0
- data/public/ext-3.0.0/src/widgets/layout/TableLayout.js +194 -0
- data/public/ext-3.0.0/src/widgets/list/ColumnResizer.js +123 -0
- data/public/ext-3.0.0/src/widgets/list/ListView.js +357 -0
- data/public/ext-3.0.0/src/widgets/list/Sorter.js +70 -0
- data/public/ext-3.0.0/src/widgets/menu/BaseItem.js +160 -0
- data/public/ext-3.0.0/src/widgets/menu/CheckItem.js +114 -0
- data/public/ext-3.0.0/src/widgets/menu/ColorMenu.js +72 -0
- data/public/ext-3.0.0/src/widgets/menu/DateMenu.js +90 -0
- data/public/ext-3.0.0/src/widgets/menu/Item.js +211 -0
- data/public/ext-3.0.0/src/widgets/menu/Menu.js +733 -0
- data/public/ext-3.0.0/src/widgets/menu/MenuMgr.js +211 -0
- data/public/ext-3.0.0/src/widgets/menu/Separator.js +46 -0
- data/public/ext-3.0.0/src/widgets/menu/TextItem.js +46 -0
- data/public/ext-3.0.0/src/widgets/tips/QuickTip.js +207 -0
- data/public/ext-3.0.0/src/widgets/tips/QuickTips.js +159 -0
- data/public/ext-3.0.0/src/widgets/tips/Tip.js +157 -0
- data/public/ext-3.0.0/src/widgets/tips/ToolTip.js +492 -0
- data/public/ext-3.0.0/src/widgets/tree/AsyncTreeNode.js +114 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeDragZone.js +82 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeDropZone.js +321 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeEditor.js +160 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeEventModel.js +169 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeFilter.js +114 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeLoader.js +342 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeNode.js +546 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeNodeUI.js +633 -0
- data/public/ext-3.0.0/src/widgets/tree/TreePanel.js +918 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeSelectionModel.js +315 -0
- data/public/ext-3.0.0/src/widgets/tree/TreeSorter.js +106 -0
- data/public/js/ext-portal.js +235 -0
- data/public/js/global.js +7 -0
- data/public/js/outerframe.js +47 -0
- data/public/js/portal.js +713 -0
- data/public/js/test_chart.js +152 -0
- data/test/config.rb +62 -0
- data/test/config/hosts.yaml +5 -0
- data/test/config/log.yaml +1 -0
- data/test/config/memcache.yaml +5 -0
- data/test/exception.rb +39 -0
- data/test/method_missing.rb +14 -0
- data/test/module.rb +39 -0
- data/test/remote_lmp.rb +126 -0
- data/test/sinatra.rb +29 -0
- data/test/sinatra_base.rb +16 -0
- metadata +690 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Ext JS Library 3.0.0
|
|
3
|
+
* Copyright(c) 2006-2009 Ext JS, LLC
|
|
4
|
+
* licensing@extjs.com
|
|
5
|
+
* http://www.extjs.com/license
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @class Ext.grid.PropertyRecord
|
|
9
|
+
* A specific {@link Ext.data.Record} type that represents a name/value pair and is made to work with the
|
|
10
|
+
* {@link Ext.grid.PropertyGrid}. Typically, PropertyRecords do not need to be created directly as they can be
|
|
11
|
+
* created implicitly by simply using the appropriate data configs either via the {@link Ext.grid.PropertyGrid#source}
|
|
12
|
+
* config property or by calling {@link Ext.grid.PropertyGrid#setSource}. However, if the need arises, these records
|
|
13
|
+
* can also be created explicitly as shwon below. Example usage:
|
|
14
|
+
* <pre><code>
|
|
15
|
+
var rec = new Ext.grid.PropertyRecord({
|
|
16
|
+
name: 'Birthday',
|
|
17
|
+
value: new Date(Date.parse('05/26/1972'))
|
|
18
|
+
});
|
|
19
|
+
// Add record to an already populated grid
|
|
20
|
+
grid.store.addSorted(rec);
|
|
21
|
+
</code></pre>
|
|
22
|
+
* @constructor
|
|
23
|
+
* @param {Object} config A data object in the format: {name: [name], value: [value]}. The specified value's type
|
|
24
|
+
* will be read automatically by the grid to determine the type of editor to use when displaying it.
|
|
25
|
+
*/
|
|
26
|
+
Ext.grid.PropertyRecord = Ext.data.Record.create([
|
|
27
|
+
{name:'name',type:'string'}, 'value'
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @class Ext.grid.PropertyStore
|
|
32
|
+
* @extends Ext.util.Observable
|
|
33
|
+
* A custom wrapper for the {@link Ext.grid.PropertyGrid}'s {@link Ext.data.Store}. This class handles the mapping
|
|
34
|
+
* between the custom data source objects supported by the grid and the {@link Ext.grid.PropertyRecord} format
|
|
35
|
+
* required for compatibility with the underlying store. Generally this class should not need to be used directly --
|
|
36
|
+
* the grid's data should be accessed from the underlying store via the {@link #store} property.
|
|
37
|
+
* @constructor
|
|
38
|
+
* @param {Ext.grid.Grid} grid The grid this store will be bound to
|
|
39
|
+
* @param {Object} source The source data config object
|
|
40
|
+
*/
|
|
41
|
+
Ext.grid.PropertyStore = function(grid, source){
|
|
42
|
+
this.grid = grid;
|
|
43
|
+
this.store = new Ext.data.Store({
|
|
44
|
+
recordType : Ext.grid.PropertyRecord
|
|
45
|
+
});
|
|
46
|
+
this.store.on('update', this.onUpdate, this);
|
|
47
|
+
if(source){
|
|
48
|
+
this.setSource(source);
|
|
49
|
+
}
|
|
50
|
+
Ext.grid.PropertyStore.superclass.constructor.call(this);
|
|
51
|
+
};
|
|
52
|
+
Ext.extend(Ext.grid.PropertyStore, Ext.util.Observable, {
|
|
53
|
+
// protected - should only be called by the grid. Use grid.setSource instead.
|
|
54
|
+
setSource : function(o){
|
|
55
|
+
this.source = o;
|
|
56
|
+
this.store.removeAll();
|
|
57
|
+
var data = [];
|
|
58
|
+
for(var k in o){
|
|
59
|
+
if(this.isEditableValue(o[k])){
|
|
60
|
+
data.push(new Ext.grid.PropertyRecord({name: k, value: o[k]}, k));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this.store.loadRecords({records: data}, {}, true);
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
// private
|
|
67
|
+
onUpdate : function(ds, record, type){
|
|
68
|
+
if(type == Ext.data.Record.EDIT){
|
|
69
|
+
var v = record.data.value;
|
|
70
|
+
var oldValue = record.modified.value;
|
|
71
|
+
if(this.grid.fireEvent('beforepropertychange', this.source, record.id, v, oldValue) !== false){
|
|
72
|
+
this.source[record.id] = v;
|
|
73
|
+
record.commit();
|
|
74
|
+
this.grid.fireEvent('propertychange', this.source, record.id, v, oldValue);
|
|
75
|
+
}else{
|
|
76
|
+
record.reject();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
// private
|
|
82
|
+
getProperty : function(row){
|
|
83
|
+
return this.store.getAt(row);
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
// private
|
|
87
|
+
isEditableValue: function(val){
|
|
88
|
+
if(Ext.isDate(val)){
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
return !(Ext.isObject(val) || Ext.isFunction(val));
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
// private
|
|
95
|
+
setValue : function(prop, value){
|
|
96
|
+
this.source[prop] = value;
|
|
97
|
+
this.store.getById(prop).set('value', value);
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
// protected - should only be called by the grid. Use grid.getSource instead.
|
|
101
|
+
getSource : function(){
|
|
102
|
+
return this.source;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* @class Ext.grid.PropertyColumnModel
|
|
108
|
+
* @extends Ext.grid.ColumnModel
|
|
109
|
+
* A custom column model for the {@link Ext.grid.PropertyGrid}. Generally it should not need to be used directly.
|
|
110
|
+
* @constructor
|
|
111
|
+
* @param {Ext.grid.Grid} grid The grid this store will be bound to
|
|
112
|
+
* @param {Object} source The source data config object
|
|
113
|
+
*/
|
|
114
|
+
Ext.grid.PropertyColumnModel = function(grid, store){
|
|
115
|
+
var g = Ext.grid,
|
|
116
|
+
f = Ext.form;
|
|
117
|
+
|
|
118
|
+
this.grid = grid;
|
|
119
|
+
g.PropertyColumnModel.superclass.constructor.call(this, [
|
|
120
|
+
{header: this.nameText, width:50, sortable: true, dataIndex:'name', id: 'name', menuDisabled:true},
|
|
121
|
+
{header: this.valueText, width:50, resizable:false, dataIndex: 'value', id: 'value', menuDisabled:true}
|
|
122
|
+
]);
|
|
123
|
+
this.store = store;
|
|
124
|
+
|
|
125
|
+
var bfield = new f.Field({
|
|
126
|
+
autoCreate: {tag: 'select', children: [
|
|
127
|
+
{tag: 'option', value: 'true', html: 'true'},
|
|
128
|
+
{tag: 'option', value: 'false', html: 'false'}
|
|
129
|
+
]},
|
|
130
|
+
getValue : function(){
|
|
131
|
+
return this.el.value == 'true';
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
this.editors = {
|
|
135
|
+
'date' : new g.GridEditor(new f.DateField({selectOnFocus:true})),
|
|
136
|
+
'string' : new g.GridEditor(new f.TextField({selectOnFocus:true})),
|
|
137
|
+
'number' : new g.GridEditor(new f.NumberField({selectOnFocus:true, style:'text-align:left;'})),
|
|
138
|
+
'boolean' : new g.GridEditor(bfield)
|
|
139
|
+
};
|
|
140
|
+
this.renderCellDelegate = this.renderCell.createDelegate(this);
|
|
141
|
+
this.renderPropDelegate = this.renderProp.createDelegate(this);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
Ext.extend(Ext.grid.PropertyColumnModel, Ext.grid.ColumnModel, {
|
|
145
|
+
// private - strings used for locale support
|
|
146
|
+
nameText : 'Name',
|
|
147
|
+
valueText : 'Value',
|
|
148
|
+
dateFormat : 'm/j/Y',
|
|
149
|
+
|
|
150
|
+
// private
|
|
151
|
+
renderDate : function(dateVal){
|
|
152
|
+
return dateVal.dateFormat(this.dateFormat);
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
// private
|
|
156
|
+
renderBool : function(bVal){
|
|
157
|
+
return bVal ? 'true' : 'false';
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
// private
|
|
161
|
+
isCellEditable : function(colIndex, rowIndex){
|
|
162
|
+
return colIndex == 1;
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
// private
|
|
166
|
+
getRenderer : function(col){
|
|
167
|
+
return col == 1 ?
|
|
168
|
+
this.renderCellDelegate : this.renderPropDelegate;
|
|
169
|
+
},
|
|
170
|
+
|
|
171
|
+
// private
|
|
172
|
+
renderProp : function(v){
|
|
173
|
+
return this.getPropertyName(v);
|
|
174
|
+
},
|
|
175
|
+
|
|
176
|
+
// private
|
|
177
|
+
renderCell : function(val){
|
|
178
|
+
var rv = val;
|
|
179
|
+
if(Ext.isDate(val)){
|
|
180
|
+
rv = this.renderDate(val);
|
|
181
|
+
}else if(typeof val == 'boolean'){
|
|
182
|
+
rv = this.renderBool(val);
|
|
183
|
+
}
|
|
184
|
+
return Ext.util.Format.htmlEncode(rv);
|
|
185
|
+
},
|
|
186
|
+
|
|
187
|
+
// private
|
|
188
|
+
getPropertyName : function(name){
|
|
189
|
+
var pn = this.grid.propertyNames;
|
|
190
|
+
return pn && pn[name] ? pn[name] : name;
|
|
191
|
+
},
|
|
192
|
+
|
|
193
|
+
// private
|
|
194
|
+
getCellEditor : function(colIndex, rowIndex){
|
|
195
|
+
var p = this.store.getProperty(rowIndex),
|
|
196
|
+
n = p.data.name,
|
|
197
|
+
val = p.data.value;
|
|
198
|
+
if(this.grid.customEditors[n]){
|
|
199
|
+
return this.grid.customEditors[n];
|
|
200
|
+
}
|
|
201
|
+
if(Ext.isDate(val)){
|
|
202
|
+
return this.editors.date;
|
|
203
|
+
}else if(typeof val == 'number'){
|
|
204
|
+
return this.editors.number;
|
|
205
|
+
}else if(typeof val == 'boolean'){
|
|
206
|
+
return this.editors['boolean'];
|
|
207
|
+
}else{
|
|
208
|
+
return this.editors.string;
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
|
|
212
|
+
// inherit docs
|
|
213
|
+
destroy : function(){
|
|
214
|
+
Ext.grid.PropertyColumnModel.superclass.destroy.call(this);
|
|
215
|
+
for(var ed in this.editors){
|
|
216
|
+
Ext.destroy(ed);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* @class Ext.grid.PropertyGrid
|
|
223
|
+
* @extends Ext.grid.EditorGridPanel
|
|
224
|
+
* A specialized grid implementation intended to mimic the traditional property grid as typically seen in
|
|
225
|
+
* development IDEs. Each row in the grid represents a property of some object, and the data is stored
|
|
226
|
+
* as a set of name/value pairs in {@link Ext.grid.PropertyRecord}s. Example usage:
|
|
227
|
+
* <pre><code>
|
|
228
|
+
var grid = new Ext.grid.PropertyGrid({
|
|
229
|
+
title: 'Properties Grid',
|
|
230
|
+
autoHeight: true,
|
|
231
|
+
width: 300,
|
|
232
|
+
renderTo: 'grid-ct',
|
|
233
|
+
source: {
|
|
234
|
+
"(name)": "My Object",
|
|
235
|
+
"Created": new Date(Date.parse('10/15/2006')),
|
|
236
|
+
"Available": false,
|
|
237
|
+
"Version": .01,
|
|
238
|
+
"Description": "A test object"
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
</code></pre>
|
|
242
|
+
* @constructor
|
|
243
|
+
* @param {Object} config The grid config object
|
|
244
|
+
*/
|
|
245
|
+
Ext.grid.PropertyGrid = Ext.extend(Ext.grid.EditorGridPanel, {
|
|
246
|
+
/**
|
|
247
|
+
* @cfg {Object} propertyNames An object containing property name/display name pairs.
|
|
248
|
+
* If specified, the display name will be shown in the name column instead of the property name.
|
|
249
|
+
*/
|
|
250
|
+
/**
|
|
251
|
+
* @cfg {Object} source A data object to use as the data source of the grid (see {@link #setSource} for details).
|
|
252
|
+
*/
|
|
253
|
+
/**
|
|
254
|
+
* @cfg {Object} customEditors An object containing name/value pairs of custom editor type definitions that allow
|
|
255
|
+
* the grid to support additional types of editable fields. By default, the grid supports strongly-typed editing
|
|
256
|
+
* of strings, dates, numbers and booleans using built-in form editors, but any custom type can be supported and
|
|
257
|
+
* associated with a custom input control by specifying a custom editor. The name of the editor
|
|
258
|
+
* type should correspond with the name of the property that will use the editor. Example usage:
|
|
259
|
+
* <pre><code>
|
|
260
|
+
var grid = new Ext.grid.PropertyGrid({
|
|
261
|
+
...
|
|
262
|
+
customEditors: {
|
|
263
|
+
'Start Time': new Ext.grid.GridEditor(new Ext.form.TimeField({selectOnFocus:true}))
|
|
264
|
+
},
|
|
265
|
+
source: {
|
|
266
|
+
'Start Time': '10:00 AM'
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
</code></pre>
|
|
270
|
+
*/
|
|
271
|
+
|
|
272
|
+
// private config overrides
|
|
273
|
+
enableColumnMove:false,
|
|
274
|
+
stripeRows:false,
|
|
275
|
+
trackMouseOver: false,
|
|
276
|
+
clicksToEdit:1,
|
|
277
|
+
enableHdMenu : false,
|
|
278
|
+
viewConfig : {
|
|
279
|
+
forceFit:true
|
|
280
|
+
},
|
|
281
|
+
|
|
282
|
+
// private
|
|
283
|
+
initComponent : function(){
|
|
284
|
+
this.customEditors = this.customEditors || {};
|
|
285
|
+
this.lastEditRow = null;
|
|
286
|
+
var store = new Ext.grid.PropertyStore(this);
|
|
287
|
+
this.propStore = store;
|
|
288
|
+
var cm = new Ext.grid.PropertyColumnModel(this, store);
|
|
289
|
+
store.store.sort('name', 'ASC');
|
|
290
|
+
this.addEvents(
|
|
291
|
+
/**
|
|
292
|
+
* @event beforepropertychange
|
|
293
|
+
* Fires before a property value changes. Handlers can return false to cancel the property change
|
|
294
|
+
* (this will internally call {@link Ext.data.Record#reject} on the property's record).
|
|
295
|
+
* @param {Object} source The source data object for the grid (corresponds to the same object passed in
|
|
296
|
+
* as the {@link #source} config property).
|
|
297
|
+
* @param {String} recordId The record's id in the data store
|
|
298
|
+
* @param {Mixed} value The current edited property value
|
|
299
|
+
* @param {Mixed} oldValue The original property value prior to editing
|
|
300
|
+
*/
|
|
301
|
+
'beforepropertychange',
|
|
302
|
+
/**
|
|
303
|
+
* @event propertychange
|
|
304
|
+
* Fires after a property value has changed.
|
|
305
|
+
* @param {Object} source The source data object for the grid (corresponds to the same object passed in
|
|
306
|
+
* as the {@link #source} config property).
|
|
307
|
+
* @param {String} recordId The record's id in the data store
|
|
308
|
+
* @param {Mixed} value The current edited property value
|
|
309
|
+
* @param {Mixed} oldValue The original property value prior to editing
|
|
310
|
+
*/
|
|
311
|
+
'propertychange'
|
|
312
|
+
);
|
|
313
|
+
this.cm = cm;
|
|
314
|
+
this.ds = store.store;
|
|
315
|
+
Ext.grid.PropertyGrid.superclass.initComponent.call(this);
|
|
316
|
+
|
|
317
|
+
this.mon(this.selModel, 'beforecellselect', function(sm, rowIndex, colIndex){
|
|
318
|
+
if(colIndex === 0){
|
|
319
|
+
this.startEditing.defer(200, this, [rowIndex, 1]);
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
}, this);
|
|
323
|
+
},
|
|
324
|
+
|
|
325
|
+
// private
|
|
326
|
+
onRender : function(){
|
|
327
|
+
Ext.grid.PropertyGrid.superclass.onRender.apply(this, arguments);
|
|
328
|
+
|
|
329
|
+
this.getGridEl().addClass('x-props-grid');
|
|
330
|
+
},
|
|
331
|
+
|
|
332
|
+
// private
|
|
333
|
+
afterRender: function(){
|
|
334
|
+
Ext.grid.PropertyGrid.superclass.afterRender.apply(this, arguments);
|
|
335
|
+
if(this.source){
|
|
336
|
+
this.setSource(this.source);
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Sets the source data object containing the property data. The data object can contain one or more name/value
|
|
342
|
+
* pairs representing all of the properties of an object to display in the grid, and this data will automatically
|
|
343
|
+
* be loaded into the grid's {@link #store}. The values should be supplied in the proper data type if needed,
|
|
344
|
+
* otherwise string type will be assumed. If the grid already contains data, this method will replace any
|
|
345
|
+
* existing data. See also the {@link #source} config value. Example usage:
|
|
346
|
+
* <pre><code>
|
|
347
|
+
grid.setSource({
|
|
348
|
+
"(name)": "My Object",
|
|
349
|
+
"Created": new Date(Date.parse('10/15/2006')), // date type
|
|
350
|
+
"Available": false, // boolean type
|
|
351
|
+
"Version": .01, // decimal type
|
|
352
|
+
"Description": "A test object"
|
|
353
|
+
});
|
|
354
|
+
</code></pre>
|
|
355
|
+
* @param {Object} source The data object
|
|
356
|
+
*/
|
|
357
|
+
setSource : function(source){
|
|
358
|
+
this.propStore.setSource(source);
|
|
359
|
+
},
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Gets the source data object containing the property data. See {@link #setSource} for details regarding the
|
|
363
|
+
* format of the data object.
|
|
364
|
+
* @return {Object} The data object
|
|
365
|
+
*/
|
|
366
|
+
getSource : function(){
|
|
367
|
+
return this.propStore.getSource();
|
|
368
|
+
}
|
|
369
|
+
});
|
|
370
|
+
Ext.reg("propertygrid", Ext.grid.PropertyGrid);
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Ext JS Library 3.0.0
|
|
3
|
+
* Copyright(c) 2006-2009 Ext JS, LLC
|
|
4
|
+
* licensing@extjs.com
|
|
5
|
+
* http://www.extjs.com/license
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @class Ext.grid.RowNumberer
|
|
9
|
+
* This is a utility class that can be passed into a {@link Ext.grid.ColumnModel} as a column config that provides
|
|
10
|
+
* an automatic row numbering column.
|
|
11
|
+
* <br>Usage:<br>
|
|
12
|
+
<pre><code>
|
|
13
|
+
// This is a typical column config with the first column providing row numbers
|
|
14
|
+
var colModel = new Ext.grid.ColumnModel([
|
|
15
|
+
new Ext.grid.RowNumberer(),
|
|
16
|
+
{header: "Name", width: 80, sortable: true},
|
|
17
|
+
{header: "Code", width: 50, sortable: true},
|
|
18
|
+
{header: "Description", width: 200, sortable: true}
|
|
19
|
+
]);
|
|
20
|
+
</code></pre>
|
|
21
|
+
* @constructor
|
|
22
|
+
* @param {Object} config The configuration options
|
|
23
|
+
*/
|
|
24
|
+
Ext.grid.RowNumberer = function(config){
|
|
25
|
+
Ext.apply(this, config);
|
|
26
|
+
if(this.rowspan){
|
|
27
|
+
this.renderer = this.renderer.createDelegate(this);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
Ext.grid.RowNumberer.prototype = {
|
|
32
|
+
/**
|
|
33
|
+
* @cfg {String} header Any valid text or HTML fragment to display in the header cell for the row
|
|
34
|
+
* number column (defaults to '').
|
|
35
|
+
*/
|
|
36
|
+
header: "",
|
|
37
|
+
/**
|
|
38
|
+
* @cfg {Number} width The default width in pixels of the row number column (defaults to 23).
|
|
39
|
+
*/
|
|
40
|
+
width: 23,
|
|
41
|
+
/**
|
|
42
|
+
* @cfg {Boolean} sortable True if the row number column is sortable (defaults to false).
|
|
43
|
+
* @hide
|
|
44
|
+
*/
|
|
45
|
+
sortable: false,
|
|
46
|
+
|
|
47
|
+
// private
|
|
48
|
+
fixed:true,
|
|
49
|
+
menuDisabled:true,
|
|
50
|
+
dataIndex: '',
|
|
51
|
+
id: 'numberer',
|
|
52
|
+
rowspan: undefined,
|
|
53
|
+
|
|
54
|
+
// private
|
|
55
|
+
renderer : function(v, p, record, rowIndex){
|
|
56
|
+
if(this.rowspan){
|
|
57
|
+
p.cellAttr = 'rowspan="'+this.rowspan+'"';
|
|
58
|
+
}
|
|
59
|
+
return rowIndex+1;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
@@ -0,0 +1,530 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Ext JS Library 3.0.0
|
|
3
|
+
* Copyright(c) 2006-2009 Ext JS, LLC
|
|
4
|
+
* licensing@extjs.com
|
|
5
|
+
* http://www.extjs.com/license
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @class Ext.grid.RowSelectionModel
|
|
9
|
+
* @extends Ext.grid.AbstractSelectionModel
|
|
10
|
+
* The default SelectionModel used by {@link Ext.grid.GridPanel}.
|
|
11
|
+
* It supports multiple selections and keyboard selection/navigation. The objects stored
|
|
12
|
+
* as selections and returned by {@link #getSelected}, and {@link #getSelections} are
|
|
13
|
+
* the {@link Ext.data.Record Record}s which provide the data for the selected rows.
|
|
14
|
+
* @constructor
|
|
15
|
+
* @param {Object} config
|
|
16
|
+
*/
|
|
17
|
+
Ext.grid.RowSelectionModel = function(config){
|
|
18
|
+
Ext.apply(this, config);
|
|
19
|
+
this.selections = new Ext.util.MixedCollection(false, function(o){
|
|
20
|
+
return o.id;
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
this.last = false;
|
|
24
|
+
this.lastActive = false;
|
|
25
|
+
|
|
26
|
+
this.addEvents(
|
|
27
|
+
/**
|
|
28
|
+
* @event selectionchange
|
|
29
|
+
* Fires when the selection changes
|
|
30
|
+
* @param {SelectionModel} this
|
|
31
|
+
*/
|
|
32
|
+
"selectionchange",
|
|
33
|
+
/**
|
|
34
|
+
* @event beforerowselect
|
|
35
|
+
* Fires before a row is selected, return false to cancel the selection.
|
|
36
|
+
* @param {SelectionModel} this
|
|
37
|
+
* @param {Number} rowIndex The index to be selected
|
|
38
|
+
* @param {Boolean} keepExisting False if other selections will be cleared
|
|
39
|
+
* @param {Record} record The record to be selected
|
|
40
|
+
*/
|
|
41
|
+
"beforerowselect",
|
|
42
|
+
/**
|
|
43
|
+
* @event rowselect
|
|
44
|
+
* Fires when a row is selected.
|
|
45
|
+
* @param {SelectionModel} this
|
|
46
|
+
* @param {Number} rowIndex The selected index
|
|
47
|
+
* @param {Ext.data.Record} r The selected record
|
|
48
|
+
*/
|
|
49
|
+
"rowselect",
|
|
50
|
+
/**
|
|
51
|
+
* @event rowdeselect
|
|
52
|
+
* Fires when a row is deselected. To prevent deselection
|
|
53
|
+
* {@link Ext.grid.AbstractSelectionModel#lock lock the selections}.
|
|
54
|
+
* @param {SelectionModel} this
|
|
55
|
+
* @param {Number} rowIndex
|
|
56
|
+
* @param {Record} record
|
|
57
|
+
*/
|
|
58
|
+
"rowdeselect"
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
Ext.grid.RowSelectionModel.superclass.constructor.call(this);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
Ext.extend(Ext.grid.RowSelectionModel, Ext.grid.AbstractSelectionModel, {
|
|
65
|
+
/**
|
|
66
|
+
* @cfg {Boolean} singleSelect
|
|
67
|
+
* <tt>true</tt> to allow selection of only one row at a time (defaults to <tt>false</tt>
|
|
68
|
+
* allowing multiple selections)
|
|
69
|
+
*/
|
|
70
|
+
singleSelect : false,
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @cfg {Boolean} moveEditorOnEnter
|
|
74
|
+
* <tt>false</tt> to turn off moving the editor to the next row down when the enter key is pressed
|
|
75
|
+
* or the next row up when shift + enter keys are pressed.
|
|
76
|
+
*/
|
|
77
|
+
// private
|
|
78
|
+
initEvents : function(){
|
|
79
|
+
|
|
80
|
+
if(!this.grid.enableDragDrop && !this.grid.enableDrag){
|
|
81
|
+
this.grid.on("rowmousedown", this.handleMouseDown, this);
|
|
82
|
+
}else{ // allow click to work like normal
|
|
83
|
+
this.grid.on("rowclick", function(grid, rowIndex, e) {
|
|
84
|
+
if(e.button === 0 && !e.shiftKey && !e.ctrlKey) {
|
|
85
|
+
this.selectRow(rowIndex, false);
|
|
86
|
+
grid.view.focusRow(rowIndex);
|
|
87
|
+
}
|
|
88
|
+
}, this);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
this.rowNav = new Ext.KeyNav(this.grid.getGridEl(), {
|
|
92
|
+
"up" : function(e){
|
|
93
|
+
if(!e.shiftKey || this.singleSelect){
|
|
94
|
+
this.selectPrevious(false);
|
|
95
|
+
}else if(this.last !== false && this.lastActive !== false){
|
|
96
|
+
var last = this.last;
|
|
97
|
+
this.selectRange(this.last, this.lastActive-1);
|
|
98
|
+
this.grid.getView().focusRow(this.lastActive);
|
|
99
|
+
if(last !== false){
|
|
100
|
+
this.last = last;
|
|
101
|
+
}
|
|
102
|
+
}else{
|
|
103
|
+
this.selectFirstRow();
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"down" : function(e){
|
|
107
|
+
if(!e.shiftKey || this.singleSelect){
|
|
108
|
+
this.selectNext(false);
|
|
109
|
+
}else if(this.last !== false && this.lastActive !== false){
|
|
110
|
+
var last = this.last;
|
|
111
|
+
this.selectRange(this.last, this.lastActive+1);
|
|
112
|
+
this.grid.getView().focusRow(this.lastActive);
|
|
113
|
+
if(last !== false){
|
|
114
|
+
this.last = last;
|
|
115
|
+
}
|
|
116
|
+
}else{
|
|
117
|
+
this.selectFirstRow();
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
scope: this
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
var view = this.grid.view;
|
|
124
|
+
view.on("refresh", this.onRefresh, this);
|
|
125
|
+
view.on("rowupdated", this.onRowUpdated, this);
|
|
126
|
+
view.on("rowremoved", this.onRemove, this);
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
// private
|
|
130
|
+
onRefresh : function(){
|
|
131
|
+
var ds = this.grid.store, index;
|
|
132
|
+
var s = this.getSelections();
|
|
133
|
+
this.clearSelections(true);
|
|
134
|
+
for(var i = 0, len = s.length; i < len; i++){
|
|
135
|
+
var r = s[i];
|
|
136
|
+
if((index = ds.indexOfId(r.id)) != -1){
|
|
137
|
+
this.selectRow(index, true);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if(s.length != this.selections.getCount()){
|
|
141
|
+
this.fireEvent("selectionchange", this);
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
// private
|
|
146
|
+
onRemove : function(v, index, r){
|
|
147
|
+
if(this.selections.remove(r) !== false){
|
|
148
|
+
this.fireEvent('selectionchange', this);
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
// private
|
|
153
|
+
onRowUpdated : function(v, index, r){
|
|
154
|
+
if(this.isSelected(r)){
|
|
155
|
+
v.onRowSelect(index);
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Select records.
|
|
161
|
+
* @param {Array} records The records to select
|
|
162
|
+
* @param {Boolean} keepExisting (optional) <tt>true</tt> to keep existing selections
|
|
163
|
+
*/
|
|
164
|
+
selectRecords : function(records, keepExisting){
|
|
165
|
+
if(!keepExisting){
|
|
166
|
+
this.clearSelections();
|
|
167
|
+
}
|
|
168
|
+
var ds = this.grid.store;
|
|
169
|
+
for(var i = 0, len = records.length; i < len; i++){
|
|
170
|
+
this.selectRow(ds.indexOf(records[i]), true);
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Gets the number of selected rows.
|
|
176
|
+
* @return {Number}
|
|
177
|
+
*/
|
|
178
|
+
getCount : function(){
|
|
179
|
+
return this.selections.length;
|
|
180
|
+
},
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Selects the first row in the grid.
|
|
184
|
+
*/
|
|
185
|
+
selectFirstRow : function(){
|
|
186
|
+
this.selectRow(0);
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Select the last row.
|
|
191
|
+
* @param {Boolean} keepExisting (optional) <tt>true</tt> to keep existing selections
|
|
192
|
+
*/
|
|
193
|
+
selectLastRow : function(keepExisting){
|
|
194
|
+
this.selectRow(this.grid.store.getCount() - 1, keepExisting);
|
|
195
|
+
},
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Selects the row immediately following the last selected row.
|
|
199
|
+
* @param {Boolean} keepExisting (optional) <tt>true</tt> to keep existing selections
|
|
200
|
+
* @return {Boolean} <tt>true</tt> if there is a next row, else <tt>false</tt>
|
|
201
|
+
*/
|
|
202
|
+
selectNext : function(keepExisting){
|
|
203
|
+
if(this.hasNext()){
|
|
204
|
+
this.selectRow(this.last+1, keepExisting);
|
|
205
|
+
this.grid.getView().focusRow(this.last);
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
return false;
|
|
209
|
+
},
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Selects the row that precedes the last selected row.
|
|
213
|
+
* @param {Boolean} keepExisting (optional) <tt>true</tt> to keep existing selections
|
|
214
|
+
* @return {Boolean} <tt>true</tt> if there is a previous row, else <tt>false</tt>
|
|
215
|
+
*/
|
|
216
|
+
selectPrevious : function(keepExisting){
|
|
217
|
+
if(this.hasPrevious()){
|
|
218
|
+
this.selectRow(this.last-1, keepExisting);
|
|
219
|
+
this.grid.getView().focusRow(this.last);
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
return false;
|
|
223
|
+
},
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Returns true if there is a next record to select
|
|
227
|
+
* @return {Boolean}
|
|
228
|
+
*/
|
|
229
|
+
hasNext : function(){
|
|
230
|
+
return this.last !== false && (this.last+1) < this.grid.store.getCount();
|
|
231
|
+
},
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Returns true if there is a previous record to select
|
|
235
|
+
* @return {Boolean}
|
|
236
|
+
*/
|
|
237
|
+
hasPrevious : function(){
|
|
238
|
+
return !!this.last;
|
|
239
|
+
},
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Returns the selected records
|
|
244
|
+
* @return {Array} Array of selected records
|
|
245
|
+
*/
|
|
246
|
+
getSelections : function(){
|
|
247
|
+
return [].concat(this.selections.items);
|
|
248
|
+
},
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Returns the first selected record.
|
|
252
|
+
* @return {Record}
|
|
253
|
+
*/
|
|
254
|
+
getSelected : function(){
|
|
255
|
+
return this.selections.itemAt(0);
|
|
256
|
+
},
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Calls the passed function with each selection. If the function returns
|
|
260
|
+
* <tt>false</tt>, iteration is stopped and this function returns
|
|
261
|
+
* <tt>false</tt>. Otherwise it returns <tt>true</tt>.
|
|
262
|
+
* @param {Function} fn
|
|
263
|
+
* @param {Object} scope (optional)
|
|
264
|
+
* @return {Boolean} true if all selections were iterated
|
|
265
|
+
*/
|
|
266
|
+
each : function(fn, scope){
|
|
267
|
+
var s = this.getSelections();
|
|
268
|
+
for(var i = 0, len = s.length; i < len; i++){
|
|
269
|
+
if(fn.call(scope || this, s[i], i) === false){
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return true;
|
|
274
|
+
},
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Clears all selections if the selection model
|
|
278
|
+
* {@link Ext.grid.AbstractSelectionModel#isLocked is not locked}.
|
|
279
|
+
* @param {Boolean} fast (optional) <tt>true</tt> to bypass the
|
|
280
|
+
* conditional checks and events described in {@link #deselectRow}.
|
|
281
|
+
*/
|
|
282
|
+
clearSelections : function(fast){
|
|
283
|
+
if(this.isLocked()){
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
if(fast !== true){
|
|
287
|
+
var ds = this.grid.store;
|
|
288
|
+
var s = this.selections;
|
|
289
|
+
s.each(function(r){
|
|
290
|
+
this.deselectRow(ds.indexOfId(r.id));
|
|
291
|
+
}, this);
|
|
292
|
+
s.clear();
|
|
293
|
+
}else{
|
|
294
|
+
this.selections.clear();
|
|
295
|
+
}
|
|
296
|
+
this.last = false;
|
|
297
|
+
},
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Selects all rows if the selection model
|
|
302
|
+
* {@link Ext.grid.AbstractSelectionModel#isLocked is not locked}.
|
|
303
|
+
*/
|
|
304
|
+
selectAll : function(){
|
|
305
|
+
if(this.isLocked()){
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
this.selections.clear();
|
|
309
|
+
for(var i = 0, len = this.grid.store.getCount(); i < len; i++){
|
|
310
|
+
this.selectRow(i, true);
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Returns <tt>true</tt> if there is a selection.
|
|
316
|
+
* @return {Boolean}
|
|
317
|
+
*/
|
|
318
|
+
hasSelection : function(){
|
|
319
|
+
return this.selections.length > 0;
|
|
320
|
+
},
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Returns <tt>true</tt> if the specified row is selected.
|
|
324
|
+
* @param {Number/Record} index The record or index of the record to check
|
|
325
|
+
* @return {Boolean}
|
|
326
|
+
*/
|
|
327
|
+
isSelected : function(index){
|
|
328
|
+
var r = typeof index == "number" ? this.grid.store.getAt(index) : index;
|
|
329
|
+
return (r && this.selections.key(r.id) ? true : false);
|
|
330
|
+
},
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* Returns <tt>true</tt> if the specified record id is selected.
|
|
334
|
+
* @param {String} id The id of record to check
|
|
335
|
+
* @return {Boolean}
|
|
336
|
+
*/
|
|
337
|
+
isIdSelected : function(id){
|
|
338
|
+
return (this.selections.key(id) ? true : false);
|
|
339
|
+
},
|
|
340
|
+
|
|
341
|
+
// private
|
|
342
|
+
handleMouseDown : function(g, rowIndex, e){
|
|
343
|
+
if(e.button !== 0 || this.isLocked()){
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
var view = this.grid.getView();
|
|
347
|
+
if(e.shiftKey && !this.singleSelect && this.last !== false){
|
|
348
|
+
var last = this.last;
|
|
349
|
+
this.selectRange(last, rowIndex, e.ctrlKey);
|
|
350
|
+
this.last = last; // reset the last
|
|
351
|
+
view.focusRow(rowIndex);
|
|
352
|
+
}else{
|
|
353
|
+
var isSelected = this.isSelected(rowIndex);
|
|
354
|
+
if(e.ctrlKey && isSelected){
|
|
355
|
+
this.deselectRow(rowIndex);
|
|
356
|
+
}else if(!isSelected || this.getCount() > 1){
|
|
357
|
+
this.selectRow(rowIndex, e.ctrlKey || e.shiftKey);
|
|
358
|
+
view.focusRow(rowIndex);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Selects multiple rows.
|
|
365
|
+
* @param {Array} rows Array of the indexes of the row to select
|
|
366
|
+
* @param {Boolean} keepExisting (optional) <tt>true</tt> to keep
|
|
367
|
+
* existing selections (defaults to <tt>false</tt>)
|
|
368
|
+
*/
|
|
369
|
+
selectRows : function(rows, keepExisting){
|
|
370
|
+
if(!keepExisting){
|
|
371
|
+
this.clearSelections();
|
|
372
|
+
}
|
|
373
|
+
for(var i = 0, len = rows.length; i < len; i++){
|
|
374
|
+
this.selectRow(rows[i], true);
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* Selects a range of rows if the selection model
|
|
380
|
+
* {@link Ext.grid.AbstractSelectionModel#isLocked is not locked}.
|
|
381
|
+
* All rows in between startRow and endRow are also selected.
|
|
382
|
+
* @param {Number} startRow The index of the first row in the range
|
|
383
|
+
* @param {Number} endRow The index of the last row in the range
|
|
384
|
+
* @param {Boolean} keepExisting (optional) True to retain existing selections
|
|
385
|
+
*/
|
|
386
|
+
selectRange : function(startRow, endRow, keepExisting){
|
|
387
|
+
var i;
|
|
388
|
+
if(this.isLocked()){
|
|
389
|
+
return;
|
|
390
|
+
}
|
|
391
|
+
if(!keepExisting){
|
|
392
|
+
this.clearSelections();
|
|
393
|
+
}
|
|
394
|
+
if(startRow <= endRow){
|
|
395
|
+
for(i = startRow; i <= endRow; i++){
|
|
396
|
+
this.selectRow(i, true);
|
|
397
|
+
}
|
|
398
|
+
}else{
|
|
399
|
+
for(i = startRow; i >= endRow; i--){
|
|
400
|
+
this.selectRow(i, true);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Deselects a range of rows if the selection model
|
|
407
|
+
* {@link Ext.grid.AbstractSelectionModel#isLocked is not locked}.
|
|
408
|
+
* All rows in between startRow and endRow are also deselected.
|
|
409
|
+
* @param {Number} startRow The index of the first row in the range
|
|
410
|
+
* @param {Number} endRow The index of the last row in the range
|
|
411
|
+
*/
|
|
412
|
+
deselectRange : function(startRow, endRow, preventViewNotify){
|
|
413
|
+
if(this.isLocked()){
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
for(var i = startRow; i <= endRow; i++){
|
|
417
|
+
this.deselectRow(i, preventViewNotify);
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
|
|
421
|
+
/**
|
|
422
|
+
* Selects a row. Before selecting a row, checks if the selection model
|
|
423
|
+
* {@link Ext.grid.AbstractSelectionModel#isLocked is locked} and fires the
|
|
424
|
+
* {@link #beforerowselect} event. If these checks are satisfied the row
|
|
425
|
+
* will be selected and followed up by firing the {@link #rowselect} and
|
|
426
|
+
* {@link #selectionchange} events.
|
|
427
|
+
* @param {Number} row The index of the row to select
|
|
428
|
+
* @param {Boolean} keepExisting (optional) <tt>true</tt> to keep existing selections
|
|
429
|
+
* @param {Boolean} preventViewNotify (optional) Specify <tt>true</tt> to
|
|
430
|
+
* prevent notifying the view (disables updating the selected appearance)
|
|
431
|
+
*/
|
|
432
|
+
selectRow : function(index, keepExisting, preventViewNotify){
|
|
433
|
+
if(this.isLocked() || (index < 0 || index >= this.grid.store.getCount()) || (keepExisting && this.isSelected(index))){
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
var r = this.grid.store.getAt(index);
|
|
437
|
+
if(r && this.fireEvent("beforerowselect", this, index, keepExisting, r) !== false){
|
|
438
|
+
if(!keepExisting || this.singleSelect){
|
|
439
|
+
this.clearSelections();
|
|
440
|
+
}
|
|
441
|
+
this.selections.add(r);
|
|
442
|
+
this.last = this.lastActive = index;
|
|
443
|
+
if(!preventViewNotify){
|
|
444
|
+
this.grid.getView().onRowSelect(index);
|
|
445
|
+
}
|
|
446
|
+
this.fireEvent("rowselect", this, index, r);
|
|
447
|
+
this.fireEvent("selectionchange", this);
|
|
448
|
+
}
|
|
449
|
+
},
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Deselects a row. Before deselecting a row, checks if the selection model
|
|
453
|
+
* {@link Ext.grid.AbstractSelectionModel#isLocked is locked}.
|
|
454
|
+
* If this check is satisfied the row will be deselected and followed up by
|
|
455
|
+
* firing the {@link #rowdeselect} and {@link #selectionchange} events.
|
|
456
|
+
* @param {Number} row The index of the row to deselect
|
|
457
|
+
* @param {Boolean} preventViewNotify (optional) Specify <tt>true</tt> to
|
|
458
|
+
* prevent notifying the view (disables updating the selected appearance)
|
|
459
|
+
*/
|
|
460
|
+
deselectRow : function(index, preventViewNotify){
|
|
461
|
+
if(this.isLocked()){
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
if(this.last == index){
|
|
465
|
+
this.last = false;
|
|
466
|
+
}
|
|
467
|
+
if(this.lastActive == index){
|
|
468
|
+
this.lastActive = false;
|
|
469
|
+
}
|
|
470
|
+
var r = this.grid.store.getAt(index);
|
|
471
|
+
if(r){
|
|
472
|
+
this.selections.remove(r);
|
|
473
|
+
if(!preventViewNotify){
|
|
474
|
+
this.grid.getView().onRowDeselect(index);
|
|
475
|
+
}
|
|
476
|
+
this.fireEvent("rowdeselect", this, index, r);
|
|
477
|
+
this.fireEvent("selectionchange", this);
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
|
|
481
|
+
// private
|
|
482
|
+
restoreLast : function(){
|
|
483
|
+
if(this._last){
|
|
484
|
+
this.last = this._last;
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
|
|
488
|
+
// private
|
|
489
|
+
acceptsNav : function(row, col, cm){
|
|
490
|
+
return !cm.isHidden(col) && cm.isCellEditable(col, row);
|
|
491
|
+
},
|
|
492
|
+
|
|
493
|
+
// private
|
|
494
|
+
onEditorKey : function(field, e){
|
|
495
|
+
var k = e.getKey(), newCell, g = this.grid, ed = g.activeEditor;
|
|
496
|
+
var shift = e.shiftKey;
|
|
497
|
+
if(k == e.TAB){
|
|
498
|
+
e.stopEvent();
|
|
499
|
+
ed.completeEdit();
|
|
500
|
+
if(shift){
|
|
501
|
+
newCell = g.walkCells(ed.row, ed.col-1, -1, this.acceptsNav, this);
|
|
502
|
+
}else{
|
|
503
|
+
newCell = g.walkCells(ed.row, ed.col+1, 1, this.acceptsNav, this);
|
|
504
|
+
}
|
|
505
|
+
}else if(k == e.ENTER){
|
|
506
|
+
e.stopEvent();
|
|
507
|
+
ed.completeEdit();
|
|
508
|
+
if(this.moveEditorOnEnter !== false){
|
|
509
|
+
if(shift){
|
|
510
|
+
newCell = g.walkCells(ed.row - 1, ed.col, -1, this.acceptsNav, this);
|
|
511
|
+
}else{
|
|
512
|
+
newCell = g.walkCells(ed.row + 1, ed.col, 1, this.acceptsNav, this);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
}else if(k == e.ESC){
|
|
516
|
+
ed.cancelEdit();
|
|
517
|
+
}
|
|
518
|
+
if(newCell){
|
|
519
|
+
g.startEditing(newCell[0], newCell[1]);
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
|
|
523
|
+
destroy: function(){
|
|
524
|
+
if(this.rowNav){
|
|
525
|
+
this.rowNav.disable();
|
|
526
|
+
this.rowNav = null;
|
|
527
|
+
}
|
|
528
|
+
Ext.grid.RowSelectionModel.superclass.destroy.call(this);
|
|
529
|
+
}
|
|
530
|
+
});
|