extjs-rails 4.1.0.alpha1
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/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE +36 -0
- data/README.md +29 -0
- data/Rakefile +2 -0
- data/app/assets/javascripts/extjs-rails/extjs-rails.js +1 -0
- data/app/assets/javascripts/extjs-rails/index.js.erb +9 -0
- data/app/assets/javascripts/extjs-rails/sdk.jsb3 +2017 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractComponent.js +3290 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractManager.js +144 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractPlugin.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/Action.js +276 -0
- data/app/assets/javascripts/extjs-rails/src/Ajax.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/Component.js +1344 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentLoader.js +202 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentManager.js +47 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentQuery.js +521 -0
- data/app/assets/javascripts/extjs-rails/src/Editor.js +494 -0
- data/app/assets/javascripts/extjs-rails/src/ElementLoader.js +404 -0
- data/app/assets/javascripts/extjs-rails/src/FocusManager.js +712 -0
- data/app/assets/javascripts/extjs-rails/src/Img.js +111 -0
- data/app/assets/javascripts/extjs-rails/src/Layer.js +543 -0
- data/app/assets/javascripts/extjs-rails/src/LoadMask.js +432 -0
- data/app/assets/javascripts/extjs-rails/src/ModelManager.js +186 -0
- data/app/assets/javascripts/extjs-rails/src/PluginManager.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/ProgressBar.js +336 -0
- data/app/assets/javascripts/extjs-rails/src/Shadow.js +233 -0
- data/app/assets/javascripts/extjs-rails/src/ShadowPool.js +43 -0
- data/app/assets/javascripts/extjs-rails/src/Template.js +331 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplate.js +365 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplateCompiler.js +450 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplateParser.js +249 -0
- data/app/assets/javascripts/extjs-rails/src/ZIndexManager.js +519 -0
- data/app/assets/javascripts/extjs-rails/src/app/Application.js +271 -0
- data/app/assets/javascripts/extjs-rails/src/app/Controller.js +458 -0
- data/app/assets/javascripts/extjs-rails/src/app/EventBus.js +112 -0
- data/app/assets/javascripts/extjs-rails/src/button/Button.js +1483 -0
- data/app/assets/javascripts/extjs-rails/src/button/Cycle.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/button/Split.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Callout.js +140 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Chart.js +966 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Highlight.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Label.js +241 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Legend.js +474 -0
- data/app/assets/javascripts/extjs-rails/src/chart/LegendItem.js +217 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Mask.js +230 -0
- data/app/assets/javascripts/extjs-rails/src/chart/MaskLayer.js +48 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Navigation.js +79 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Shape.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Tip.js +98 -0
- data/app/assets/javascripts/extjs-rails/src/chart/TipSurface.js +42 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Abstract.js +73 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Axis.js +961 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Category.js +130 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Gauge.js +203 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Numeric.js +235 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Radial.js +204 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Time.js +135 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Area.js +803 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Bar.js +853 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Cartesian.js +328 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Column.js +104 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Gauge.js +490 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Line.js +1104 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Pie.js +1072 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Radar.js +440 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Scatter.js +668 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Series.js +443 -0
- data/app/assets/javascripts/extjs-rails/src/chart/theme/Base.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/chart/theme/Theme.js +253 -0
- data/app/assets/javascripts/extjs-rails/src/container/AbstractContainer.js +1062 -0
- data/app/assets/javascripts/extjs-rails/src/container/ButtonGroup.js +143 -0
- data/app/assets/javascripts/extjs-rails/src/container/Container.js +212 -0
- data/app/assets/javascripts/extjs-rails/src/container/DockingContainer.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/container/Viewport.js +184 -0
- data/app/assets/javascripts/extjs-rails/src/core/dom/Element.form.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/core/dom/Element.static-more.js +159 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/index.html +321 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/index.js +6 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CTO.js +25 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CoolGuy.js +20 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Developer.js +43 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Gun.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/HumanResource.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Musician.js +20 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Person.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanComposeSongs.js +9 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanPlayGuitar.js +9 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanSing.js +18 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/A.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/B.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/C.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/D.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/E.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/A.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/B.js +4 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/C.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/EventManager.js +1167 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/EventObject.js +883 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Ext-more.js +1283 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Ext.js +736 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Support.js +662 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Base.js +1085 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Class.js +676 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/ClassManager.js +1591 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Loader.js +1423 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.alignment.js +173 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.insertion.js +193 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.js +681 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.position.js +356 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.static.js +474 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.style.js +851 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.traversal.js +180 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractHelper.js +291 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractQuery.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElement.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElementLite.js +436 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/DomQuery-aria.js +1049 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/Browser.js +186 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/FeatureDetector.js +274 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/OS.js +141 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Array.js +1205 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Date.js +1463 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Error.js +326 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Function.js +485 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Number.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Object.js +606 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/String.js +333 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/misc/JSON.js +236 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/perf/Accumulator.js +244 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/perf/Monitor.js +197 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/DelayedTask.js +71 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/Event.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/Format.js +551 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/TaskManager.js +417 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/version/Version.js +364 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/README.MD +91 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/bootstrap.js +39 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build-data.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build.sh +2 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/data.js +27 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/index.html +15 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom.html +40 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/extjs-api.js +12 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/platform-api.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/sanity.js +4 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api-out.js +128 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api.js +89 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/env/Environment.js +357 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/APITest.js +37 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/jsb3.js +14 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/test-setup.js +137 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/EventManager.js +629 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-mess.backup +198 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-more.js +520 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext.js +1550 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Support.js +250 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Base.js +47 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Class.js +561 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/ClassManager.js +555 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/CompositeElementLite.js +409 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/DomHelper.js +444 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.insertion.js +342 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.js +731 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.static.js +201 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.style.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.traversal.js +336 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Array.js +1229 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Date.js +697 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Error.js +277 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Function.js +536 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Number.js +323 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Object.js +591 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/String.js +451 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/misc/JSON.js +252 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/util/Format.js +521 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/version/Version.js +148 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/specs.html +19 -0
- data/app/assets/javascripts/extjs-rails/src/data/AbstractStore.js +887 -0
- data/app/assets/javascripts/extjs-rails/src/data/ArrayStore.js +74 -0
- data/app/assets/javascripts/extjs-rails/src/data/Batch.js +236 -0
- data/app/assets/javascripts/extjs-rails/src/data/BufferStore.js +13 -0
- data/app/assets/javascripts/extjs-rails/src/data/Connection.js +969 -0
- data/app/assets/javascripts/extjs-rails/src/data/DirectStore.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/data/Errors.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/data/Field.js +341 -0
- data/app/assets/javascripts/extjs-rails/src/data/IdGenerator.js +198 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonP.js +253 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonPStore.js +51 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonStore.js +60 -0
- data/app/assets/javascripts/extjs-rails/src/data/Model.js +1673 -0
- data/app/assets/javascripts/extjs-rails/src/data/NodeInterface.js +1294 -0
- data/app/assets/javascripts/extjs-rails/src/data/NodeStore.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/data/Operation.js +331 -0
- data/app/assets/javascripts/extjs-rails/src/data/Request.js +40 -0
- data/app/assets/javascripts/extjs-rails/src/data/ResultSet.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/data/SequentialIdGenerator.js +61 -0
- data/app/assets/javascripts/extjs-rails/src/data/SortTypes.js +125 -0
- data/app/assets/javascripts/extjs-rails/src/data/Store.js +2609 -0
- data/app/assets/javascripts/extjs-rails/src/data/StoreManager.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/data/Tree.js +290 -0
- data/app/assets/javascripts/extjs-rails/src/data/TreeStore.js +655 -0
- data/app/assets/javascripts/extjs-rails/src/data/Types.js +190 -0
- data/app/assets/javascripts/extjs-rails/src/data/UuidGenerator.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/data/XmlStore.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/Association.js +243 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/BelongsTo.js +291 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/HasMany.js +289 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/HasOne.js +304 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Ajax.js +282 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Client.js +21 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Direct.js +181 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/JsonP.js +313 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/LocalStorage.js +69 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Memory.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Proxy.js +433 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Rest.js +173 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Server.js +460 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/SessionStorage.js +39 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/WebStorage.js +546 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Array.js +68 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Json.js +383 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Reader.js +735 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Xml.js +292 -0
- data/app/assets/javascripts/extjs-rails/src/data/validations.js +149 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Json.js +81 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Writer.js +147 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Xml.js +88 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DD.js +300 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DDProxy.js +204 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DDTarget.js +171 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragDrop.js +1101 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragDropManager.js +1264 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragSource.js +392 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragTracker.js +562 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragZone.js +137 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DropTarget.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DropZone.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/dd/Registry.js +117 -0
- data/app/assets/javascripts/extjs-rails/src/dd/ScrollManager.js +218 -0
- data/app/assets/javascripts/extjs-rails/src/dd/StatusProxy.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/diag/layout/Context.js +523 -0
- data/app/assets/javascripts/extjs-rails/src/diag/layout/ContextItem.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Event.js +35 -0
- data/app/assets/javascripts/extjs-rails/src/direct/ExceptionEvent.js +16 -0
- data/app/assets/javascripts/extjs-rails/src/direct/JsonProvider.js +82 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Manager.js +263 -0
- data/app/assets/javascripts/extjs-rails/src/direct/PollingProvider.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Provider.js +96 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingEvent.js +24 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingMethod.js +100 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingProvider.js +510 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Transaction.js +41 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.alignment.js +378 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.anim.js +962 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.dd.js +40 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.fx.js +194 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.js +1407 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.position.js +501 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.scroll.js +214 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.style.js +792 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.traversal.js +8 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Helper.js +466 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Query.js +1067 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Color.js +303 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Component.js +245 -0
- data/app/assets/javascripts/extjs-rails/src/draw/CompositeSprite.js +299 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Draw.js +1217 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Matrix.js +183 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Sprite.js +554 -0
- data/app/assets/javascripts/extjs-rails/src/draw/SpriteDD.js +87 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Surface.js +1001 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Text.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/ImageExporter.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/Svg.js +734 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/SvgExporter.js +280 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/Vml.js +916 -0
- data/app/assets/javascripts/extjs-rails/src/flash/Component.js +248 -0
- data/app/assets/javascripts/extjs-rails/src/form/Basic.js +1018 -0
- data/app/assets/javascripts/extjs-rails/src/form/CheckboxGroup.js +441 -0
- data/app/assets/javascripts/extjs-rails/src/form/CheckboxManager.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldAncestor.js +210 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldContainer.js +290 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldSet.js +506 -0
- data/app/assets/javascripts/extjs-rails/src/form/Label.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/form/Labelable.js +764 -0
- data/app/assets/javascripts/extjs-rails/src/form/Panel.js +335 -0
- data/app/assets/javascripts/extjs-rails/src/form/RadioGroup.js +124 -0
- data/app/assets/javascripts/extjs-rails/src/form/RadioManager.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Action.js +307 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/DirectLoad.js +107 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/DirectSubmit.js +119 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Load.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/StandardSubmit.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Submit.js +257 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Base.js +813 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Checkbox.js +505 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/ComboBox.js +1427 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Date.js +578 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Display.js +155 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Field.js +430 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/File.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Hidden.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/HtmlEditor.js +1439 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Number.js +380 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Picker.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Radio.js +279 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Spinner.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Text.js +727 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/TextArea.js +228 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Time.js +459 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Trigger.js +469 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/VTypes.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Anim.js +472 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Animator.js +410 -0
- data/app/assets/javascripts/extjs-rails/src/fx/CubicBezier.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Easing.js +136 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Manager.js +353 -0
- data/app/assets/javascripts/extjs-rails/src/fx/PropertyHandler.js +381 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Queue.js +123 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Component.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElement.js +46 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElementCSS.js +22 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeSprite.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Element.js +83 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/ElementCSS.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Sprite.js +128 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Target.js +36 -0
- data/app/assets/javascripts/extjs-rails/src/grid/CellEditor.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ColumnComponentLayout.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ColumnLayout.js +201 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Lockable.js +863 -0
- data/app/assets/javascripts/extjs-rails/src/grid/LockingView.js +169 -0
- data/app/assets/javascripts/extjs-rails/src/grid/PagingScroller.js +539 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Panel.js +393 -0
- data/app/assets/javascripts/extjs-rails/src/grid/RowEditor.js +731 -0
- data/app/assets/javascripts/extjs-rails/src/grid/RowNumberer.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Scroller.js +5 -0
- data/app/assets/javascripts/extjs-rails/src/grid/View.js +44 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ViewDropZone.js +41 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Action.js +318 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Boolean.js +82 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Column.js +835 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Date.js +63 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Number.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Template.js +58 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/AbstractSummary.js +154 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Chunking.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Feature.js +158 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Grouping.js +822 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/GroupingSummary.js +243 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/RowBody.js +116 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/RowWrap.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Summary.js +167 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/Container.js +965 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/DragZone.js +69 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/DropZone.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/CellEditing.js +453 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/DragDrop.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/Editing.js +561 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderReorderer.js +49 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderResizer.js +292 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/RowEditing.js +339 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Grid.js +351 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/HeaderContainer.js +109 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Property.js +36 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Store.js +141 -0
- data/app/assets/javascripts/extjs-rails/src/layout/ClassList.js +90 -0
- data/app/assets/javascripts/extjs-rails/src/layout/Context.js +1232 -0
- data/app/assets/javascripts/extjs-rails/src/layout/ContextItem.js +1470 -0
- data/app/assets/javascripts/extjs-rails/src/layout/Layout.js +761 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Auto.js +220 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Body.js +80 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/BoundList.js +95 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Button.js +261 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Component.js +427 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Dock.js +1132 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Draw.js +79 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/FieldSet.js +62 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/ProgressBar.js +54 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Tab.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/ComboBox.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Field.js +372 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/FieldContainer.js +48 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/HtmlEditor.js +54 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Slider.js +58 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Text.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/TextArea.js +51 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Trigger.js +132 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Absolute.js +121 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Accordion.js +308 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Anchor.js +403 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Auto.js +70 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Border-old-js +1079 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Border.js +816 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Box.js +929 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Card.js +361 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/CheckboxGroup.js +376 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Column.js +234 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Container.js +961 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Editor.js +74 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Fit.js +287 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Form.js +157 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/HBox.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Table.js +412 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/VBox.js +139 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Menu.js +365 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/None.js +83 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Scroller.js +475 -0
- data/app/assets/javascripts/extjs-rails/src/menu/CheckItem.js +169 -0
- data/app/assets/javascripts/extjs-rails/src/menu/ColorPicker.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/menu/DatePicker.js +100 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Item.js +553 -0
- data/app/assets/javascripts/extjs-rails/src/menu/KeyNav.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Manager.js +219 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Menu.js +579 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Separator.js +126 -0
- data/app/assets/javascripts/extjs-rails/src/panel/AbstractPanel.js +323 -0
- data/app/assets/javascripts/extjs-rails/src/panel/DD.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Header.js +518 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Panel.js +2150 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Proxy.js +131 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Table.js +1018 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Tool.js +304 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Color.js +219 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Date.js +1140 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Month.js +490 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Time.js +165 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitter.js +22 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitterTracker.js +210 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Handle.js +29 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/ResizeTracker.js +346 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Resizer.js +477 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Splitter.js +242 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/SplitterTracker.js +230 -0
- data/app/assets/javascripts/extjs-rails/src/selection/CellModel.js +395 -0
- data/app/assets/javascripts/extjs-rails/src/selection/CheckboxModel.js +234 -0
- data/app/assets/javascripts/extjs-rails/src/selection/DataViewModel.js +160 -0
- data/app/assets/javascripts/extjs-rails/src/selection/Model.js +646 -0
- data/app/assets/javascripts/extjs-rails/src/selection/RowModel.js +499 -0
- data/app/assets/javascripts/extjs-rails/src/selection/TreeModel.js +78 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Multi.js +835 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Single.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Thumb.js +259 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Tip.js +130 -0
- data/app/assets/javascripts/extjs-rails/src/state/CookieProvider.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/state/LocalStorageProvider.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/state/Manager.js +70 -0
- data/app/assets/javascripts/extjs-rails/src/state/Provider.js +182 -0
- data/app/assets/javascripts/extjs-rails/src/state/Stateful.js +364 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Bar.js +258 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Panel.js +654 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Tab.js +358 -0
- data/app/assets/javascripts/extjs-rails/src/tail.js +10 -0
- data/app/assets/javascripts/extjs-rails/src/tip/QuickTip.js +335 -0
- data/app/assets/javascripts/extjs-rails/src/tip/QuickTipManager.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/tip/Tip.js +160 -0
- data/app/assets/javascripts/extjs-rails/src/tip/ToolTip.js +691 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Fill.js +28 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Item.js +16 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Paging.js +600 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Separator.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Spacer.js +33 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/TextItem.js +57 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar-legacy.js +123 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar.js +447 -0
- data/app/assets/javascripts/extjs-rails/src/tree/Column.js +90 -0
- data/app/assets/javascripts/extjs-rails/src/tree/Panel.js +505 -0
- data/app/assets/javascripts/extjs-rails/src/tree/View.js +658 -0
- data/app/assets/javascripts/extjs-rails/src/tree/ViewDragZone.js +49 -0
- data/app/assets/javascripts/extjs-rails/src/tree/ViewDropZone.js +287 -0
- data/app/assets/javascripts/extjs-rails/src/tree/plugin/TreeViewDragDrop.js +244 -0
- data/app/assets/javascripts/extjs-rails/src/util/AbstractMixedCollection.js +772 -0
- data/app/assets/javascripts/extjs-rails/src/util/Animate.js +426 -0
- data/app/assets/javascripts/extjs-rails/src/util/Bindable.js +102 -0
- data/app/assets/javascripts/extjs-rails/src/util/CSS.js +185 -0
- data/app/assets/javascripts/extjs-rails/src/util/ClickRepeater.js +238 -0
- data/app/assets/javascripts/extjs-rails/src/util/ComponentDragger.js +126 -0
- data/app/assets/javascripts/extjs-rails/src/util/Cookies.js +91 -0
- data/app/assets/javascripts/extjs-rails/src/util/ElementContainer.js +293 -0
- data/app/assets/javascripts/extjs-rails/src/util/Filter.js +159 -0
- data/app/assets/javascripts/extjs-rails/src/util/Floating.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/util/Grouper.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/util/HashMap.js +356 -0
- data/app/assets/javascripts/extjs-rails/src/util/History.js +285 -0
- data/app/assets/javascripts/extjs-rails/src/util/Inflector.js +297 -0
- data/app/assets/javascripts/extjs-rails/src/util/KeyMap.js +427 -0
- data/app/assets/javascripts/extjs-rails/src/util/KeyNav.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/util/LruCache.js +257 -0
- data/app/assets/javascripts/extjs-rails/src/util/Memento.js +131 -0
- data/app/assets/javascripts/extjs-rails/src/util/MixedCollection.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/util/Observable.js +1003 -0
- data/app/assets/javascripts/extjs-rails/src/util/Offset.js +60 -0
- data/app/assets/javascripts/extjs-rails/src/util/Point.js +93 -0
- data/app/assets/javascripts/extjs-rails/src/util/ProtoElement.js +205 -0
- data/app/assets/javascripts/extjs-rails/src/util/Queue.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/util/Region.js +388 -0
- data/app/assets/javascripts/extjs-rails/src/util/Renderable.js +1079 -0
- data/app/assets/javascripts/extjs-rails/src/util/Sortable.js +248 -0
- data/app/assets/javascripts/extjs-rails/src/util/Sorter.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/util/TextMetrics.js +148 -0
- data/app/assets/javascripts/extjs-rails/src/view/AbstractView.js +1103 -0
- data/app/assets/javascripts/extjs-rails/src/view/BoundList.js +207 -0
- data/app/assets/javascripts/extjs-rails/src/view/BoundListKeyNav.js +92 -0
- data/app/assets/javascripts/extjs-rails/src/view/DragZone.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/view/DropZone.js +240 -0
- data/app/assets/javascripts/extjs-rails/src/view/Table.js +1229 -0
- data/app/assets/javascripts/extjs-rails/src/view/TableChunker.js +139 -0
- data/app/assets/javascripts/extjs-rails/src/view/View.js +636 -0
- data/app/assets/javascripts/extjs-rails/src/window/MessageBox.js +880 -0
- data/app/assets/javascripts/extjs-rails/src/window/Window-legacy.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/window/Window.js +793 -0
- data/extjs-rails.gemspec +24 -0
- data/lib/extjs-rails.rb +7 -0
- data/lib/extjs-rails/engine.rb +7 -0
- data/lib/extjs-rails/version.rb +5 -0
- metadata +660 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Produces optimized XTemplates for chunks of tables to be
|
|
3
|
+
* used in grids, trees and other table based widgets.
|
|
4
|
+
*/
|
|
5
|
+
Ext.define('Ext.view.TableChunker', {
|
|
6
|
+
singleton: true,
|
|
7
|
+
requires: ['Ext.XTemplate'],
|
|
8
|
+
metaTableTpl: [
|
|
9
|
+
'{%if (this.openTableWrap)out.push(this.openTableWrap())%}',
|
|
10
|
+
'<table class="' + Ext.baseCSSPrefix + 'grid-table ' + Ext.baseCSSPrefix + 'grid-table-resizer" border="0" cellspacing="0" cellpadding="0" {[this.embedFullWidth(values)]}>',
|
|
11
|
+
'<tbody>',
|
|
12
|
+
'<tr class="' + Ext.baseCSSPrefix + 'grid-header-row">',
|
|
13
|
+
'<tpl for="columns">',
|
|
14
|
+
'<th class="' + Ext.baseCSSPrefix + 'grid-col-resizer-{id}" style="width: {width}px; height: 0px;"></th>',
|
|
15
|
+
'</tpl>',
|
|
16
|
+
'</tr>',
|
|
17
|
+
'{[this.openRows()]}',
|
|
18
|
+
'{row}',
|
|
19
|
+
'<tpl for="features">',
|
|
20
|
+
'{[this.embedFeature(values, parent, xindex, xcount)]}',
|
|
21
|
+
'</tpl>',
|
|
22
|
+
'{[this.closeRows()]}',
|
|
23
|
+
'</tbody>',
|
|
24
|
+
'</table>',
|
|
25
|
+
'{%if (this.closeTableWrap)out.push(this.closeTableWrap())%}'
|
|
26
|
+
],
|
|
27
|
+
|
|
28
|
+
constructor: function() {
|
|
29
|
+
Ext.XTemplate.prototype.recurse = function(values, reference) {
|
|
30
|
+
return this.apply(reference ? values[reference] : values);
|
|
31
|
+
};
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
embedFeature: function(values, parent, x, xcount) {
|
|
35
|
+
var tpl = '';
|
|
36
|
+
if (!values.disabled) {
|
|
37
|
+
tpl = values.getFeatureTpl(values, parent, x, xcount);
|
|
38
|
+
}
|
|
39
|
+
return tpl;
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
embedFullWidth: function(values) {
|
|
43
|
+
var result = 'style="width:{fullWidth}px;';
|
|
44
|
+
|
|
45
|
+
// If there are no records, we need to give the table a height so that it
|
|
46
|
+
// is displayed and causes q scrollbar if the width exceeds the View's width.
|
|
47
|
+
if (!values.rowCount) {
|
|
48
|
+
result += 'height:1px;';
|
|
49
|
+
}
|
|
50
|
+
return result + '"';
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
openRows: function() {
|
|
54
|
+
return '<tpl for="rows">';
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
closeRows: function() {
|
|
58
|
+
return '</tpl>';
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
metaRowTpl: [
|
|
62
|
+
'<tr class="' + Ext.baseCSSPrefix + 'grid-row {[this.embedRowCls()]}" {[this.embedRowAttr()]}>',
|
|
63
|
+
'<tpl for="columns">',
|
|
64
|
+
'<td class="{cls} ' + Ext.baseCSSPrefix + 'grid-cell ' + Ext.baseCSSPrefix + 'grid-cell-{columnId} {{id}-modified} {{id}-tdCls} {[this.firstOrLastCls(xindex, xcount)]}" {{id}-tdAttr}>',
|
|
65
|
+
'<div {unselectableAttr} class="' + Ext.baseCSSPrefix + 'grid-cell-inner {unselectableCls}" style="text-align: {align}; {{id}-style};">{{id}}</div>',
|
|
66
|
+
'</td>',
|
|
67
|
+
'</tpl>',
|
|
68
|
+
'</tr>'
|
|
69
|
+
],
|
|
70
|
+
|
|
71
|
+
firstOrLastCls: function(xindex, xcount) {
|
|
72
|
+
if (xindex === 1) {
|
|
73
|
+
return Ext.view.Table.prototype.firstCls;
|
|
74
|
+
} else if (xindex === xcount) {
|
|
75
|
+
return Ext.view.Table.prototype.lastCls;
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
embedRowCls: function() {
|
|
80
|
+
return '{rowCls}';
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
embedRowAttr: function() {
|
|
84
|
+
return '{rowAttr}';
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
openTableWrap: undefined,
|
|
88
|
+
|
|
89
|
+
closeTableWrap: undefined,
|
|
90
|
+
|
|
91
|
+
getTableTpl: function(cfg, textOnly) {
|
|
92
|
+
var tpl,
|
|
93
|
+
tableTplMemberFns = {
|
|
94
|
+
openRows: this.openRows,
|
|
95
|
+
closeRows: this.closeRows,
|
|
96
|
+
embedFeature: this.embedFeature,
|
|
97
|
+
embedFullWidth: this.embedFullWidth,
|
|
98
|
+
openTableWrap: this.openTableWrap,
|
|
99
|
+
closeTableWrap: this.closeTableWrap
|
|
100
|
+
},
|
|
101
|
+
tplMemberFns = {},
|
|
102
|
+
features = cfg.features || [],
|
|
103
|
+
ln = features.length,
|
|
104
|
+
i = 0,
|
|
105
|
+
memberFns = {
|
|
106
|
+
embedRowCls: this.embedRowCls,
|
|
107
|
+
embedRowAttr: this.embedRowAttr,
|
|
108
|
+
firstOrLastCls: this.firstOrLastCls,
|
|
109
|
+
unselectableAttr: cfg.enableTextSelection ? '' : 'unselectable="on"',
|
|
110
|
+
unselectableCls: cfg.enableTextSelection ? '' : Ext.baseCSSPrefix + 'unselectable'
|
|
111
|
+
},
|
|
112
|
+
// copy the default
|
|
113
|
+
metaRowTpl = Array.prototype.slice.call(this.metaRowTpl, 0),
|
|
114
|
+
metaTableTpl;
|
|
115
|
+
|
|
116
|
+
for (; i < ln; i++) {
|
|
117
|
+
if (!features[i].disabled) {
|
|
118
|
+
features[i].mutateMetaRowTpl(metaRowTpl);
|
|
119
|
+
Ext.apply(memberFns, features[i].getMetaRowTplFragments());
|
|
120
|
+
Ext.apply(tplMemberFns, features[i].getFragmentTpl());
|
|
121
|
+
Ext.apply(tableTplMemberFns, features[i].getTableFragments());
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
metaRowTpl = new Ext.XTemplate(metaRowTpl.join(''), memberFns);
|
|
126
|
+
cfg.row = metaRowTpl.applyTemplate(cfg);
|
|
127
|
+
|
|
128
|
+
metaTableTpl = new Ext.XTemplate(this.metaTableTpl.join(''), tableTplMemberFns);
|
|
129
|
+
|
|
130
|
+
tpl = metaTableTpl.applyTemplate(cfg);
|
|
131
|
+
|
|
132
|
+
// TODO: Investigate eliminating.
|
|
133
|
+
if (!textOnly) {
|
|
134
|
+
tpl = new Ext.XTemplate(tpl, tplMemberFns);
|
|
135
|
+
}
|
|
136
|
+
return tpl;
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
});
|
|
@@ -0,0 +1,636 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A mechanism for displaying data using custom layout templates and formatting.
|
|
3
|
+
*
|
|
4
|
+
* The View uses an {@link Ext.XTemplate} as its internal templating mechanism, and is bound to an
|
|
5
|
+
* {@link Ext.data.Store} so that as the data in the store changes the view is automatically updated
|
|
6
|
+
* to reflect the changes. The view also provides built-in behavior for many common events that can
|
|
7
|
+
* occur for its contained items including click, doubleclick, mouseover, mouseout, etc. as well as a
|
|
8
|
+
* built-in selection model. **In order to use these features, an {@link #itemSelector} config must
|
|
9
|
+
* be provided for the DataView to determine what nodes it will be working with.**
|
|
10
|
+
*
|
|
11
|
+
* The example below binds a View to a {@link Ext.data.Store} and renders it into an {@link Ext.panel.Panel}.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* Ext.define('Image', {
|
|
15
|
+
* extend: 'Ext.data.Model',
|
|
16
|
+
* fields: [
|
|
17
|
+
* { name:'src', type:'string' },
|
|
18
|
+
* { name:'caption', type:'string' }
|
|
19
|
+
* ]
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* Ext.create('Ext.data.Store', {
|
|
23
|
+
* id:'imagesStore',
|
|
24
|
+
* model: 'Image',
|
|
25
|
+
* data: [
|
|
26
|
+
* { src:'http://www.sencha.com/img/20110215-feat-drawing.png', caption:'Drawing & Charts' },
|
|
27
|
+
* { src:'http://www.sencha.com/img/20110215-feat-data.png', caption:'Advanced Data' },
|
|
28
|
+
* { src:'http://www.sencha.com/img/20110215-feat-html5.png', caption:'Overhauled Theme' },
|
|
29
|
+
* { src:'http://www.sencha.com/img/20110215-feat-perf.png', caption:'Performance Tuned' }
|
|
30
|
+
* ]
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* var imageTpl = new Ext.XTemplate(
|
|
34
|
+
* '<tpl for=".">',
|
|
35
|
+
* '<div style="margin-bottom: 10px;" class="thumb-wrap">',
|
|
36
|
+
* '<img src="{src}" />',
|
|
37
|
+
* '<br/><span>{caption}</span>',
|
|
38
|
+
* '</div>',
|
|
39
|
+
* '</tpl>'
|
|
40
|
+
* );
|
|
41
|
+
*
|
|
42
|
+
* Ext.create('Ext.view.View', {
|
|
43
|
+
* store: Ext.data.StoreManager.lookup('imagesStore'),
|
|
44
|
+
* tpl: imageTpl,
|
|
45
|
+
* itemSelector: 'div.thumb-wrap',
|
|
46
|
+
* emptyText: 'No images available',
|
|
47
|
+
* renderTo: Ext.getBody()
|
|
48
|
+
* });
|
|
49
|
+
*/
|
|
50
|
+
Ext.define('Ext.view.View', {
|
|
51
|
+
extend: 'Ext.view.AbstractView',
|
|
52
|
+
alternateClassName: 'Ext.DataView',
|
|
53
|
+
alias: 'widget.dataview',
|
|
54
|
+
|
|
55
|
+
inheritableStatics: {
|
|
56
|
+
EventMap: {
|
|
57
|
+
mousedown: 'MouseDown',
|
|
58
|
+
mouseup: 'MouseUp',
|
|
59
|
+
click: 'Click',
|
|
60
|
+
dblclick: 'DblClick',
|
|
61
|
+
contextmenu: 'ContextMenu',
|
|
62
|
+
mouseover: 'MouseOver',
|
|
63
|
+
mouseout: 'MouseOut',
|
|
64
|
+
mouseenter: 'MouseEnter',
|
|
65
|
+
mouseleave: 'MouseLeave',
|
|
66
|
+
keydown: 'KeyDown',
|
|
67
|
+
focus: 'Focus'
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
addCmpEvents: function() {
|
|
72
|
+
this.addEvents(
|
|
73
|
+
/**
|
|
74
|
+
* @event beforeitemmousedown
|
|
75
|
+
* Fires before the mousedown event on an item is processed. Returns false to cancel the default action.
|
|
76
|
+
* @param {Ext.view.View} this
|
|
77
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
78
|
+
* @param {HTMLElement} item The item's element
|
|
79
|
+
* @param {Number} index The item's index
|
|
80
|
+
* @param {Ext.EventObject} e The raw event object
|
|
81
|
+
*/
|
|
82
|
+
'beforeitemmousedown',
|
|
83
|
+
/**
|
|
84
|
+
* @event beforeitemmouseup
|
|
85
|
+
* Fires before the mouseup event on an item is processed. Returns false to cancel the default action.
|
|
86
|
+
* @param {Ext.view.View} this
|
|
87
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
88
|
+
* @param {HTMLElement} item The item's element
|
|
89
|
+
* @param {Number} index The item's index
|
|
90
|
+
* @param {Ext.EventObject} e The raw event object
|
|
91
|
+
*/
|
|
92
|
+
'beforeitemmouseup',
|
|
93
|
+
/**
|
|
94
|
+
* @event beforeitemmouseenter
|
|
95
|
+
* Fires before the mouseenter event on an item is processed. Returns false to cancel the default action.
|
|
96
|
+
* @param {Ext.view.View} this
|
|
97
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
98
|
+
* @param {HTMLElement} item The item's element
|
|
99
|
+
* @param {Number} index The item's index
|
|
100
|
+
* @param {Ext.EventObject} e The raw event object
|
|
101
|
+
*/
|
|
102
|
+
'beforeitemmouseenter',
|
|
103
|
+
/**
|
|
104
|
+
* @event beforeitemmouseleave
|
|
105
|
+
* Fires before the mouseleave event on an item is processed. Returns false to cancel the default action.
|
|
106
|
+
* @param {Ext.view.View} this
|
|
107
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
108
|
+
* @param {HTMLElement} item The item's element
|
|
109
|
+
* @param {Number} index The item's index
|
|
110
|
+
* @param {Ext.EventObject} e The raw event object
|
|
111
|
+
*/
|
|
112
|
+
'beforeitemmouseleave',
|
|
113
|
+
/**
|
|
114
|
+
* @event beforeitemclick
|
|
115
|
+
* Fires before the click event on an item is processed. Returns false to cancel the default action.
|
|
116
|
+
* @param {Ext.view.View} this
|
|
117
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
118
|
+
* @param {HTMLElement} item The item's element
|
|
119
|
+
* @param {Number} index The item's index
|
|
120
|
+
* @param {Ext.EventObject} e The raw event object
|
|
121
|
+
*/
|
|
122
|
+
'beforeitemclick',
|
|
123
|
+
/**
|
|
124
|
+
* @event beforeitemdblclick
|
|
125
|
+
* Fires before the dblclick event on an item is processed. Returns false to cancel the default action.
|
|
126
|
+
* @param {Ext.view.View} this
|
|
127
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
128
|
+
* @param {HTMLElement} item The item's element
|
|
129
|
+
* @param {Number} index The item's index
|
|
130
|
+
* @param {Ext.EventObject} e The raw event object
|
|
131
|
+
*/
|
|
132
|
+
'beforeitemdblclick',
|
|
133
|
+
/**
|
|
134
|
+
* @event beforeitemcontextmenu
|
|
135
|
+
* Fires before the contextmenu event on an item is processed. Returns false to cancel the default action.
|
|
136
|
+
* @param {Ext.view.View} this
|
|
137
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
138
|
+
* @param {HTMLElement} item The item's element
|
|
139
|
+
* @param {Number} index The item's index
|
|
140
|
+
* @param {Ext.EventObject} e The raw event object
|
|
141
|
+
*/
|
|
142
|
+
'beforeitemcontextmenu',
|
|
143
|
+
/**
|
|
144
|
+
* @event beforeitemkeydown
|
|
145
|
+
* Fires before the keydown event on an item is processed. Returns false to cancel the default action.
|
|
146
|
+
* @param {Ext.view.View} this
|
|
147
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
148
|
+
* @param {HTMLElement} item The item's element
|
|
149
|
+
* @param {Number} index The item's index
|
|
150
|
+
* @param {Ext.EventObject} e The raw event object. Use {@link Ext.EventObject#getKey getKey()} to retrieve the key that was pressed.
|
|
151
|
+
*/
|
|
152
|
+
'beforeitemkeydown',
|
|
153
|
+
/**
|
|
154
|
+
* @event itemmousedown
|
|
155
|
+
* Fires when there is a mouse down on an item
|
|
156
|
+
* @param {Ext.view.View} this
|
|
157
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
158
|
+
* @param {HTMLElement} item The item's element
|
|
159
|
+
* @param {Number} index The item's index
|
|
160
|
+
* @param {Ext.EventObject} e The raw event object
|
|
161
|
+
*/
|
|
162
|
+
'itemmousedown',
|
|
163
|
+
/**
|
|
164
|
+
* @event itemmouseup
|
|
165
|
+
* Fires when there is a mouse up on an item
|
|
166
|
+
* @param {Ext.view.View} this
|
|
167
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
168
|
+
* @param {HTMLElement} item The item's element
|
|
169
|
+
* @param {Number} index The item's index
|
|
170
|
+
* @param {Ext.EventObject} e The raw event object
|
|
171
|
+
*/
|
|
172
|
+
'itemmouseup',
|
|
173
|
+
/**
|
|
174
|
+
* @event itemmouseenter
|
|
175
|
+
* Fires when the mouse enters an item.
|
|
176
|
+
* @param {Ext.view.View} this
|
|
177
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
178
|
+
* @param {HTMLElement} item The item's element
|
|
179
|
+
* @param {Number} index The item's index
|
|
180
|
+
* @param {Ext.EventObject} e The raw event object
|
|
181
|
+
*/
|
|
182
|
+
'itemmouseenter',
|
|
183
|
+
/**
|
|
184
|
+
* @event itemmouseleave
|
|
185
|
+
* Fires when the mouse leaves an item.
|
|
186
|
+
* @param {Ext.view.View} this
|
|
187
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
188
|
+
* @param {HTMLElement} item The item's element
|
|
189
|
+
* @param {Number} index The item's index
|
|
190
|
+
* @param {Ext.EventObject} e The raw event object
|
|
191
|
+
*/
|
|
192
|
+
'itemmouseleave',
|
|
193
|
+
/**
|
|
194
|
+
* @event itemclick
|
|
195
|
+
* Fires when an item is clicked.
|
|
196
|
+
* @param {Ext.view.View} this
|
|
197
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
198
|
+
* @param {HTMLElement} item The item's element
|
|
199
|
+
* @param {Number} index The item's index
|
|
200
|
+
* @param {Ext.EventObject} e The raw event object
|
|
201
|
+
*/
|
|
202
|
+
'itemclick',
|
|
203
|
+
/**
|
|
204
|
+
* @event itemdblclick
|
|
205
|
+
* Fires when an item is double clicked.
|
|
206
|
+
* @param {Ext.view.View} this
|
|
207
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
208
|
+
* @param {HTMLElement} item The item's element
|
|
209
|
+
* @param {Number} index The item's index
|
|
210
|
+
* @param {Ext.EventObject} e The raw event object
|
|
211
|
+
*/
|
|
212
|
+
'itemdblclick',
|
|
213
|
+
/**
|
|
214
|
+
* @event itemcontextmenu
|
|
215
|
+
* Fires when an item is right clicked.
|
|
216
|
+
* @param {Ext.view.View} this
|
|
217
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
218
|
+
* @param {HTMLElement} item The item's element
|
|
219
|
+
* @param {Number} index The item's index
|
|
220
|
+
* @param {Ext.EventObject} e The raw event object
|
|
221
|
+
*/
|
|
222
|
+
'itemcontextmenu',
|
|
223
|
+
/**
|
|
224
|
+
* @event itemkeydown
|
|
225
|
+
* Fires when a key is pressed while an item is currently selected.
|
|
226
|
+
* @param {Ext.view.View} this
|
|
227
|
+
* @param {Ext.data.Model} record The record that belongs to the item
|
|
228
|
+
* @param {HTMLElement} item The item's element
|
|
229
|
+
* @param {Number} index The item's index
|
|
230
|
+
* @param {Ext.EventObject} e The raw event object. Use {@link Ext.EventObject#getKey getKey()} to retrieve the key that was pressed.
|
|
231
|
+
*/
|
|
232
|
+
'itemkeydown',
|
|
233
|
+
/**
|
|
234
|
+
* @event beforecontainermousedown
|
|
235
|
+
* Fires before the mousedown event on the container is processed. Returns false to cancel the default action.
|
|
236
|
+
* @param {Ext.view.View} this
|
|
237
|
+
* @param {Ext.EventObject} e The raw event object
|
|
238
|
+
*/
|
|
239
|
+
'beforecontainermousedown',
|
|
240
|
+
/**
|
|
241
|
+
* @event beforecontainermouseup
|
|
242
|
+
* Fires before the mouseup event on the container is processed. Returns false to cancel the default action.
|
|
243
|
+
* @param {Ext.view.View} this
|
|
244
|
+
* @param {Ext.EventObject} e The raw event object
|
|
245
|
+
*/
|
|
246
|
+
'beforecontainermouseup',
|
|
247
|
+
/**
|
|
248
|
+
* @event beforecontainermouseover
|
|
249
|
+
* Fires before the mouseover event on the container is processed. Returns false to cancel the default action.
|
|
250
|
+
* @param {Ext.view.View} this
|
|
251
|
+
* @param {Ext.EventObject} e The raw event object
|
|
252
|
+
*/
|
|
253
|
+
'beforecontainermouseover',
|
|
254
|
+
/**
|
|
255
|
+
* @event beforecontainermouseout
|
|
256
|
+
* Fires before the mouseout event on the container is processed. Returns false to cancel the default action.
|
|
257
|
+
* @param {Ext.view.View} this
|
|
258
|
+
* @param {Ext.EventObject} e The raw event object
|
|
259
|
+
*/
|
|
260
|
+
'beforecontainermouseout',
|
|
261
|
+
/**
|
|
262
|
+
* @event beforecontainerclick
|
|
263
|
+
* Fires before the click event on the container is processed. Returns false to cancel the default action.
|
|
264
|
+
* @param {Ext.view.View} this
|
|
265
|
+
* @param {Ext.EventObject} e The raw event object
|
|
266
|
+
*/
|
|
267
|
+
'beforecontainerclick',
|
|
268
|
+
/**
|
|
269
|
+
* @event beforecontainerdblclick
|
|
270
|
+
* Fires before the dblclick event on the container is processed. Returns false to cancel the default action.
|
|
271
|
+
* @param {Ext.view.View} this
|
|
272
|
+
* @param {Ext.EventObject} e The raw event object
|
|
273
|
+
*/
|
|
274
|
+
'beforecontainerdblclick',
|
|
275
|
+
/**
|
|
276
|
+
* @event beforecontainercontextmenu
|
|
277
|
+
* Fires before the contextmenu event on the container is processed. Returns false to cancel the default action.
|
|
278
|
+
* @param {Ext.view.View} this
|
|
279
|
+
* @param {Ext.EventObject} e The raw event object
|
|
280
|
+
*/
|
|
281
|
+
'beforecontainercontextmenu',
|
|
282
|
+
/**
|
|
283
|
+
* @event beforecontainerkeydown
|
|
284
|
+
* Fires before the keydown event on the container is processed. Returns false to cancel the default action.
|
|
285
|
+
* @param {Ext.view.View} this
|
|
286
|
+
* @param {Ext.EventObject} e The raw event object. Use {@link Ext.EventObject#getKey getKey()} to retrieve the key that was pressed.
|
|
287
|
+
*/
|
|
288
|
+
'beforecontainerkeydown',
|
|
289
|
+
/**
|
|
290
|
+
* @event containermouseup
|
|
291
|
+
* Fires when there is a mouse up on the container
|
|
292
|
+
* @param {Ext.view.View} this
|
|
293
|
+
* @param {Ext.EventObject} e The raw event object
|
|
294
|
+
*/
|
|
295
|
+
'containermouseup',
|
|
296
|
+
/**
|
|
297
|
+
* @event containermouseover
|
|
298
|
+
* Fires when you move the mouse over the container.
|
|
299
|
+
* @param {Ext.view.View} this
|
|
300
|
+
* @param {Ext.EventObject} e The raw event object
|
|
301
|
+
*/
|
|
302
|
+
'containermouseover',
|
|
303
|
+
/**
|
|
304
|
+
* @event containermouseout
|
|
305
|
+
* Fires when you move the mouse out of the container.
|
|
306
|
+
* @param {Ext.view.View} this
|
|
307
|
+
* @param {Ext.EventObject} e The raw event object
|
|
308
|
+
*/
|
|
309
|
+
'containermouseout',
|
|
310
|
+
/**
|
|
311
|
+
* @event containerclick
|
|
312
|
+
* Fires when the container is clicked.
|
|
313
|
+
* @param {Ext.view.View} this
|
|
314
|
+
* @param {Ext.EventObject} e The raw event object
|
|
315
|
+
*/
|
|
316
|
+
'containerclick',
|
|
317
|
+
/**
|
|
318
|
+
* @event containerdblclick
|
|
319
|
+
* Fires when the container is double clicked.
|
|
320
|
+
* @param {Ext.view.View} this
|
|
321
|
+
* @param {Ext.EventObject} e The raw event object
|
|
322
|
+
*/
|
|
323
|
+
'containerdblclick',
|
|
324
|
+
/**
|
|
325
|
+
* @event containercontextmenu
|
|
326
|
+
* Fires when the container is right clicked.
|
|
327
|
+
* @param {Ext.view.View} this
|
|
328
|
+
* @param {Ext.EventObject} e The raw event object
|
|
329
|
+
*/
|
|
330
|
+
'containercontextmenu',
|
|
331
|
+
/**
|
|
332
|
+
* @event containerkeydown
|
|
333
|
+
* Fires when a key is pressed while the container is focused, and no item is currently selected.
|
|
334
|
+
* @param {Ext.view.View} this
|
|
335
|
+
* @param {Ext.EventObject} e The raw event object. Use {@link Ext.EventObject#getKey getKey()} to retrieve the key that was pressed.
|
|
336
|
+
*/
|
|
337
|
+
'containerkeydown',
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* @event selectionchange
|
|
341
|
+
* Fires when the selected nodes change. Relayed event from the underlying selection model.
|
|
342
|
+
* @param {Ext.view.View} this
|
|
343
|
+
* @param {HTMLElement[]} selections Array of the selected nodes
|
|
344
|
+
*/
|
|
345
|
+
'selectionchange',
|
|
346
|
+
/**
|
|
347
|
+
* @event beforeselect
|
|
348
|
+
* Fires before a selection is made. If any handlers return false, the selection is cancelled.
|
|
349
|
+
* @param {Ext.view.View} this
|
|
350
|
+
* @param {HTMLElement} node The node to be selected
|
|
351
|
+
* @param {HTMLElement[]} selections Array of currently selected nodes
|
|
352
|
+
*/
|
|
353
|
+
'beforeselect',
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* @event highlightitem
|
|
357
|
+
* Fires when a node is highlighted using keyboard navigation, or mouseover.
|
|
358
|
+
* @param {Ext.view.View} view This View Component.
|
|
359
|
+
* @param {Ext.Element} node The highlighted node.
|
|
360
|
+
*/
|
|
361
|
+
'highlightitem',
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* @event unhighlightitem
|
|
365
|
+
* Fires when a node is unhighlighted using keyboard navigation, or mouseout.
|
|
366
|
+
* @param {Ext.view.View} view This View Component.
|
|
367
|
+
* @param {Ext.Element} node The previously highlighted node.
|
|
368
|
+
*/
|
|
369
|
+
'unhighlightitem'
|
|
370
|
+
);
|
|
371
|
+
},
|
|
372
|
+
|
|
373
|
+
getFocusEl: function() {
|
|
374
|
+
return this.getTargetEl();
|
|
375
|
+
},
|
|
376
|
+
|
|
377
|
+
// private
|
|
378
|
+
afterRender: function(){
|
|
379
|
+
var me = this;
|
|
380
|
+
me.callParent();
|
|
381
|
+
me.mon(me.getTargetEl(), {
|
|
382
|
+
scope: me,
|
|
383
|
+
/*
|
|
384
|
+
* We need to make copies of this since some of the events fired here will end up triggering
|
|
385
|
+
* a new event to be called and the shared event object will be mutated. In future we should
|
|
386
|
+
* investigate if there are any issues with creating a new event object for each event that
|
|
387
|
+
* is fired.
|
|
388
|
+
*/
|
|
389
|
+
freezeEvent: true,
|
|
390
|
+
click: me.handleEvent,
|
|
391
|
+
mousedown: me.handleEvent,
|
|
392
|
+
mouseup: me.handleEvent,
|
|
393
|
+
dblclick: me.handleEvent,
|
|
394
|
+
contextmenu: me.handleEvent,
|
|
395
|
+
mouseover: me.handleEvent,
|
|
396
|
+
mouseout: me.handleEvent,
|
|
397
|
+
keydown: me.handleEvent
|
|
398
|
+
});
|
|
399
|
+
},
|
|
400
|
+
|
|
401
|
+
handleEvent: function(e) {
|
|
402
|
+
var key = e.type == 'keydown' && e.getKey();
|
|
403
|
+
|
|
404
|
+
if (this.processUIEvent(e) !== false) {
|
|
405
|
+
this.processSpecialEvent(e);
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
// After all listeners have processed the event, prevent browser's default action
|
|
409
|
+
// on SPACE which is to focus the event's target element.
|
|
410
|
+
// Focusing causes the browser to attempt to scroll the element into view.
|
|
411
|
+
if (key === e.SPACE) {
|
|
412
|
+
e.stopEvent();
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
|
|
416
|
+
// Private template method
|
|
417
|
+
processItemEvent: Ext.emptyFn,
|
|
418
|
+
processContainerEvent: Ext.emptyFn,
|
|
419
|
+
processSpecialEvent: Ext.emptyFn,
|
|
420
|
+
|
|
421
|
+
/*
|
|
422
|
+
* Returns true if this mouseover/out event is still over the overItem.
|
|
423
|
+
*/
|
|
424
|
+
stillOverItem: function (event, overItem) {
|
|
425
|
+
var nowOver;
|
|
426
|
+
|
|
427
|
+
// There is this weird bug when you hover over the border of a cell it is saying
|
|
428
|
+
// the target is the table.
|
|
429
|
+
// BrowserBug: IE6 & 7. If me.mouseOverItem has been removed and is no longer
|
|
430
|
+
// in the DOM then accessing .offsetParent will throw an "Unspecified error." exception.
|
|
431
|
+
// typeof'ng and checking to make sure the offsetParent is an object will NOT throw
|
|
432
|
+
// this hard exception.
|
|
433
|
+
if (overItem && typeof(overItem.offsetParent) === "object") {
|
|
434
|
+
// mouseout : relatedTarget == nowOver, target == wasOver
|
|
435
|
+
// mouseover: relatedTarget == wasOver, target == nowOver
|
|
436
|
+
nowOver = (event.type == 'mouseout') ? event.getRelatedTarget() : event.getTarget();
|
|
437
|
+
return Ext.fly(overItem).contains(nowOver);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
return false;
|
|
441
|
+
},
|
|
442
|
+
|
|
443
|
+
processUIEvent: function(e) {
|
|
444
|
+
var me = this,
|
|
445
|
+
item = e.getTarget(me.getItemSelector(), me.getTargetEl()),
|
|
446
|
+
map = this.statics().EventMap,
|
|
447
|
+
index, record,
|
|
448
|
+
type = e.type,
|
|
449
|
+
overItem = me.mouseOverItem,
|
|
450
|
+
newType;
|
|
451
|
+
|
|
452
|
+
if (!item) {
|
|
453
|
+
if (type == 'mouseover' && me.stillOverItem(e, overItem)) {
|
|
454
|
+
item = overItem;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
// Try to get the selected item to handle the keydown event, otherwise we'll just fire a container keydown event
|
|
458
|
+
if (type == 'keydown') {
|
|
459
|
+
record = me.getSelectionModel().getLastSelected();
|
|
460
|
+
if (record) {
|
|
461
|
+
item = me.getNode(record);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
if (item) {
|
|
467
|
+
index = me.indexOf(item);
|
|
468
|
+
if (!record) {
|
|
469
|
+
record = me.getRecord(item);
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
// It is possible for an event to arrive for which there is no record... this
|
|
473
|
+
// can happen with dblclick where the clicks are on removal actions (think a
|
|
474
|
+
// grid w/"delete row" action column)
|
|
475
|
+
if (!record || me.processItemEvent(record, item, index, e) === false) {
|
|
476
|
+
return false;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
newType = me.isNewItemEvent(item, e);
|
|
480
|
+
if (newType === false) {
|
|
481
|
+
return false;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
if (
|
|
485
|
+
(me['onBeforeItem' + map[newType]](record, item, index, e) === false) ||
|
|
486
|
+
(me.fireEvent('beforeitem' + newType, me, record, item, index, e) === false) ||
|
|
487
|
+
(me['onItem' + map[newType]](record, item, index, e) === false)
|
|
488
|
+
) {
|
|
489
|
+
return false;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
me.fireEvent('item' + newType, me, record, item, index, e);
|
|
493
|
+
}
|
|
494
|
+
else {
|
|
495
|
+
if (
|
|
496
|
+
(me.processContainerEvent(e) === false) ||
|
|
497
|
+
(me['onBeforeContainer' + map[type]](e) === false) ||
|
|
498
|
+
(me.fireEvent('beforecontainer' + type, me, e) === false) ||
|
|
499
|
+
(me['onContainer' + map[type]](e) === false)
|
|
500
|
+
) {
|
|
501
|
+
return false;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
me.fireEvent('container' + type, me, e);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
return true;
|
|
508
|
+
},
|
|
509
|
+
|
|
510
|
+
isNewItemEvent: function (item, e) {
|
|
511
|
+
var me = this,
|
|
512
|
+
overItem = me.mouseOverItem,
|
|
513
|
+
type = e.type;
|
|
514
|
+
|
|
515
|
+
switch (type) {
|
|
516
|
+
case 'mouseover':
|
|
517
|
+
if (item === overItem) {
|
|
518
|
+
return false;
|
|
519
|
+
}
|
|
520
|
+
me.mouseOverItem = item;
|
|
521
|
+
return 'mouseenter';
|
|
522
|
+
|
|
523
|
+
case 'mouseout':
|
|
524
|
+
// If the currently mouseovered item contains the mouseover target, it's *NOT* a mouseleave
|
|
525
|
+
if (me.stillOverItem(e, overItem)) {
|
|
526
|
+
return false;
|
|
527
|
+
}
|
|
528
|
+
me.mouseOverItem = null;
|
|
529
|
+
return 'mouseleave';
|
|
530
|
+
}
|
|
531
|
+
return type;
|
|
532
|
+
},
|
|
533
|
+
|
|
534
|
+
// private
|
|
535
|
+
onItemMouseEnter: function(record, item, index, e) {
|
|
536
|
+
if (this.trackOver) {
|
|
537
|
+
this.highlightItem(item);
|
|
538
|
+
}
|
|
539
|
+
},
|
|
540
|
+
|
|
541
|
+
// private
|
|
542
|
+
onItemMouseLeave : function(record, item, index, e) {
|
|
543
|
+
if (this.trackOver) {
|
|
544
|
+
this.clearHighlight();
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
|
|
548
|
+
// @private, template methods
|
|
549
|
+
onItemMouseDown: Ext.emptyFn,
|
|
550
|
+
onItemMouseUp: Ext.emptyFn,
|
|
551
|
+
onItemFocus: Ext.emptyFn,
|
|
552
|
+
onItemClick: Ext.emptyFn,
|
|
553
|
+
onItemDblClick: Ext.emptyFn,
|
|
554
|
+
onItemContextMenu: Ext.emptyFn,
|
|
555
|
+
onItemKeyDown: Ext.emptyFn,
|
|
556
|
+
onBeforeItemMouseDown: Ext.emptyFn,
|
|
557
|
+
onBeforeItemMouseUp: Ext.emptyFn,
|
|
558
|
+
onBeforeItemFocus: Ext.emptyFn,
|
|
559
|
+
onBeforeItemMouseEnter: Ext.emptyFn,
|
|
560
|
+
onBeforeItemMouseLeave: Ext.emptyFn,
|
|
561
|
+
onBeforeItemClick: Ext.emptyFn,
|
|
562
|
+
onBeforeItemDblClick: Ext.emptyFn,
|
|
563
|
+
onBeforeItemContextMenu: Ext.emptyFn,
|
|
564
|
+
onBeforeItemKeyDown: Ext.emptyFn,
|
|
565
|
+
|
|
566
|
+
// @private, template methods
|
|
567
|
+
onContainerMouseDown: Ext.emptyFn,
|
|
568
|
+
onContainerMouseUp: Ext.emptyFn,
|
|
569
|
+
onContainerMouseOver: Ext.emptyFn,
|
|
570
|
+
onContainerMouseOut: Ext.emptyFn,
|
|
571
|
+
onContainerClick: Ext.emptyFn,
|
|
572
|
+
onContainerDblClick: Ext.emptyFn,
|
|
573
|
+
onContainerContextMenu: Ext.emptyFn,
|
|
574
|
+
onContainerKeyDown: Ext.emptyFn,
|
|
575
|
+
onBeforeContainerMouseDown: Ext.emptyFn,
|
|
576
|
+
onBeforeContainerMouseUp: Ext.emptyFn,
|
|
577
|
+
onBeforeContainerMouseOver: Ext.emptyFn,
|
|
578
|
+
onBeforeContainerMouseOut: Ext.emptyFn,
|
|
579
|
+
onBeforeContainerClick: Ext.emptyFn,
|
|
580
|
+
onBeforeContainerDblClick: Ext.emptyFn,
|
|
581
|
+
onBeforeContainerContextMenu: Ext.emptyFn,
|
|
582
|
+
onBeforeContainerKeyDown: Ext.emptyFn,
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* Highlights a given item in the DataView. This is called by the mouseover handler if {@link #overItemCls}
|
|
586
|
+
* and {@link #trackOver} are configured, but can also be called manually by other code, for instance to
|
|
587
|
+
* handle stepping through the list via keyboard navigation.
|
|
588
|
+
* @param {HTMLElement} item The item to highlight
|
|
589
|
+
*/
|
|
590
|
+
highlightItem: function(item) {
|
|
591
|
+
var me = this;
|
|
592
|
+
me.clearHighlight();
|
|
593
|
+
me.highlightedItem = item;
|
|
594
|
+
Ext.fly(item).addCls(me.overItemCls);
|
|
595
|
+
me.fireEvent('highlightitem', me, item);
|
|
596
|
+
},
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* Un-highlights the currently highlighted item, if any.
|
|
600
|
+
*/
|
|
601
|
+
clearHighlight: function() {
|
|
602
|
+
var me = this,
|
|
603
|
+
highlighted = me.highlightedItem;
|
|
604
|
+
|
|
605
|
+
if (highlighted) {
|
|
606
|
+
Ext.fly(highlighted).removeCls(me.overItemCls);
|
|
607
|
+
me.fireEvent('unhighlightitem', me, highlighted);
|
|
608
|
+
delete me.highlightedItem;
|
|
609
|
+
}
|
|
610
|
+
},
|
|
611
|
+
|
|
612
|
+
onUpdate: function(store, record){
|
|
613
|
+
var me = this,
|
|
614
|
+
node,
|
|
615
|
+
newNode,
|
|
616
|
+
highlighted;
|
|
617
|
+
|
|
618
|
+
if (me.rendered) {
|
|
619
|
+
node = me.getNode(record);
|
|
620
|
+
newNode = me.callParent(arguments);
|
|
621
|
+
highlighted = me.highlightedItem;
|
|
622
|
+
|
|
623
|
+
if (highlighted && highlighted === node) {
|
|
624
|
+
delete me.highlightedItem;
|
|
625
|
+
if (newNode) {
|
|
626
|
+
me.highlightItem(newNode);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
|
|
632
|
+
refresh: function() {
|
|
633
|
+
this.clearHighlight();
|
|
634
|
+
this.callParent(arguments);
|
|
635
|
+
}
|
|
636
|
+
});
|