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,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @docauthor Tommy Maintz <tommy@sencha.com>
|
|
3
|
+
*
|
|
4
|
+
* A mixin which allows a data component to be sorted. This is used by e.g. {@link Ext.data.Store} and {@link Ext.data.TreeStore}.
|
|
5
|
+
*
|
|
6
|
+
* **NOTE**: This mixin is mainly for internal use and most users should not need to use it directly. It
|
|
7
|
+
* is more likely you will want to use one of the component classes that import this mixin, such as
|
|
8
|
+
* {@link Ext.data.Store} or {@link Ext.data.TreeStore}.
|
|
9
|
+
*/
|
|
10
|
+
Ext.define("Ext.util.Sortable", {
|
|
11
|
+
/**
|
|
12
|
+
* @property {Boolean} isSortable
|
|
13
|
+
* `true` in this class to identify an object as an instantiated Sortable, or subclass thereof.
|
|
14
|
+
*/
|
|
15
|
+
isSortable: true,
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @property {String} defaultSortDirection
|
|
19
|
+
* The default sort direction to use if one is not specified.
|
|
20
|
+
*/
|
|
21
|
+
defaultSortDirection: "ASC",
|
|
22
|
+
|
|
23
|
+
requires: [
|
|
24
|
+
'Ext.util.Sorter'
|
|
25
|
+
],
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @property {String} sortRoot
|
|
29
|
+
* The property in each item that contains the data to sort.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Performs initialization of this mixin. Component classes using this mixin should call this method during their
|
|
34
|
+
* own initialization.
|
|
35
|
+
*/
|
|
36
|
+
initSortable: function() {
|
|
37
|
+
var me = this,
|
|
38
|
+
sorters = me.sorters;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @property {Ext.util.MixedCollection} sorters
|
|
42
|
+
* The collection of {@link Ext.util.Sorter Sorters} currently applied to this Store
|
|
43
|
+
*/
|
|
44
|
+
me.sorters = new Ext.util.AbstractMixedCollection(false, function(item) {
|
|
45
|
+
return item.id || item.property;
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
if (sorters) {
|
|
49
|
+
me.sorters.addAll(me.decodeSorters(sorters));
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Sorts the data in the Store by one or more of its properties. Example usage:
|
|
55
|
+
*
|
|
56
|
+
* //sort by a single field
|
|
57
|
+
* myStore.sort('myField', 'DESC');
|
|
58
|
+
*
|
|
59
|
+
* //sorting by multiple fields
|
|
60
|
+
* myStore.sort([
|
|
61
|
+
* {
|
|
62
|
+
* property : 'age',
|
|
63
|
+
* direction: 'ASC'
|
|
64
|
+
* },
|
|
65
|
+
* {
|
|
66
|
+
* property : 'name',
|
|
67
|
+
* direction: 'DESC'
|
|
68
|
+
* }
|
|
69
|
+
* ]);
|
|
70
|
+
*
|
|
71
|
+
* Internally, Store converts the passed arguments into an array of {@link Ext.util.Sorter} instances, and delegates
|
|
72
|
+
* the actual sorting to its internal {@link Ext.util.MixedCollection}.
|
|
73
|
+
*
|
|
74
|
+
* When passing a single string argument to sort, Store maintains a ASC/DESC toggler per field, so this code:
|
|
75
|
+
*
|
|
76
|
+
* store.sort('myField');
|
|
77
|
+
* store.sort('myField');
|
|
78
|
+
*
|
|
79
|
+
* Is equivalent to this code, because Store handles the toggling automatically:
|
|
80
|
+
*
|
|
81
|
+
* store.sort('myField', 'ASC');
|
|
82
|
+
* store.sort('myField', 'DESC');
|
|
83
|
+
*
|
|
84
|
+
* @param {String/Ext.util.Sorter[]} sorters Either a string name of one of the fields in this Store's configured
|
|
85
|
+
* {@link Ext.data.Model Model}, or an array of sorter configurations.
|
|
86
|
+
* @param {String} direction The overall direction to sort the data by. Defaults to "ASC".
|
|
87
|
+
* @return {Ext.util.Sorter[]}
|
|
88
|
+
*/
|
|
89
|
+
sort: function(sorters, direction, where, doSort) {
|
|
90
|
+
var me = this,
|
|
91
|
+
sorter, sorterFn,
|
|
92
|
+
newSorters;
|
|
93
|
+
|
|
94
|
+
if (Ext.isArray(sorters)) {
|
|
95
|
+
doSort = where;
|
|
96
|
+
where = direction;
|
|
97
|
+
newSorters = sorters;
|
|
98
|
+
}
|
|
99
|
+
else if (Ext.isObject(sorters)) {
|
|
100
|
+
doSort = where;
|
|
101
|
+
where = direction;
|
|
102
|
+
newSorters = [sorters];
|
|
103
|
+
}
|
|
104
|
+
else if (Ext.isString(sorters)) {
|
|
105
|
+
sorter = me.sorters.get(sorters);
|
|
106
|
+
|
|
107
|
+
if (!sorter) {
|
|
108
|
+
sorter = {
|
|
109
|
+
property : sorters,
|
|
110
|
+
direction: direction
|
|
111
|
+
};
|
|
112
|
+
newSorters = [sorter];
|
|
113
|
+
}
|
|
114
|
+
else if (direction === undefined) {
|
|
115
|
+
sorter.toggle();
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
sorter.setDirection(direction);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (newSorters && newSorters.length) {
|
|
123
|
+
newSorters = me.decodeSorters(newSorters);
|
|
124
|
+
if (Ext.isString(where)) {
|
|
125
|
+
if (where === 'prepend') {
|
|
126
|
+
sorters = me.sorters.clone().items;
|
|
127
|
+
|
|
128
|
+
me.sorters.clear();
|
|
129
|
+
me.sorters.addAll(newSorters);
|
|
130
|
+
me.sorters.addAll(sorters);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
me.sorters.addAll(newSorters);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
me.sorters.clear();
|
|
138
|
+
me.sorters.addAll(newSorters);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (doSort !== false) {
|
|
143
|
+
me.onBeforeSort(newSorters);
|
|
144
|
+
|
|
145
|
+
sorters = me.sorters.items;
|
|
146
|
+
if (sorters.length) {
|
|
147
|
+
// Sort using a generated sorter function which combines all of the Sorters passed
|
|
148
|
+
me.doSort(me.generateComparator());
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return sorters;
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* <p>Returns a comparator function which compares two items and returns -1, 0, or 1 depending
|
|
157
|
+
* on the currently defined set of {@link #sorters}.</p>
|
|
158
|
+
* <p>If there are no {@link #sorters} defined, it returns a function which returns <code>0</code> meaning that no sorting will occur.</p>
|
|
159
|
+
*/
|
|
160
|
+
generateComparator: function() {
|
|
161
|
+
var sorters = this.sorters.getRange();
|
|
162
|
+
return sorters.length ? this.createComparator(sorters) : this.emptyComparator;
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
createComparator: function(sorters) {
|
|
166
|
+
return function(r1, r2) {
|
|
167
|
+
var result = sorters[0].sort(r1, r2),
|
|
168
|
+
length = sorters.length,
|
|
169
|
+
i = 1;
|
|
170
|
+
|
|
171
|
+
// if we have more than one sorter, OR any additional sorter functions together
|
|
172
|
+
for (; i < length; i++) {
|
|
173
|
+
result = result || sorters[i].sort.call(this, r1, r2);
|
|
174
|
+
}
|
|
175
|
+
return result;
|
|
176
|
+
};
|
|
177
|
+
},
|
|
178
|
+
|
|
179
|
+
emptyComparator: function(){
|
|
180
|
+
return 0;
|
|
181
|
+
},
|
|
182
|
+
|
|
183
|
+
onBeforeSort: Ext.emptyFn,
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* @private
|
|
187
|
+
* Normalizes an array of sorter objects, ensuring that they are all Ext.util.Sorter instances
|
|
188
|
+
* @param {Object[]} sorters The sorters array
|
|
189
|
+
* @return {Ext.util.Sorter[]} Array of Ext.util.Sorter objects
|
|
190
|
+
*/
|
|
191
|
+
decodeSorters: function(sorters) {
|
|
192
|
+
if (!Ext.isArray(sorters)) {
|
|
193
|
+
if (sorters === undefined) {
|
|
194
|
+
sorters = [];
|
|
195
|
+
} else {
|
|
196
|
+
sorters = [sorters];
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
var length = sorters.length,
|
|
201
|
+
Sorter = Ext.util.Sorter,
|
|
202
|
+
fields = this.model ? this.model.prototype.fields : null,
|
|
203
|
+
field,
|
|
204
|
+
config, i;
|
|
205
|
+
|
|
206
|
+
for (i = 0; i < length; i++) {
|
|
207
|
+
config = sorters[i];
|
|
208
|
+
|
|
209
|
+
if (!(config instanceof Sorter)) {
|
|
210
|
+
if (Ext.isString(config)) {
|
|
211
|
+
config = {
|
|
212
|
+
property: config
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
Ext.applyIf(config, {
|
|
217
|
+
root : this.sortRoot,
|
|
218
|
+
direction: "ASC"
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
//support for 3.x style sorters where a function can be defined as 'fn'
|
|
222
|
+
if (config.fn) {
|
|
223
|
+
config.sorterFn = config.fn;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
//support a function to be passed as a sorter definition
|
|
227
|
+
if (typeof config == 'function') {
|
|
228
|
+
config = {
|
|
229
|
+
sorterFn: config
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// ensure sortType gets pushed on if necessary
|
|
234
|
+
if (fields && !config.transform) {
|
|
235
|
+
field = fields.get(config.property);
|
|
236
|
+
config.transform = field ? field.sortType : undefined;
|
|
237
|
+
}
|
|
238
|
+
sorters[i] = new Ext.util.Sorter(config);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return sorters;
|
|
243
|
+
},
|
|
244
|
+
|
|
245
|
+
getSorters: function() {
|
|
246
|
+
return this.sorters.items;
|
|
247
|
+
}
|
|
248
|
+
});
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a single sorter that can be applied to a Store. The sorter is used
|
|
3
|
+
* to compare two values against each other for the purpose of ordering them. Ordering
|
|
4
|
+
* is achieved by specifying either:
|
|
5
|
+
*
|
|
6
|
+
* - {@link #property A sorting property}
|
|
7
|
+
* - {@link #sorterFn A sorting function}
|
|
8
|
+
*
|
|
9
|
+
* As a contrived example, we can specify a custom sorter that sorts by rank:
|
|
10
|
+
*
|
|
11
|
+
* Ext.define('Person', {
|
|
12
|
+
* extend: 'Ext.data.Model',
|
|
13
|
+
* fields: ['name', 'rank']
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* Ext.create('Ext.data.Store', {
|
|
17
|
+
* model: 'Person',
|
|
18
|
+
* proxy: 'memory',
|
|
19
|
+
* sorters: [{
|
|
20
|
+
* sorterFn: function(o1, o2){
|
|
21
|
+
* var getRank = function(o){
|
|
22
|
+
* var name = o.get('rank');
|
|
23
|
+
* if (name === 'first') {
|
|
24
|
+
* return 1;
|
|
25
|
+
* } else if (name === 'second') {
|
|
26
|
+
* return 2;
|
|
27
|
+
* } else {
|
|
28
|
+
* return 3;
|
|
29
|
+
* }
|
|
30
|
+
* },
|
|
31
|
+
* rank1 = getRank(o1),
|
|
32
|
+
* rank2 = getRank(o2);
|
|
33
|
+
*
|
|
34
|
+
* if (rank1 === rank2) {
|
|
35
|
+
* return 0;
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* return rank1 < rank2 ? -1 : 1;
|
|
39
|
+
* }
|
|
40
|
+
* }],
|
|
41
|
+
* data: [{
|
|
42
|
+
* name: 'Person1',
|
|
43
|
+
* rank: 'second'
|
|
44
|
+
* }, {
|
|
45
|
+
* name: 'Person2',
|
|
46
|
+
* rank: 'third'
|
|
47
|
+
* }, {
|
|
48
|
+
* name: 'Person3',
|
|
49
|
+
* rank: 'first'
|
|
50
|
+
* }]
|
|
51
|
+
* });
|
|
52
|
+
*/
|
|
53
|
+
Ext.define('Ext.util.Sorter', {
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @cfg {String} property
|
|
57
|
+
* The property to sort by. Required unless {@link #sorterFn} is provided. The property is extracted from the object
|
|
58
|
+
* directly and compared for sorting using the built in comparison operators.
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @cfg {Function} sorterFn
|
|
63
|
+
* A specific sorter function to execute. Can be passed instead of {@link #property}. This sorter function allows
|
|
64
|
+
* for any kind of custom/complex comparisons. The sorterFn receives two arguments, the objects being compared. The
|
|
65
|
+
* function should return:
|
|
66
|
+
*
|
|
67
|
+
* - -1 if o1 is "less than" o2
|
|
68
|
+
* - 0 if o1 is "equal" to o2
|
|
69
|
+
* - 1 if o1 is "greater than" o2
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @cfg {String} root
|
|
74
|
+
* Optional root property. This is mostly useful when sorting a Store, in which case we set the root to 'data' to
|
|
75
|
+
* make the filter pull the {@link #property} out of the data object of each item
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @cfg {Function} transform
|
|
80
|
+
* A function that will be run on each value before it is compared in the sorter. The function will receive a single
|
|
81
|
+
* argument, the value.
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @cfg {String} direction
|
|
86
|
+
* The direction to sort by.
|
|
87
|
+
*/
|
|
88
|
+
direction: "ASC",
|
|
89
|
+
|
|
90
|
+
constructor: function(config) {
|
|
91
|
+
var me = this;
|
|
92
|
+
|
|
93
|
+
Ext.apply(me, config);
|
|
94
|
+
|
|
95
|
+
//<debug>
|
|
96
|
+
if (me.property === undefined && me.sorterFn === undefined) {
|
|
97
|
+
Ext.Error.raise("A Sorter requires either a property or a sorter function");
|
|
98
|
+
}
|
|
99
|
+
//</debug>
|
|
100
|
+
|
|
101
|
+
me.updateSortFunction();
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* @private
|
|
106
|
+
* Creates and returns a function which sorts an array by the given property and direction
|
|
107
|
+
* @return {Function} A function which sorts by the property/direction combination provided
|
|
108
|
+
*/
|
|
109
|
+
createSortFunction: function(sorterFn) {
|
|
110
|
+
var me = this,
|
|
111
|
+
property = me.property,
|
|
112
|
+
direction = me.direction || "ASC",
|
|
113
|
+
modifier = direction.toUpperCase() == "DESC" ? -1 : 1;
|
|
114
|
+
|
|
115
|
+
//create a comparison function. Takes 2 objects, returns 1 if object 1 is greater,
|
|
116
|
+
//-1 if object 2 is greater or 0 if they are equal
|
|
117
|
+
return function(o1, o2) {
|
|
118
|
+
return modifier * sorterFn.call(me, o1, o2);
|
|
119
|
+
};
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @private
|
|
124
|
+
* Basic default sorter function that just compares the defined property of each object
|
|
125
|
+
*/
|
|
126
|
+
defaultSorterFn: function(o1, o2) {
|
|
127
|
+
var me = this,
|
|
128
|
+
transform = me.transform,
|
|
129
|
+
v1 = me.getRoot(o1)[me.property],
|
|
130
|
+
v2 = me.getRoot(o2)[me.property];
|
|
131
|
+
|
|
132
|
+
if (transform) {
|
|
133
|
+
v1 = transform(v1);
|
|
134
|
+
v2 = transform(v2);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0);
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* @private
|
|
142
|
+
* Returns the root property of the given item, based on the configured {@link #root} property
|
|
143
|
+
* @param {Object} item The item
|
|
144
|
+
* @return {Object} The root property of the object
|
|
145
|
+
*/
|
|
146
|
+
getRoot: function(item) {
|
|
147
|
+
return this.root === undefined ? item : item[this.root];
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Set the sorting direction for this sorter.
|
|
152
|
+
* @param {String} direction The direction to sort in. Should be either 'ASC' or 'DESC'.
|
|
153
|
+
*/
|
|
154
|
+
setDirection: function(direction) {
|
|
155
|
+
var me = this;
|
|
156
|
+
me.direction = direction;
|
|
157
|
+
me.updateSortFunction();
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Toggles the sorting direction for this sorter.
|
|
162
|
+
*/
|
|
163
|
+
toggle: function() {
|
|
164
|
+
var me = this;
|
|
165
|
+
me.direction = Ext.String.toggle(me.direction, "ASC", "DESC");
|
|
166
|
+
me.updateSortFunction();
|
|
167
|
+
},
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Update the sort function for this sorter.
|
|
171
|
+
* @param {Function} [fn] A new sorter function for this sorter. If not specified it will use the default
|
|
172
|
+
* sorting function.
|
|
173
|
+
*/
|
|
174
|
+
updateSortFunction: function(fn) {
|
|
175
|
+
var me = this;
|
|
176
|
+
fn = fn || me.sorterFn || me.defaultSorterFn;
|
|
177
|
+
me.sort = me.createSortFunction(fn);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provides precise pixel measurements for blocks of text so that you can determine exactly how high and
|
|
3
|
+
* wide, in pixels, a given block of text will be. Note that when measuring text, it should be plain text and
|
|
4
|
+
* should not contain any HTML, otherwise it may not be measured correctly.
|
|
5
|
+
*
|
|
6
|
+
* The measurement works by copying the relevant CSS styles that can affect the font related display,
|
|
7
|
+
* then checking the size of an element that is auto-sized. Note that if the text is multi-lined, you must
|
|
8
|
+
* provide a **fixed width** when doing the measurement.
|
|
9
|
+
*
|
|
10
|
+
* If multiple measurements are being done on the same element, you create a new instance to initialize
|
|
11
|
+
* to avoid the overhead of copying the styles to the element repeatedly.
|
|
12
|
+
*/
|
|
13
|
+
Ext.define('Ext.util.TextMetrics', {
|
|
14
|
+
statics: {
|
|
15
|
+
shared: null,
|
|
16
|
+
/**
|
|
17
|
+
* Measures the size of the specified text
|
|
18
|
+
* @param {String/HTMLElement} el The element, dom node or id from which to copy existing CSS styles
|
|
19
|
+
* that can affect the size of the rendered text
|
|
20
|
+
* @param {String} text The text to measure
|
|
21
|
+
* @param {Number} fixedWidth (optional) If the text will be multiline, you have to set a fixed width
|
|
22
|
+
* in order to accurately measure the text height
|
|
23
|
+
* @return {Object} An object containing the text's size `{width: (width), height: (height)}`
|
|
24
|
+
* @static
|
|
25
|
+
*/
|
|
26
|
+
measure: function(el, text, fixedWidth){
|
|
27
|
+
var me = this,
|
|
28
|
+
shared = me.shared;
|
|
29
|
+
|
|
30
|
+
if(!shared){
|
|
31
|
+
shared = me.shared = new me(el, fixedWidth);
|
|
32
|
+
}
|
|
33
|
+
shared.bind(el);
|
|
34
|
+
shared.setFixedWidth(fixedWidth || 'auto');
|
|
35
|
+
return shared.getSize(text);
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Destroy the TextMetrics instance created by {@link #measure}.
|
|
40
|
+
* @static
|
|
41
|
+
*/
|
|
42
|
+
destroy: function(){
|
|
43
|
+
var me = this;
|
|
44
|
+
Ext.destroy(me.shared);
|
|
45
|
+
me.shared = null;
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Creates new TextMetrics.
|
|
51
|
+
* @param {String/HTMLElement/Ext.Element} bindTo The element or its ID to bind to.
|
|
52
|
+
* @param {Number} [fixedWidth] A fixed width to apply to the measuring element.
|
|
53
|
+
*/
|
|
54
|
+
constructor: function(bindTo, fixedWidth){
|
|
55
|
+
var measure = this.measure = Ext.getBody().createChild({
|
|
56
|
+
cls: Ext.baseCSSPrefix + 'textmetrics'
|
|
57
|
+
});
|
|
58
|
+
this.el = Ext.get(bindTo);
|
|
59
|
+
|
|
60
|
+
measure.position('absolute');
|
|
61
|
+
measure.setLeftTop(-1000, -1000);
|
|
62
|
+
measure.hide();
|
|
63
|
+
|
|
64
|
+
if (fixedWidth) {
|
|
65
|
+
measure.setWidth(fixedWidth);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Returns the size of the specified text based on the internal element's style and width properties
|
|
71
|
+
* @param {String} text The text to measure
|
|
72
|
+
* @return {Object} An object containing the text's size `{width: (width), height: (height)}`
|
|
73
|
+
*/
|
|
74
|
+
getSize: function(text){
|
|
75
|
+
var measure = this.measure,
|
|
76
|
+
size;
|
|
77
|
+
|
|
78
|
+
measure.update(text);
|
|
79
|
+
size = measure.getSize();
|
|
80
|
+
measure.update('');
|
|
81
|
+
return size;
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Binds this TextMetrics instance to a new element
|
|
86
|
+
* @param {String/HTMLElement/Ext.Element} el The element or its ID.
|
|
87
|
+
*/
|
|
88
|
+
bind: function(el){
|
|
89
|
+
var me = this;
|
|
90
|
+
|
|
91
|
+
me.el = Ext.get(el);
|
|
92
|
+
me.measure.setStyle(
|
|
93
|
+
me.el.getStyles('font-size','font-style', 'font-weight', 'font-family','line-height', 'text-transform', 'letter-spacing')
|
|
94
|
+
);
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Sets a fixed width on the internal measurement element. If the text will be multiline, you have
|
|
99
|
+
* to set a fixed width in order to accurately measure the text height.
|
|
100
|
+
* @param {Number} width The width to set on the element
|
|
101
|
+
*/
|
|
102
|
+
setFixedWidth : function(width){
|
|
103
|
+
this.measure.setWidth(width);
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Returns the measured width of the specified text
|
|
108
|
+
* @param {String} text The text to measure
|
|
109
|
+
* @return {Number} width The width in pixels
|
|
110
|
+
*/
|
|
111
|
+
getWidth : function(text){
|
|
112
|
+
this.measure.dom.style.width = 'auto';
|
|
113
|
+
return this.getSize(text).width;
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Returns the measured height of the specified text
|
|
118
|
+
* @param {String} text The text to measure
|
|
119
|
+
* @return {Number} height The height in pixels
|
|
120
|
+
*/
|
|
121
|
+
getHeight : function(text){
|
|
122
|
+
return this.getSize(text).height;
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Destroy this instance
|
|
127
|
+
*/
|
|
128
|
+
destroy: function(){
|
|
129
|
+
var me = this;
|
|
130
|
+
me.measure.remove();
|
|
131
|
+
delete me.el;
|
|
132
|
+
delete me.measure;
|
|
133
|
+
}
|
|
134
|
+
}, function(){
|
|
135
|
+
Ext.Element.addMethods({
|
|
136
|
+
/**
|
|
137
|
+
* Returns the width in pixels of the passed text, or the width of the text in this Element.
|
|
138
|
+
* @param {String} text The text to measure. Defaults to the innerHTML of the element.
|
|
139
|
+
* @param {Number} [min] The minumum value to return.
|
|
140
|
+
* @param {Number} [max] The maximum value to return.
|
|
141
|
+
* @return {Number} The text width in pixels.
|
|
142
|
+
* @member Ext.dom.Element
|
|
143
|
+
*/
|
|
144
|
+
getTextWidth : function(text, min, max){
|
|
145
|
+
return Ext.Number.constrain(Ext.util.TextMetrics.measure(this.dom, Ext.value(text, this.dom.innerHTML, true)).width, min || 0, max || 1000000);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
});
|