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,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This plugin provides drag and/or drop functionality for a GridView.
|
|
3
|
+
*
|
|
4
|
+
* It creates a specialized instance of {@link Ext.dd.DragZone DragZone} which knows how to drag out of a {@link
|
|
5
|
+
* Ext.grid.View GridView} and loads the data object which is passed to a cooperating {@link Ext.dd.DragZone DragZone}'s
|
|
6
|
+
* methods with the following properties:
|
|
7
|
+
*
|
|
8
|
+
* - `copy` : Boolean
|
|
9
|
+
*
|
|
10
|
+
* The value of the GridView's `copy` property, or `true` if the GridView was configured with `allowCopy: true` _and_
|
|
11
|
+
* the control key was pressed when the drag operation was begun.
|
|
12
|
+
*
|
|
13
|
+
* - `view` : GridView
|
|
14
|
+
*
|
|
15
|
+
* The source GridView from which the drag originated.
|
|
16
|
+
*
|
|
17
|
+
* - `ddel` : HtmlElement
|
|
18
|
+
*
|
|
19
|
+
* The drag proxy element which moves with the mouse
|
|
20
|
+
*
|
|
21
|
+
* - `item` : HtmlElement
|
|
22
|
+
*
|
|
23
|
+
* The GridView node upon which the mousedown event was registered.
|
|
24
|
+
*
|
|
25
|
+
* - `records` : Array
|
|
26
|
+
*
|
|
27
|
+
* An Array of {@link Ext.data.Model Model}s representing the selected data being dragged from the source GridView.
|
|
28
|
+
*
|
|
29
|
+
* It also creates a specialized instance of {@link Ext.dd.DropZone} which cooperates with other DropZones which are
|
|
30
|
+
* members of the same ddGroup which processes such data objects.
|
|
31
|
+
*
|
|
32
|
+
* Adding this plugin to a view means that two new events may be fired from the client GridView, `{@link #beforedrop
|
|
33
|
+
* beforedrop}` and `{@link #drop drop}`
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* Ext.create('Ext.data.Store', {
|
|
37
|
+
* storeId:'simpsonsStore',
|
|
38
|
+
* fields:['name'],
|
|
39
|
+
* data: [["Lisa"], ["Bart"], ["Homer"], ["Marge"]],
|
|
40
|
+
* proxy: {
|
|
41
|
+
* type: 'memory',
|
|
42
|
+
* reader: 'array'
|
|
43
|
+
* }
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* Ext.create('Ext.grid.Panel', {
|
|
47
|
+
* store: 'simpsonsStore',
|
|
48
|
+
* columns: [
|
|
49
|
+
* {header: 'Name', dataIndex: 'name', flex: true}
|
|
50
|
+
* ],
|
|
51
|
+
* viewConfig: {
|
|
52
|
+
* plugins: {
|
|
53
|
+
* ptype: 'gridviewdragdrop',
|
|
54
|
+
* dragText: 'Drag and drop to reorganize'
|
|
55
|
+
* }
|
|
56
|
+
* },
|
|
57
|
+
* height: 200,
|
|
58
|
+
* width: 400,
|
|
59
|
+
* renderTo: Ext.getBody()
|
|
60
|
+
* });
|
|
61
|
+
*/
|
|
62
|
+
Ext.define('Ext.grid.plugin.DragDrop', {
|
|
63
|
+
extend: 'Ext.AbstractPlugin',
|
|
64
|
+
alias: 'plugin.gridviewdragdrop',
|
|
65
|
+
|
|
66
|
+
uses: [
|
|
67
|
+
'Ext.view.DragZone',
|
|
68
|
+
'Ext.grid.ViewDropZone'
|
|
69
|
+
],
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @event beforedrop
|
|
73
|
+
* **This event is fired through the GridView. Add listeners to the GridView object**
|
|
74
|
+
*
|
|
75
|
+
* Fired when a drop gesture has been triggered by a mouseup event in a valid drop position in the GridView.
|
|
76
|
+
*
|
|
77
|
+
* @param {HTMLElement} node The GridView node **if any** over which the mouse was positioned.
|
|
78
|
+
*
|
|
79
|
+
* Returning `false` to this event signals that the drop gesture was invalid, and if the drag proxy will animate
|
|
80
|
+
* back to the point from which the drag began.
|
|
81
|
+
*
|
|
82
|
+
* Returning `0` To this event signals that the data transfer operation should not take place, but that the gesture
|
|
83
|
+
* was valid, and that the repair operation should not take place.
|
|
84
|
+
*
|
|
85
|
+
* Any other return value continues with the data transfer operation.
|
|
86
|
+
*
|
|
87
|
+
* @param {Object} data The data object gathered at mousedown time by the cooperating {@link Ext.dd.DragZone
|
|
88
|
+
* DragZone}'s {@link Ext.dd.DragZone#getDragData getDragData} method it contains the following properties:
|
|
89
|
+
*
|
|
90
|
+
* - copy : Boolean
|
|
91
|
+
*
|
|
92
|
+
* The value of the GridView's `copy` property, or `true` if the GridView was configured with `allowCopy: true` and
|
|
93
|
+
* the control key was pressed when the drag operation was begun
|
|
94
|
+
*
|
|
95
|
+
* - view : GridView
|
|
96
|
+
*
|
|
97
|
+
* The source GridView from which the drag originated.
|
|
98
|
+
*
|
|
99
|
+
* - ddel : HtmlElement
|
|
100
|
+
*
|
|
101
|
+
* The drag proxy element which moves with the mouse
|
|
102
|
+
*
|
|
103
|
+
* - item : HtmlElement
|
|
104
|
+
*
|
|
105
|
+
* The GridView node upon which the mousedown event was registered.
|
|
106
|
+
*
|
|
107
|
+
* - records : Array
|
|
108
|
+
*
|
|
109
|
+
* An Array of {@link Ext.data.Model Model}s representing the selected data being dragged from the source GridView.
|
|
110
|
+
*
|
|
111
|
+
* @param {Ext.data.Model} overModel The Model over which the drop gesture took place.
|
|
112
|
+
*
|
|
113
|
+
* @param {String} dropPosition `"before"` or `"after"` depending on whether the mouse is above or below the midline
|
|
114
|
+
* of the node.
|
|
115
|
+
*
|
|
116
|
+
* @param {Function} dropFunction
|
|
117
|
+
*
|
|
118
|
+
* A function to call to complete the data transfer operation and either move or copy Model instances from the
|
|
119
|
+
* source View's Store to the destination View's Store.
|
|
120
|
+
*
|
|
121
|
+
* This is useful when you want to perform some kind of asynchronous processing before confirming the drop, such as
|
|
122
|
+
* an {@link Ext.window.MessageBox#confirm confirm} call, or an Ajax request.
|
|
123
|
+
*
|
|
124
|
+
* Return `0` from this event handler, and call the `dropFunction` at any time to perform the data transfer.
|
|
125
|
+
*/
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @event drop
|
|
129
|
+
* **This event is fired through the GridView. Add listeners to the GridView object** Fired when a drop operation
|
|
130
|
+
* has been completed and the data has been moved or copied.
|
|
131
|
+
*
|
|
132
|
+
* @param {HTMLElement} node The GridView node **if any** over which the mouse was positioned.
|
|
133
|
+
*
|
|
134
|
+
* @param {Object} data The data object gathered at mousedown time by the cooperating {@link Ext.dd.DragZone
|
|
135
|
+
* DragZone}'s {@link Ext.dd.DragZone#getDragData getDragData} method it contains the following properties:
|
|
136
|
+
*
|
|
137
|
+
* - copy : Boolean
|
|
138
|
+
*
|
|
139
|
+
* The value of the GridView's `copy` property, or `true` if the GridView was configured with `allowCopy: true` and
|
|
140
|
+
* the control key was pressed when the drag operation was begun
|
|
141
|
+
*
|
|
142
|
+
* - view : GridView
|
|
143
|
+
*
|
|
144
|
+
* The source GridView from which the drag originated.
|
|
145
|
+
*
|
|
146
|
+
* - ddel : HtmlElement
|
|
147
|
+
*
|
|
148
|
+
* The drag proxy element which moves with the mouse
|
|
149
|
+
*
|
|
150
|
+
* - item : HtmlElement
|
|
151
|
+
*
|
|
152
|
+
* The GridView node upon which the mousedown event was registered.
|
|
153
|
+
*
|
|
154
|
+
* - records : Array
|
|
155
|
+
*
|
|
156
|
+
* An Array of {@link Ext.data.Model Model}s representing the selected data being dragged from the source GridView.
|
|
157
|
+
*
|
|
158
|
+
* @param {Ext.data.Model} overModel The Model over which the drop gesture took place.
|
|
159
|
+
*
|
|
160
|
+
* @param {String} dropPosition `"before"` or `"after"` depending on whether the mouse is above or below the midline
|
|
161
|
+
* of the node.
|
|
162
|
+
*/
|
|
163
|
+
//<locale>
|
|
164
|
+
dragText : '{0} selected row{1}',
|
|
165
|
+
//</locale>
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* @cfg {String} ddGroup
|
|
169
|
+
* A named drag drop group to which this object belongs. If a group is specified, then both the DragZones and
|
|
170
|
+
* DropZone used by this plugin will only interact with other drag drop objects in the same group.
|
|
171
|
+
*/
|
|
172
|
+
ddGroup : "GridDD",
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* @cfg {String} dragGroup
|
|
176
|
+
* The ddGroup to which the DragZone will belong.
|
|
177
|
+
*
|
|
178
|
+
* This defines which other DropZones the DragZone will interact with. Drag/DropZones only interact with other
|
|
179
|
+
* Drag/DropZones which are members of the same ddGroup.
|
|
180
|
+
*/
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* @cfg {String} dropGroup
|
|
184
|
+
* The ddGroup to which the DropZone will belong.
|
|
185
|
+
*
|
|
186
|
+
* This defines which other DragZones the DropZone will interact with. Drag/DropZones only interact with other
|
|
187
|
+
* Drag/DropZones which are members of the same ddGroup.
|
|
188
|
+
*/
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* @cfg {Boolean} enableDrop
|
|
192
|
+
* False to disallow the View from accepting drop gestures.
|
|
193
|
+
*/
|
|
194
|
+
enableDrop: true,
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* @cfg {Boolean} enableDrag
|
|
198
|
+
* False to disallow dragging items from the View.
|
|
199
|
+
*/
|
|
200
|
+
enableDrag: true,
|
|
201
|
+
|
|
202
|
+
init : function(view) {
|
|
203
|
+
view.on('render', this.onViewRender, this, {single: true});
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* @private
|
|
208
|
+
* AbstractComponent calls destroy on all its plugins at destroy time.
|
|
209
|
+
*/
|
|
210
|
+
destroy: function() {
|
|
211
|
+
Ext.destroy(this.dragZone, this.dropZone);
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
enable: function() {
|
|
215
|
+
var me = this;
|
|
216
|
+
if (me.dragZone) {
|
|
217
|
+
me.dragZone.unlock();
|
|
218
|
+
}
|
|
219
|
+
if (me.dropZone) {
|
|
220
|
+
me.dropZone.unlock();
|
|
221
|
+
}
|
|
222
|
+
me.callParent();
|
|
223
|
+
},
|
|
224
|
+
|
|
225
|
+
disable: function() {
|
|
226
|
+
var me = this;
|
|
227
|
+
if (me.dragZone) {
|
|
228
|
+
me.dragZone.lock();
|
|
229
|
+
}
|
|
230
|
+
if (me.dropZone) {
|
|
231
|
+
me.dropZone.lock();
|
|
232
|
+
}
|
|
233
|
+
me.callParent();
|
|
234
|
+
},
|
|
235
|
+
|
|
236
|
+
onViewRender : function(view) {
|
|
237
|
+
var me = this;
|
|
238
|
+
|
|
239
|
+
if (me.enableDrag) {
|
|
240
|
+
me.dragZone = new Ext.view.DragZone({
|
|
241
|
+
view: view,
|
|
242
|
+
ddGroup: me.dragGroup || me.ddGroup,
|
|
243
|
+
dragText: me.dragText
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
if (me.enableDrop) {
|
|
248
|
+
me.dropZone = new Ext.grid.ViewDropZone({
|
|
249
|
+
view: view,
|
|
250
|
+
ddGroup: me.dropGroup || me.ddGroup
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
});
|
|
@@ -0,0 +1,561 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This class provides an abstract grid editing plugin on selected {@link Ext.grid.column.Column columns}.
|
|
3
|
+
* The editable columns are specified by providing an {@link Ext.grid.column.Column#editor editor}
|
|
4
|
+
* in the {@link Ext.grid.column.Column column configuration}.
|
|
5
|
+
*
|
|
6
|
+
* **Note:** This class should not be used directly. See {@link Ext.grid.plugin.CellEditing} and
|
|
7
|
+
* {@link Ext.grid.plugin.RowEditing}.
|
|
8
|
+
*/
|
|
9
|
+
Ext.define('Ext.grid.plugin.Editing', {
|
|
10
|
+
alias: 'editing.editing',
|
|
11
|
+
|
|
12
|
+
requires: [
|
|
13
|
+
'Ext.grid.column.Column',
|
|
14
|
+
'Ext.util.KeyNav'
|
|
15
|
+
],
|
|
16
|
+
|
|
17
|
+
mixins: {
|
|
18
|
+
observable: 'Ext.util.Observable'
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @cfg {Number} clicksToEdit
|
|
23
|
+
* The number of clicks on a grid required to display the editor.
|
|
24
|
+
*/
|
|
25
|
+
clicksToEdit: 2,
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @cfg {String} triggerEvent
|
|
29
|
+
* The event which triggers editing. Supercedes the {@link clicksToEdit} configuration. Maybe one of:
|
|
30
|
+
*
|
|
31
|
+
* * cellclick
|
|
32
|
+
* * celldblclick
|
|
33
|
+
* * cellfocus
|
|
34
|
+
* * rowfocus
|
|
35
|
+
*/
|
|
36
|
+
triggerEvent: undefined,
|
|
37
|
+
|
|
38
|
+
// private
|
|
39
|
+
defaultFieldXType: 'textfield',
|
|
40
|
+
|
|
41
|
+
// cell, row, form
|
|
42
|
+
editStyle: '',
|
|
43
|
+
|
|
44
|
+
constructor: function(config) {
|
|
45
|
+
var me = this;
|
|
46
|
+
Ext.apply(me, config);
|
|
47
|
+
|
|
48
|
+
me.addEvents(
|
|
49
|
+
/**
|
|
50
|
+
* @event beforeedit
|
|
51
|
+
* Fires before editing is triggered. Return false from event handler to stop the editing.
|
|
52
|
+
*
|
|
53
|
+
* @param {Ext.grid.plugin.Editing} editor
|
|
54
|
+
* @param {Object} e An edit event with the following properties:
|
|
55
|
+
*
|
|
56
|
+
* - grid - The grid
|
|
57
|
+
* - record - The record being edited
|
|
58
|
+
* - field - The field name being edited
|
|
59
|
+
* - value - The value for the field being edited.
|
|
60
|
+
* - row - The grid table row
|
|
61
|
+
* - column - The grid {@link Ext.grid.column.Column Column} defining the column that is being edited.
|
|
62
|
+
* - rowIdx - The row index that is being edited
|
|
63
|
+
* - colIdx - The column index that is being edited
|
|
64
|
+
* - cancel - Set this to true to cancel the edit or return false from your handler.
|
|
65
|
+
* - originalValue - Alias for value (only when using {@link Ext.grid.plugin.CellEditing CellEditing}).
|
|
66
|
+
*/
|
|
67
|
+
'beforeedit',
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @event edit
|
|
71
|
+
* Fires after a editing. Usage example:
|
|
72
|
+
*
|
|
73
|
+
* grid.on('edit', function(editor, e) {
|
|
74
|
+
* // commit the changes right after editing finished
|
|
75
|
+
* e.record.commit();
|
|
76
|
+
* });
|
|
77
|
+
*
|
|
78
|
+
* @param {Ext.grid.plugin.Editing} editor
|
|
79
|
+
* @param {Object} e An edit event with the following properties:
|
|
80
|
+
*
|
|
81
|
+
* - grid - The grid
|
|
82
|
+
* - record - The record that was edited
|
|
83
|
+
* - field - The field name that was edited
|
|
84
|
+
* - value - The value being set
|
|
85
|
+
* - row - The grid table row
|
|
86
|
+
* - column - The grid {@link Ext.grid.column.Column Column} defining the column that was edited.
|
|
87
|
+
* - rowIdx - The row index that was edited
|
|
88
|
+
* - colIdx - The column index that was edited
|
|
89
|
+
* - originalValue - The original value for the field, before the edit (only when using {@link Ext.grid.plugin.CellEditing CellEditing})
|
|
90
|
+
* - originalValues - The original values for the field, before the edit (only when using {@link Ext.grid.plugin.RowEditing RowEditing})
|
|
91
|
+
* - newValues - The new values being set (only when using {@link Ext.grid.plugin.RowEditing RowEditing})
|
|
92
|
+
* - view - The grid view (only when using {@link Ext.grid.plugin.RowEditing RowEditing})
|
|
93
|
+
* - store - The grid store (only when using {@link Ext.grid.plugin.RowEditing RowEditing})
|
|
94
|
+
*/
|
|
95
|
+
'edit',
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @event validateedit
|
|
99
|
+
* Fires after editing, but before the value is set in the record. Return false from event handler to
|
|
100
|
+
* cancel the change.
|
|
101
|
+
*
|
|
102
|
+
* Usage example showing how to remove the red triangle (dirty record indicator) from some records (not all). By
|
|
103
|
+
* observing the grid's validateedit event, it can be cancelled if the edit occurs on a targeted row (for example)
|
|
104
|
+
* and then setting the field's new value in the Record directly:
|
|
105
|
+
*
|
|
106
|
+
* grid.on('validateedit', function(editor, e) {
|
|
107
|
+
* var myTargetRow = 6;
|
|
108
|
+
*
|
|
109
|
+
* if (e.rowIdx == myTargetRow) {
|
|
110
|
+
* e.cancel = true;
|
|
111
|
+
* e.record.data[e.field] = e.value;
|
|
112
|
+
* }
|
|
113
|
+
* });
|
|
114
|
+
*
|
|
115
|
+
* @param {Ext.grid.plugin.Editing} editor
|
|
116
|
+
* @param {Object} e An edit event with the following properties:
|
|
117
|
+
*
|
|
118
|
+
* - grid - The grid
|
|
119
|
+
* - record - The record being edited
|
|
120
|
+
* - field - The field name being edited
|
|
121
|
+
* - value - The value being set
|
|
122
|
+
* - row - The grid table row
|
|
123
|
+
* - column - The grid {@link Ext.grid.column.Column Column} defining the column that is being edited.
|
|
124
|
+
* - rowIdx - The row index that is being edited
|
|
125
|
+
* - colIdx - The column index that is being edited
|
|
126
|
+
* - cancel - Set this to true to cancel the edit or return false from your handler.
|
|
127
|
+
* - originalValue - The original value for the field, before the edit (only when using {@link Ext.grid.plugin.CellEditing CellEditing})
|
|
128
|
+
* - originalValues - The original values for the field, before the edit (only when using {@link Ext.grid.plugin.RowEditing RowEditing})
|
|
129
|
+
* - newValues - The new values being set (only when using {@link Ext.grid.plugin.RowEditing RowEditing})
|
|
130
|
+
* - view - The grid view (only when using {@link Ext.grid.plugin.RowEditing RowEditing})
|
|
131
|
+
* - store - The grid store (only when using {@link Ext.grid.plugin.RowEditing RowEditing})
|
|
132
|
+
*/
|
|
133
|
+
'validateedit',
|
|
134
|
+
/**
|
|
135
|
+
* @event canceledit
|
|
136
|
+
* Fires when the user started editing but then cancelled the edit.
|
|
137
|
+
* @param {Ext.grid.plugin.Editing} editor
|
|
138
|
+
* @param {Object} e An edit event with the following properties:
|
|
139
|
+
*
|
|
140
|
+
* - grid - The grid
|
|
141
|
+
* - record - The record that was edited
|
|
142
|
+
* - field - The field name that was edited
|
|
143
|
+
* - value - The value being set
|
|
144
|
+
* - row - The grid table row
|
|
145
|
+
* - column - The grid {@link Ext.grid.column.Column Column} defining the column that was edited.
|
|
146
|
+
* - rowIdx - The row index that was edited
|
|
147
|
+
* - colIdx - The column index that was edited
|
|
148
|
+
* - view - The grid view
|
|
149
|
+
* - store - The grid store
|
|
150
|
+
*/
|
|
151
|
+
'canceledit'
|
|
152
|
+
|
|
153
|
+
);
|
|
154
|
+
me.mixins.observable.constructor.call(me);
|
|
155
|
+
// TODO: Deprecated, remove in 5.0
|
|
156
|
+
me.on("edit", function(editor, e) {
|
|
157
|
+
me.fireEvent("afteredit", editor, e);
|
|
158
|
+
});
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
// private
|
|
162
|
+
init: function(grid) {
|
|
163
|
+
var me = this;
|
|
164
|
+
|
|
165
|
+
// If the plugin owner is a lockable grid, attach to its normal (right side) grid.
|
|
166
|
+
if (grid.lockable) {
|
|
167
|
+
grid = grid.view.normalGrid;
|
|
168
|
+
}
|
|
169
|
+
me.grid = grid;
|
|
170
|
+
|
|
171
|
+
me.view = grid.view;
|
|
172
|
+
me.initEvents();
|
|
173
|
+
me.mon(grid, 'reconfigure', me.onReconfigure, me);
|
|
174
|
+
me.onReconfigure();
|
|
175
|
+
|
|
176
|
+
grid.relayEvents(me, [
|
|
177
|
+
/**
|
|
178
|
+
* @event beforeedit
|
|
179
|
+
* Forwarded event from Ext.grid.plugin.Editing.
|
|
180
|
+
* @member Ext.panel.Table
|
|
181
|
+
* @inheritdoc Ext.grid.plugin.Editing#beforeedit
|
|
182
|
+
*/
|
|
183
|
+
'beforeedit',
|
|
184
|
+
/**
|
|
185
|
+
* @event edit
|
|
186
|
+
* Forwarded event from Ext.grid.plugin.Editing.
|
|
187
|
+
* @member Ext.panel.Table
|
|
188
|
+
* @inheritdoc Ext.grid.plugin.Editing#edit
|
|
189
|
+
*/
|
|
190
|
+
'edit',
|
|
191
|
+
/**
|
|
192
|
+
* @event validateedit
|
|
193
|
+
* Forwarded event from Ext.grid.plugin.Editing.
|
|
194
|
+
* @member Ext.panel.Table
|
|
195
|
+
* @inheritdoc Ext.grid.plugin.Editing#validateedit
|
|
196
|
+
*/
|
|
197
|
+
'validateedit',
|
|
198
|
+
/**
|
|
199
|
+
* @event canceledit
|
|
200
|
+
* Forwarded event from Ext.grid.plugin.Editing.
|
|
201
|
+
* @member Ext.panel.Table
|
|
202
|
+
* @inheritdoc Ext.grid.plugin.Editing#canceledit
|
|
203
|
+
*/
|
|
204
|
+
'canceledit'
|
|
205
|
+
]);
|
|
206
|
+
// Marks the grid as editable, so that the SelectionModel
|
|
207
|
+
// can make appropriate decisions during navigation
|
|
208
|
+
grid.isEditable = true;
|
|
209
|
+
grid.editingPlugin = grid.view.editingPlugin = me;
|
|
210
|
+
},
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Fires after the grid is reconfigured
|
|
214
|
+
* @private
|
|
215
|
+
*/
|
|
216
|
+
onReconfigure: function(){
|
|
217
|
+
this.initFieldAccessors(this.view.getGridColumns());
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* @private
|
|
222
|
+
* AbstractComponent calls destroy on all its plugins at destroy time.
|
|
223
|
+
*/
|
|
224
|
+
destroy: function() {
|
|
225
|
+
var me = this,
|
|
226
|
+
grid = me.grid;
|
|
227
|
+
|
|
228
|
+
Ext.destroy(me.keyNav);
|
|
229
|
+
me.removeFieldAccessors(grid.getView().getGridColumns());
|
|
230
|
+
|
|
231
|
+
// Clear all listeners from all our events, clear all managed listeners we added to other Observables
|
|
232
|
+
me.clearListeners();
|
|
233
|
+
|
|
234
|
+
delete me.grid.editingPlugin;
|
|
235
|
+
delete me.grid.view.editingPlugin;
|
|
236
|
+
delete me.grid;
|
|
237
|
+
delete me.view;
|
|
238
|
+
delete me.editor;
|
|
239
|
+
delete me.keyNav;
|
|
240
|
+
},
|
|
241
|
+
|
|
242
|
+
// private
|
|
243
|
+
getEditStyle: function() {
|
|
244
|
+
return this.editStyle;
|
|
245
|
+
},
|
|
246
|
+
|
|
247
|
+
// private
|
|
248
|
+
initFieldAccessors: function(columns) {
|
|
249
|
+
columns = [].concat(columns);
|
|
250
|
+
|
|
251
|
+
var me = this,
|
|
252
|
+
c,
|
|
253
|
+
cLen = columns.length,
|
|
254
|
+
column;
|
|
255
|
+
|
|
256
|
+
for (c = 0; c < cLen; c++) {
|
|
257
|
+
column = columns[c];
|
|
258
|
+
|
|
259
|
+
Ext.applyIf(column, {
|
|
260
|
+
getEditor: function(record, defaultField) {
|
|
261
|
+
return me.getColumnField(this, defaultField);
|
|
262
|
+
},
|
|
263
|
+
|
|
264
|
+
setEditor: function(field) {
|
|
265
|
+
me.setColumnField(this, field);
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
|
|
271
|
+
// private
|
|
272
|
+
removeFieldAccessors: function(columns) {
|
|
273
|
+
columns = [].concat(columns);
|
|
274
|
+
|
|
275
|
+
var c,
|
|
276
|
+
cLen = columns.length,
|
|
277
|
+
column;
|
|
278
|
+
|
|
279
|
+
for (c = 0; c < cLen; c++) {
|
|
280
|
+
column = columns[c];
|
|
281
|
+
|
|
282
|
+
delete column.getEditor;
|
|
283
|
+
delete column.setEditor;
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
|
|
287
|
+
// private
|
|
288
|
+
// remaps to the public API of Ext.grid.column.Column.getEditor
|
|
289
|
+
getColumnField: function(columnHeader, defaultField) {
|
|
290
|
+
var field = columnHeader.field;
|
|
291
|
+
|
|
292
|
+
if (!field && columnHeader.editor) {
|
|
293
|
+
field = columnHeader.editor;
|
|
294
|
+
delete columnHeader.editor;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
if (!field && defaultField) {
|
|
298
|
+
field = defaultField;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
if (field) {
|
|
302
|
+
if (Ext.isString(field)) {
|
|
303
|
+
field = { xtype: field };
|
|
304
|
+
}
|
|
305
|
+
if (!field.isFormField) {
|
|
306
|
+
field = Ext.ComponentManager.create(field, this.defaultFieldXType);
|
|
307
|
+
}
|
|
308
|
+
columnHeader.field = field;
|
|
309
|
+
|
|
310
|
+
Ext.apply(field, {
|
|
311
|
+
name: columnHeader.dataIndex
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
return field;
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
|
|
318
|
+
// private
|
|
319
|
+
// remaps to the public API of Ext.grid.column.Column.setEditor
|
|
320
|
+
setColumnField: function(column, field) {
|
|
321
|
+
if (Ext.isObject(field) && !field.isFormField) {
|
|
322
|
+
field = Ext.ComponentManager.create(field, this.defaultFieldXType);
|
|
323
|
+
}
|
|
324
|
+
column.field = field;
|
|
325
|
+
},
|
|
326
|
+
|
|
327
|
+
// private
|
|
328
|
+
initEvents: function() {
|
|
329
|
+
var me = this;
|
|
330
|
+
me.initEditTriggers();
|
|
331
|
+
me.initCancelTriggers();
|
|
332
|
+
},
|
|
333
|
+
|
|
334
|
+
// @abstract
|
|
335
|
+
initCancelTriggers: Ext.emptyFn,
|
|
336
|
+
|
|
337
|
+
// private
|
|
338
|
+
initEditTriggers: function() {
|
|
339
|
+
var me = this,
|
|
340
|
+
view = me.view;
|
|
341
|
+
|
|
342
|
+
// Listen for the edit trigger event.
|
|
343
|
+
if (me.triggerEvent == 'cellfocus') {
|
|
344
|
+
me.mon(view, 'cellfocus', me.onCellFocus, me);
|
|
345
|
+
} else if (me.triggerEvent == 'rowfocus') {
|
|
346
|
+
me.mon(view, 'rowfocus', me.onRowFocus, me);
|
|
347
|
+
} else {
|
|
348
|
+
|
|
349
|
+
// Prevent the View from processing when the SelectionModel focuses.
|
|
350
|
+
// This is because the SelectionModel processes the mousedown event, and
|
|
351
|
+
// focusing causes a scroll which means that the subsequent mouseup might
|
|
352
|
+
// take place at a different document XY position, and will therefore
|
|
353
|
+
// not trigger a click.
|
|
354
|
+
// This Editor must call the View's focusCell method directly when we recieve a request to edit
|
|
355
|
+
if (view.selModel.isCellModel) {
|
|
356
|
+
view.onCellFocus = Ext.Function.bind(me.beforeViewCellFocus, me);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// Listen for whichever click event we are configured to use
|
|
360
|
+
me.mon(view, me.triggerEvent || ('cell' + (me.clicksToEdit === 1 ? 'click' : 'dblclick')), me.onCellClick, me);
|
|
361
|
+
}
|
|
362
|
+
view.on('render', me.addHeaderEvents, me, {single: true});
|
|
363
|
+
},
|
|
364
|
+
|
|
365
|
+
// Override of View's method so that we can pre-empt the View's processing if the view is being triggered by a mousedown
|
|
366
|
+
beforeViewCellFocus: function(position) {
|
|
367
|
+
// Pass call on to view if the navigation is from the keyboard, or we are not going to edit this cell.
|
|
368
|
+
if (this.view.selModel.keyNavigation || !this.isCellEditable || !this.isCellEditable(position.row, position.columnHeader)) {
|
|
369
|
+
this.view.focusCell.apply(this.view, arguments);
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
|
|
373
|
+
// private. Used if we are triggered by the rowfocus event
|
|
374
|
+
onRowFocus: function(record, row, rowIdx) {
|
|
375
|
+
this.startEdit(row, 0);
|
|
376
|
+
},
|
|
377
|
+
|
|
378
|
+
// private. Used if we are triggered by the cellfocus event
|
|
379
|
+
onCellFocus: function(record, cell, position) {
|
|
380
|
+
this.startEdit(position.row, position.column);
|
|
381
|
+
},
|
|
382
|
+
|
|
383
|
+
// private. Used if we are triggered by a cellclick event
|
|
384
|
+
onCellClick: function(view, cell, colIdx, record, row, rowIdx, e) {
|
|
385
|
+
// cancel editing if the element that was clicked was a tree expander
|
|
386
|
+
if(!view.expanderSelector || !e.getTarget(view.expanderSelector)) {
|
|
387
|
+
this.startEdit(record, view.getHeaderAtIndex(colIdx));
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
|
|
391
|
+
addHeaderEvents: function(){
|
|
392
|
+
var me = this;
|
|
393
|
+
me.mon(me.grid.headerCt, {
|
|
394
|
+
scope: me,
|
|
395
|
+
add: me.onColumnAdd,
|
|
396
|
+
remove: me.onColumnRemove
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
me.keyNav = Ext.create('Ext.util.KeyNav', me.view.el, {
|
|
400
|
+
enter: me.onEnterKey,
|
|
401
|
+
esc: me.onEscKey,
|
|
402
|
+
scope: me
|
|
403
|
+
});
|
|
404
|
+
},
|
|
405
|
+
|
|
406
|
+
// private
|
|
407
|
+
onColumnAdd: function(ct, column) {
|
|
408
|
+
if (column.isHeader) {
|
|
409
|
+
this.initFieldAccessors(column);
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
|
|
413
|
+
// private
|
|
414
|
+
onColumnRemove: function(ct, column) {
|
|
415
|
+
if (column.isHeader) {
|
|
416
|
+
this.removeFieldAccessors(column);
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
|
|
420
|
+
// private
|
|
421
|
+
onEnterKey: function(e) {
|
|
422
|
+
var me = this,
|
|
423
|
+
grid = me.grid,
|
|
424
|
+
selModel = grid.getSelectionModel(),
|
|
425
|
+
record,
|
|
426
|
+
pos,
|
|
427
|
+
columnHeader = grid.headerCt.getHeaderAtIndex(0);
|
|
428
|
+
|
|
429
|
+
// Calculate editing start position from SelectionModel
|
|
430
|
+
// CellSelectionModel
|
|
431
|
+
if (selModel.getCurrentPosition) {
|
|
432
|
+
pos = selModel.getCurrentPosition();
|
|
433
|
+
if (pos) {
|
|
434
|
+
record = grid.store.getAt(pos.row);
|
|
435
|
+
columnHeader = grid.headerCt.getHeaderAtIndex(pos.column);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
// RowSelectionModel
|
|
439
|
+
else {
|
|
440
|
+
record = selModel.getLastSelected();
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
// If there was a selection to provide a starting context...
|
|
444
|
+
if (record && columnHeader) {
|
|
445
|
+
me.startEdit(record, columnHeader);
|
|
446
|
+
}
|
|
447
|
+
},
|
|
448
|
+
|
|
449
|
+
// private
|
|
450
|
+
onEscKey: function(e) {
|
|
451
|
+
this.cancelEdit();
|
|
452
|
+
},
|
|
453
|
+
|
|
454
|
+
/**
|
|
455
|
+
* @private
|
|
456
|
+
* @template
|
|
457
|
+
* Template method called before editing begins.
|
|
458
|
+
* @param {Object} context The current editing context
|
|
459
|
+
* @return {Boolean} Return false to cancel the editing process
|
|
460
|
+
*/
|
|
461
|
+
beforeEdit: Ext.emptyFn,
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* Starts editing the specified record, using the specified Column definition to define which field is being edited.
|
|
465
|
+
* @param {Ext.data.Model/Number} record The Store data record which backs the row to be edited, or index of the record in Store.
|
|
466
|
+
* @param {Ext.grid.column.Column/Number} columnHeader The Column object defining the column to be edited, or index of the column.
|
|
467
|
+
*/
|
|
468
|
+
startEdit: function(record, columnHeader) {
|
|
469
|
+
var me = this,
|
|
470
|
+
context = me.getEditingContext(record, columnHeader);
|
|
471
|
+
|
|
472
|
+
if (me.beforeEdit(context) === false || me.fireEvent('beforeedit', me, context) === false || context.cancel || !me.grid.view.isVisible(true)) {
|
|
473
|
+
return false;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
me.context = context;
|
|
477
|
+
me.editing = true;
|
|
478
|
+
},
|
|
479
|
+
|
|
480
|
+
// TODO: Have this use a new class Ext.grid.CellContext for use here, and in CellSelectionModel
|
|
481
|
+
/**
|
|
482
|
+
* @private
|
|
483
|
+
* Collects all information necessary for any subclasses to perform their editing functions.
|
|
484
|
+
* @param record
|
|
485
|
+
* @param columnHeader
|
|
486
|
+
* @returns {Object} The editing context based upon the passed record and column
|
|
487
|
+
*/
|
|
488
|
+
getEditingContext: function(record, columnHeader) {
|
|
489
|
+
var me = this,
|
|
490
|
+
grid = me.grid,
|
|
491
|
+
view = grid.getView(),
|
|
492
|
+
node = view.getNode(record),
|
|
493
|
+
rowIdx, colIdx;
|
|
494
|
+
|
|
495
|
+
// An intervening listener may have deleted the Record
|
|
496
|
+
if (!node) {
|
|
497
|
+
return;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
// Coerce the column index to the closest visible column
|
|
501
|
+
columnHeader = grid.headerCt.getVisibleHeaderClosestToIndex(Ext.isNumber(columnHeader) ? columnHeader : columnHeader.getIndex());
|
|
502
|
+
|
|
503
|
+
// No corresponding column. Possible if all columns have been moved to the other side of a lockable grid pair
|
|
504
|
+
if (!columnHeader) {
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
colIdx = columnHeader.getIndex();
|
|
509
|
+
|
|
510
|
+
if (Ext.isNumber(record)) {
|
|
511
|
+
// look up record if numeric row index was passed
|
|
512
|
+
rowIdx = record;
|
|
513
|
+
record = view.getRecord(node);
|
|
514
|
+
} else {
|
|
515
|
+
rowIdx = view.indexOf(node);
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
return {
|
|
519
|
+
grid : grid,
|
|
520
|
+
record : record,
|
|
521
|
+
field : columnHeader.dataIndex,
|
|
522
|
+
value : record.get(columnHeader.dataIndex),
|
|
523
|
+
row : view.getNode(rowIdx),
|
|
524
|
+
column : columnHeader,
|
|
525
|
+
rowIdx : rowIdx,
|
|
526
|
+
colIdx : colIdx
|
|
527
|
+
};
|
|
528
|
+
},
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* Cancels any active edit that is in progress.
|
|
532
|
+
*/
|
|
533
|
+
cancelEdit: function() {
|
|
534
|
+
var me = this;
|
|
535
|
+
|
|
536
|
+
me.editing = false;
|
|
537
|
+
me.fireEvent('canceledit', me, me.context);
|
|
538
|
+
},
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* Completes the edit if there is an active edit in progress.
|
|
542
|
+
*/
|
|
543
|
+
completeEdit: function() {
|
|
544
|
+
var me = this;
|
|
545
|
+
|
|
546
|
+
if (me.editing && me.validateEdit()) {
|
|
547
|
+
me.fireEvent('edit', me, me.context);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
delete me.context;
|
|
551
|
+
me.editing = false;
|
|
552
|
+
},
|
|
553
|
+
|
|
554
|
+
// @abstract
|
|
555
|
+
validateEdit: function() {
|
|
556
|
+
var me = this,
|
|
557
|
+
context = me.context;
|
|
558
|
+
|
|
559
|
+
return me.fireEvent('validateedit', me, context) !== false && !context.cancel;
|
|
560
|
+
}
|
|
561
|
+
});
|