@qooxdoo/framework 7.0.0-beta.1 → 7.0.0-beta.10
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.
- package/CHANGELOG.md +6 -0
- package/Manifest.json +2 -2
- package/README.md +9 -3
- package/bin/deploy/qx +0 -0
- package/lib/compiler/compile-info.json +45 -44
- package/lib/compiler/index.js +6600 -11001
- package/lib/resource/qx/tool/cli/templates/loader/loader-node.tmpl.js +3 -1
- package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css +1 -1
- package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
- package/lib/resource/qx/tool/cli/templates/template_vars.js +1 -1
- package/lib/resource/qx/tool/loadsass.js +16 -21
- package/lib/resource/qx/tool/schema/Manifest-1-0-0.json +1 -2
- package/lib/resource/qx/tool/schema/Manifest-2-0-0.json +1 -2
- package/lib/resource/qx/tool/schema/compile-1-0-0.json +16 -20
- package/lib/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
- package/lib/resource/qx/tool/website/build/assets/buttons.js +391 -1
- package/lib/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
- package/lib/resource/qx/tool/website/build/assets/jquery.js +5452 -3
- package/lib/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
- package/lib/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
- package/lib/resource/qx/tool/website/build/scripts/serve.js +87 -66
- package/lib/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
- package/lib/resource/qx/tool/website/src/assets/buttons.js +391 -1
- package/lib/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
- package/lib/resource/qx/tool/website/src/assets/jquery.js +5452 -3
- package/lib/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
- package/lib/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
- package/lib/resource/qx/tool/website/src/scripts/serve.js +87 -66
- package/npm-shrinkwrap.json +7293 -0
- package/package.json +29 -14
- package/source/class/q.js +4 -2
- package/source/class/qx/Annotation.js +48 -57
- package/source/class/qx/Bootstrap.js +206 -207
- package/source/class/qx/Class.js +602 -504
- package/source/class/qx/Interface.js +169 -137
- package/source/class/qx/Mixin.js +162 -120
- package/source/class/qx/Part.js +48 -77
- package/source/class/qx/Promise.js +5891 -4655
- package/source/class/qx/Theme.js +200 -134
- package/source/class/qx/__init__.js +8 -8
- package/source/class/qx/application/AbstractGui.js +20 -32
- package/source/class/qx/application/Basic.js +9 -18
- package/source/class/qx/application/IApplication.js +6 -10
- package/source/class/qx/application/Inline.js +4 -7
- package/source/class/qx/application/Mobile.js +22 -45
- package/source/class/qx/application/Native.js +8 -19
- package/source/class/qx/application/Routing.js +88 -114
- package/source/class/qx/application/Standalone.js +4 -9
- package/source/class/qx/application/__init__.js +1 -1
- package/source/class/qx/bom/AnimationFrame.js +26 -25
- package/source/class/qx/bom/Blocker.js +92 -100
- package/source/class/qx/bom/Cookie.js +18 -22
- package/source/class/qx/bom/Document.js +24 -31
- package/source/class/qx/bom/Element.js +65 -51
- package/source/class/qx/bom/Event.js +68 -78
- package/source/class/qx/bom/FileReader.js +110 -115
- package/source/class/qx/bom/Font.js +82 -122
- package/source/class/qx/bom/FullScreen.js +32 -41
- package/source/class/qx/bom/GeoLocation.js +39 -44
- package/source/class/qx/bom/HashHistory.js +58 -64
- package/source/class/qx/bom/History.js +61 -89
- package/source/class/qx/bom/Html.js +75 -71
- package/source/class/qx/bom/IdleCallback.js +20 -23
- package/source/class/qx/bom/Iframe.js +37 -69
- package/source/class/qx/bom/IframeHistory.js +83 -88
- package/source/class/qx/bom/Input.js +50 -66
- package/source/class/qx/bom/Label.js +65 -86
- package/source/class/qx/bom/Lifecycle.js +7 -9
- package/source/class/qx/bom/MediaQuery.js +324 -307
- package/source/class/qx/bom/NativeHistory.js +51 -46
- package/source/class/qx/bom/Notification.js +41 -47
- package/source/class/qx/bom/PageVisibility.js +19 -25
- package/source/class/qx/bom/Range.js +20 -30
- package/source/class/qx/bom/Selection.js +163 -172
- package/source/class/qx/bom/Selector.js +2401 -2181
- package/source/class/qx/bom/Shortcut.js +103 -129
- package/source/class/qx/bom/Storage.js +9 -8
- package/source/class/qx/bom/String.js +285 -290
- package/source/class/qx/bom/Style.js +30 -31
- package/source/class/qx/bom/Stylesheet.js +36 -60
- package/source/class/qx/bom/Template.js +730 -657
- package/source/class/qx/bom/Viewport.js +40 -46
- package/source/class/qx/bom/Vml.js +43 -28
- package/source/class/qx/bom/WebWorker.js +61 -50
- package/source/class/qx/bom/Window.js +88 -105
- package/source/class/qx/bom/__init__.js +11 -11
- package/source/class/qx/bom/client/Browser.js +45 -47
- package/source/class/qx/bom/client/Css.js +85 -85
- package/source/class/qx/bom/client/CssAnimation.js +41 -49
- package/source/class/qx/bom/client/CssTransform.js +21 -29
- package/source/class/qx/bom/client/CssTransition.js +9 -12
- package/source/class/qx/bom/client/Device.js +45 -45
- package/source/class/qx/bom/client/EcmaScript.js +153 -96
- package/source/class/qx/bom/client/Engine.js +38 -35
- package/source/class/qx/bom/client/Event.js +75 -63
- package/source/class/qx/bom/client/Html.js +97 -97
- package/source/class/qx/bom/client/Idle.js +4 -6
- package/source/class/qx/bom/client/Locale.js +15 -15
- package/source/class/qx/bom/client/OperatingSystem.js +89 -106
- package/source/class/qx/bom/client/Pdfjs.js +1364 -1067
- package/source/class/qx/bom/client/PhoneGap.js +6 -9
- package/source/class/qx/bom/client/Plugin.js +93 -97
- package/source/class/qx/bom/client/Runtime.js +14 -12
- package/source/class/qx/bom/client/Scroll.js +20 -16
- package/source/class/qx/bom/client/Stylesheet.js +44 -32
- package/source/class/qx/bom/client/Transport.js +38 -41
- package/source/class/qx/bom/client/Xml.js +39 -41
- package/source/class/qx/bom/client/__init__.js +4 -4
- package/source/class/qx/bom/element/Animation.js +15 -12
- package/source/class/qx/bom/element/AnimationCss.js +95 -64
- package/source/class/qx/bom/element/AnimationHandle.js +22 -29
- package/source/class/qx/bom/element/AnimationJs.js +94 -71
- package/source/class/qx/bom/element/Attribute.js +119 -134
- package/source/class/qx/bom/element/Background.js +35 -35
- package/source/class/qx/bom/element/BoxSizing.js +43 -44
- package/source/class/qx/bom/element/Class.js +50 -72
- package/source/class/qx/bom/element/Clip.js +36 -60
- package/source/class/qx/bom/element/Cursor.js +13 -20
- package/source/class/qx/bom/element/Dataset.js +33 -31
- package/source/class/qx/bom/element/Decoration.js +178 -168
- package/source/class/qx/bom/element/Dimension.js +78 -60
- package/source/class/qx/bom/element/Location.js +87 -94
- package/source/class/qx/bom/element/Opacity.js +42 -44
- package/source/class/qx/bom/element/Scroll.js +78 -88
- package/source/class/qx/bom/element/Style.js +61 -101
- package/source/class/qx/bom/element/Transform.js +38 -56
- package/source/class/qx/bom/element/__init__.js +4 -4
- package/source/class/qx/bom/media/Abstract.js +136 -143
- package/source/class/qx/bom/media/Audio.js +7 -12
- package/source/class/qx/bom/media/Video.js +15 -27
- package/source/class/qx/bom/request/IRequest.js +18 -21
- package/source/class/qx/bom/request/Jsonp.js +34 -39
- package/source/class/qx/bom/request/Script.js +94 -90
- package/source/class/qx/bom/request/SimpleXhr.js +111 -79
- package/source/class/qx/bom/request/Xhr.js +196 -143
- package/source/class/qx/bom/request/__init__.js +1 -1
- package/source/class/qx/bom/rest/Resource.js +269 -203
- package/source/class/qx/bom/storage/Memory.js +18 -29
- package/source/class/qx/bom/storage/UserData.js +28 -35
- package/source/class/qx/bom/storage/Web.js +19 -30
- package/source/class/qx/bom/webfonts/Manager.js +199 -130
- package/source/class/qx/bom/webfonts/Validator.js +84 -118
- package/source/class/qx/bom/webfonts/WebFont.js +24 -28
- package/source/class/qx/bom/webfonts/__init__.js +1 -1
- package/source/class/qx/core/Aspect.js +15 -22
- package/source/class/qx/core/Assert.js +391 -333
- package/source/class/qx/core/AssertionError.js +6 -15
- package/source/class/qx/core/BaseInit.js +25 -28
- package/source/class/qx/core/Environment.js +72 -86
- package/source/class/qx/core/GlobalError.js +12 -20
- package/source/class/qx/core/IDisposable.js +6 -9
- package/source/class/qx/core/Id.js +25 -15
- package/source/class/qx/core/Init.js +20 -20
- package/source/class/qx/core/MAssert.js +54 -97
- package/source/class/qx/core/MBindTo.js +10 -14
- package/source/class/qx/core/MEvent.js +76 -65
- package/source/class/qx/core/MLogging.js +9 -18
- package/source/class/qx/core/MObjectId.js +104 -65
- package/source/class/qx/core/MProperty.js +18 -34
- package/source/class/qx/core/Object.js +93 -122
- package/source/class/qx/core/ObjectRegistry.js +58 -81
- package/source/class/qx/core/Property.js +974 -780
- package/source/class/qx/core/ValidationError.js +3 -4
- package/source/class/qx/core/WindowError.js +13 -24
- package/source/class/qx/core/Wrapper.js +8 -9
- package/source/class/qx/data/Array.js +178 -191
- package/source/class/qx/data/Conversion.js +11 -18
- package/source/class/qx/data/IListData.js +11 -20
- package/source/class/qx/data/MBinding.js +31 -26
- package/source/class/qx/data/SingleValueBinding.js +491 -225
- package/source/class/qx/data/__init__.js +1 -1
- package/source/class/qx/data/controller/CheckedList.js +82 -54
- package/source/class/qx/data/controller/Form.js +81 -69
- package/source/class/qx/data/controller/IControllerDelegate.js +7 -12
- package/source/class/qx/data/controller/ISelection.js +6 -10
- package/source/class/qx/data/controller/List.js +151 -167
- package/source/class/qx/data/controller/MSelection.js +53 -72
- package/source/class/qx/data/controller/Object.js +106 -77
- package/source/class/qx/data/controller/Tree.js +164 -142
- package/source/class/qx/data/controller/__init__.js +1 -1
- package/source/class/qx/data/controller/website/List.js +34 -43
- package/source/class/qx/data/controller/website/__init__.js +2 -2
- package/source/class/qx/data/marshal/IMarshaler.js +4 -7
- package/source/class/qx/data/marshal/IMarshalerDelegate.js +10 -18
- package/source/class/qx/data/marshal/Json.js +112 -85
- package/source/class/qx/data/marshal/MEventBubbling.js +44 -42
- package/source/class/qx/data/marshal/__init__.js +1 -1
- package/source/class/qx/data/store/IStoreDelegate.js +6 -9
- package/source/class/qx/data/store/Json.js +71 -85
- package/source/class/qx/data/store/Jsonp.js +19 -25
- package/source/class/qx/data/store/Offline.js +21 -29
- package/source/class/qx/data/store/Rest.js +25 -23
- package/source/class/qx/data/store/__init__.js +1 -1
- package/source/class/qx/dev/Debug.js +105 -124
- package/source/class/qx/dev/FakeServer.js +68 -65
- package/source/class/qx/dev/ObjectSummary.js +33 -39
- package/source/class/qx/dev/Profile.js +62 -63
- package/source/class/qx/dev/StackTrace.js +64 -70
- package/source/class/qx/dev/Tokenizer.js +114 -126
- package/source/class/qx/dev/unit/AbstractTestSuite.js +17 -31
- package/source/class/qx/dev/unit/AsyncWrapper.js +22 -26
- package/source/class/qx/dev/unit/JsUnitTestResult.js +9 -21
- package/source/class/qx/dev/unit/MMeasure.js +46 -37
- package/source/class/qx/dev/unit/MMock.js +236 -240
- package/source/class/qx/dev/unit/MRequirements.js +53 -79
- package/source/class/qx/dev/unit/MRequirementsBasic.js +24 -19
- package/source/class/qx/dev/unit/MTestLoader.js +52 -57
- package/source/class/qx/dev/unit/MeasurementResult.js +18 -22
- package/source/class/qx/dev/unit/RequirementError.js +8 -17
- package/source/class/qx/dev/unit/Sinon.js +18826 -4613
- package/source/class/qx/dev/unit/TestCase.js +40 -51
- package/source/class/qx/dev/unit/TestClass.js +22 -23
- package/source/class/qx/dev/unit/TestFunction.js +28 -48
- package/source/class/qx/dev/unit/TestLoader.js +11 -14
- package/source/class/qx/dev/unit/TestLoaderBasic.js +3 -6
- package/source/class/qx/dev/unit/TestLoaderInline.js +8 -14
- package/source/class/qx/dev/unit/TestLoaderMobile.js +8 -14
- package/source/class/qx/dev/unit/TestLoaderNative.js +7 -13
- package/source/class/qx/dev/unit/TestResult.js +140 -118
- package/source/class/qx/dev/unit/TestSuite.js +46 -55
- package/source/class/qx/dom/Element.js +29 -74
- package/source/class/qx/dom/Hierarchy.js +60 -95
- package/source/class/qx/dom/Node.js +54 -81
- package/source/class/qx/dom/__init__.js +9 -9
- package/source/class/qx/event/AcceleratingTimer.js +28 -46
- package/source/class/qx/event/Emitter.js +54 -49
- package/source/class/qx/event/GlobalError.js +22 -38
- package/source/class/qx/event/IEventDispatcher.js +4 -9
- package/source/class/qx/event/IEventHandler.js +7 -13
- package/source/class/qx/event/Idle.js +32 -47
- package/source/class/qx/event/Manager.js +222 -237
- package/source/class/qx/event/Messaging.js +55 -48
- package/source/class/qx/event/Pool.js +5 -8
- package/source/class/qx/event/Registration.js +128 -118
- package/source/class/qx/event/Timer.js +50 -96
- package/source/class/qx/event/Utils.js +41 -28
- package/source/class/qx/event/dispatch/AbstractBubbling.js +133 -93
- package/source/class/qx/event/dispatch/Direct.js +46 -51
- package/source/class/qx/event/dispatch/DomBubbling.js +8 -15
- package/source/class/qx/event/dispatch/MouseCapture.js +74 -91
- package/source/class/qx/event/handler/Appear.js +40 -77
- package/source/class/qx/event/handler/Application.js +100 -126
- package/source/class/qx/event/handler/Capture.js +15 -37
- package/source/class/qx/event/handler/DragDrop.js +342 -228
- package/source/class/qx/event/handler/Element.js +45 -72
- package/source/class/qx/event/handler/ElementResize.js +35 -70
- package/source/class/qx/event/handler/Focus.js +908 -637
- package/source/class/qx/event/handler/Gesture.js +144 -93
- package/source/class/qx/event/handler/GestureCore.js +214 -163
- package/source/class/qx/event/handler/Iframe.js +21 -35
- package/source/class/qx/event/handler/Input.js +332 -209
- package/source/class/qx/event/handler/Keyboard.js +325 -270
- package/source/class/qx/event/handler/Mouse.js +212 -173
- package/source/class/qx/event/handler/Object.js +13 -31
- package/source/class/qx/event/handler/Offline.js +52 -67
- package/source/class/qx/event/handler/Orientation.js +56 -62
- package/source/class/qx/event/handler/OrientationCore.js +33 -43
- package/source/class/qx/event/handler/Pointer.js +84 -72
- package/source/class/qx/event/handler/PointerCore.js +183 -105
- package/source/class/qx/event/handler/Touch.js +43 -59
- package/source/class/qx/event/handler/TouchCore.js +159 -120
- package/source/class/qx/event/handler/Transition.js +91 -100
- package/source/class/qx/event/handler/UserAction.js +18 -42
- package/source/class/qx/event/handler/Video.js +12 -12
- package/source/class/qx/event/handler/Window.js +53 -69
- package/source/class/qx/event/message/Bus.js +109 -128
- package/source/class/qx/event/message/Message.js +14 -29
- package/source/class/qx/event/type/Data.js +11 -22
- package/source/class/qx/event/type/Dom.js +37 -52
- package/source/class/qx/event/type/Drag.js +37 -56
- package/source/class/qx/event/type/Event.js +80 -104
- package/source/class/qx/event/type/Focus.js +5 -8
- package/source/class/qx/event/type/GeoPosition.js +32 -41
- package/source/class/qx/event/type/KeyInput.js +9 -19
- package/source/class/qx/event/type/KeySequence.js +10 -21
- package/source/class/qx/event/type/Mouse.js +69 -72
- package/source/class/qx/event/type/MouseWheel.js +5 -9
- package/source/class/qx/event/type/Native.js +16 -27
- package/source/class/qx/event/type/Orientation.js +18 -30
- package/source/class/qx/event/type/Pinch.js +21 -27
- package/source/class/qx/event/type/Pointer.js +38 -41
- package/source/class/qx/event/type/Rest.js +7 -10
- package/source/class/qx/event/type/Roll.js +49 -58
- package/source/class/qx/event/type/Rotate.js +21 -27
- package/source/class/qx/event/type/Swipe.js +75 -86
- package/source/class/qx/event/type/Tap.js +2 -4
- package/source/class/qx/event/type/Touch.js +262 -286
- package/source/class/qx/event/type/Track.js +23 -28
- package/source/class/qx/event/type/dom/Custom.js +24 -20
- package/source/class/qx/event/type/dom/Pointer.js +86 -60
- package/source/class/qx/event/util/Keyboard.js +94 -106
- package/source/class/qx/html/Blocker.js +17 -18
- package/source/class/qx/html/Canvas.js +13 -29
- package/source/class/qx/html/Element.js +372 -497
- package/source/class/qx/html/Factory.js +31 -26
- package/source/class/qx/html/Iframe.js +35 -69
- package/source/class/qx/html/Image.js +43 -55
- package/source/class/qx/html/Input.js +44 -57
- package/source/class/qx/html/Jsx.js +49 -41
- package/source/class/qx/html/JsxRef.js +3 -5
- package/source/class/qx/html/Label.js +20 -32
- package/source/class/qx/html/Node.js +362 -422
- package/source/class/qx/html/Root.js +7 -16
- package/source/class/qx/html/Text.js +34 -27
- package/source/class/qx/io/ImageLoader.js +66 -90
- package/source/class/qx/io/PartLoader.js +17 -30
- package/source/class/qx/io/__init__.js +5 -3
- package/source/class/qx/io/exception/Cancel.js +33 -0
- package/source/class/qx/io/exception/Exception.js +37 -0
- package/source/class/qx/{tool/compiler/Version.js → io/exception/Protocol.js} +12 -7
- package/source/class/qx/io/exception/Transport.js +38 -0
- package/source/class/qx/io/exception/__init__.js +4 -0
- package/source/class/qx/io/graphql/Client.js +122 -0
- package/source/class/qx/io/graphql/__init__.js +9 -0
- package/source/class/qx/io/graphql/protocol/Message.js +65 -0
- package/source/class/qx/io/graphql/protocol/Request.js +93 -0
- package/source/class/qx/io/graphql/protocol/Response.js +63 -0
- package/source/class/qx/io/graphql/protocol/__init__.js +6 -0
- package/source/class/qx/io/jsonrpc/Client.js +355 -0
- package/source/class/qx/io/jsonrpc/__init__.js +15 -0
- package/source/class/qx/io/jsonrpc/protocol/Batch.js +103 -0
- package/source/class/qx/io/jsonrpc/protocol/Error.js +65 -0
- package/source/class/qx/io/jsonrpc/protocol/Message.js +48 -0
- package/source/class/qx/io/jsonrpc/protocol/Notification.js +47 -0
- package/source/class/qx/io/jsonrpc/protocol/Parser.js +105 -0
- package/source/class/qx/io/jsonrpc/protocol/Request.js +94 -0
- package/source/class/qx/io/jsonrpc/protocol/Result.js +49 -0
- package/source/class/qx/io/jsonrpc/protocol/__init__.js +5 -0
- package/source/class/qx/io/part/ClosurePart.js +16 -35
- package/source/class/qx/io/part/Package.js +35 -63
- package/source/class/qx/io/part/Part.js +29 -53
- package/source/class/qx/io/part/__init__.js +4 -4
- package/source/class/qx/io/request/AbstractRequest.js +268 -201
- package/source/class/qx/io/request/Jsonp.js +16 -19
- package/source/class/qx/io/request/Xhr.js +38 -37
- package/source/class/qx/io/request/__init__.js +1 -1
- package/source/class/qx/io/request/authentication/Basic.js +7 -13
- package/source/class/qx/io/request/authentication/Bearer.js +46 -0
- package/source/class/qx/io/request/authentication/IAuthentication.js +3 -6
- package/source/class/qx/io/request/authentication/__init__.js +1 -1
- package/source/class/qx/io/rest/Resource.js +122 -90
- package/source/class/qx/io/transport/AbstractClient.js +121 -0
- package/source/class/qx/io/transport/AbstractTransport.js +40 -0
- package/source/class/qx/io/transport/Fetch.js +98 -0
- package/source/class/qx/io/transport/ITransport.js +42 -0
- package/source/class/qx/io/transport/PostMessage.js +54 -0
- package/source/class/qx/io/transport/Websocket.js +97 -0
- package/source/class/qx/io/transport/Xhr.js +138 -0
- package/source/class/qx/io/transport/__init__.js +18 -0
- package/source/class/qx/lang/Array.js +133 -170
- package/source/class/qx/lang/Function.js +101 -104
- package/source/class/qx/lang/Json.js +1041 -774
- package/source/class/qx/lang/Number.js +11 -16
- package/source/class/qx/lang/Object.js +129 -100
- package/source/class/qx/lang/String.js +86 -94
- package/source/class/qx/lang/Type.js +44 -65
- package/source/class/qx/lang/normalize/Array.js +39 -49
- package/source/class/qx/lang/normalize/Date.js +50 -32
- package/source/class/qx/lang/normalize/Error.js +4 -7
- package/source/class/qx/lang/normalize/Function.js +11 -19
- package/source/class/qx/lang/normalize/Number.js +3 -5
- package/source/class/qx/lang/normalize/Object.js +17 -18
- package/source/class/qx/lang/normalize/String.js +39 -40
- package/source/class/qx/locale/Date.js +175 -178
- package/source/class/qx/locale/Key.js +13 -11
- package/source/class/qx/locale/LocalizedString.js +18 -15
- package/source/class/qx/locale/MTranslation.js +22 -23
- package/source/class/qx/locale/Manager.js +62 -100
- package/source/class/qx/locale/Number.js +20 -12
- package/source/class/qx/locale/String.js +26 -15
- package/source/class/qx/log/Logger.js +128 -180
- package/source/class/qx/log/__init__.js +3 -3
- package/source/class/qx/log/appender/Console.js +100 -111
- package/source/class/qx/log/appender/Element.js +25 -39
- package/source/class/qx/log/appender/Formatter.js +117 -66
- package/source/class/qx/log/appender/Native.js +4 -10
- package/source/class/qx/log/appender/NodeConsole.js +20 -28
- package/source/class/qx/log/appender/PhoneGap.js +5 -13
- package/source/class/qx/log/appender/RhinoConsole.js +12 -23
- package/source/class/qx/log/appender/RhinoFile.js +19 -26
- package/source/class/qx/log/appender/RingBuffer.js +10 -19
- package/source/class/qx/log/appender/Util.js +11 -9
- package/source/class/qx/module/Animation.js +73 -63
- package/source/class/qx/module/Attribute.js +27 -46
- package/source/class/qx/module/Blocker.js +33 -41
- package/source/class/qx/module/Cookie.js +6 -10
- package/source/class/qx/module/Css.js +82 -97
- package/source/class/qx/module/Dataset.js +12 -24
- package/source/class/qx/module/Environment.js +4 -6
- package/source/class/qx/module/Event.js +124 -127
- package/source/class/qx/module/Io.js +5 -9
- package/source/class/qx/module/Manipulating.js +98 -117
- package/source/class/qx/module/MatchMedia.js +50 -24
- package/source/class/qx/module/Messaging.js +6 -10
- package/source/class/qx/module/Placeholder.js +54 -44
- package/source/class/qx/module/Placement.js +33 -33
- package/source/class/qx/module/Rest.js +3 -4
- package/source/class/qx/module/Storage.js +34 -48
- package/source/class/qx/module/Template.js +6 -9
- package/source/class/qx/module/TextSelection.js +13 -21
- package/source/class/qx/module/Transform.js +28 -45
- package/source/class/qx/module/Traversing.js +160 -154
- package/source/class/qx/module/__init__.js +1 -1
- package/source/class/qx/module/dev/FakeServer.js +19 -25
- package/source/class/qx/module/event/GestureHandler.js +25 -13
- package/source/class/qx/module/event/Keyboard.js +42 -31
- package/source/class/qx/module/event/Mouse.js +48 -46
- package/source/class/qx/module/event/Native.js +18 -30
- package/source/class/qx/module/event/Orientation.js +11 -18
- package/source/class/qx/module/event/OrientationHandler.js +19 -17
- package/source/class/qx/module/event/Pinch.js +13 -14
- package/source/class/qx/module/event/Pointer.js +22 -22
- package/source/class/qx/module/event/PointerHandler.js +14 -11
- package/source/class/qx/module/event/Rotate.js +13 -14
- package/source/class/qx/module/event/Swipe.js +18 -24
- package/source/class/qx/module/event/Tap.js +25 -25
- package/source/class/qx/module/event/Touch.js +4 -7
- package/source/class/qx/module/event/TouchHandler.js +16 -16
- package/source/class/qx/module/event/Track.js +13 -14
- package/source/class/qx/module/util/Array.js +30 -41
- package/source/class/qx/module/util/Function.js +1 -2
- package/source/class/qx/module/util/Object.js +8 -11
- package/source/class/qx/module/util/String.js +10 -18
- package/source/class/qx/module/util/Type.js +3 -4
- package/source/class/qx/test/Annotation.js +195 -89
- package/source/class/qx/test/Bootstrap.js +98 -124
- package/source/class/qx/test/Browser.js +8 -11
- package/source/class/qx/test/Class.js +164 -198
- package/source/class/qx/test/Dom.js +10 -28
- package/source/class/qx/test/EditDistance.js +16 -16
- package/source/class/qx/test/Interface.js +380 -383
- package/source/class/qx/test/MAppearance.js +10 -14
- package/source/class/qx/test/MDecoration.js +1 -3
- package/source/class/qx/test/Mixin.js +449 -173
- package/source/class/qx/test/Promise.js +422 -333
- package/source/class/qx/test/Theme.js +204 -179
- package/source/class/qx/test/Xml.js +155 -84
- package/source/class/qx/test/application/Routing.js +45 -44
- package/source/class/qx/test/bom/AnimationFrame.js +23 -21
- package/source/class/qx/test/bom/Attribute.js +66 -47
- package/source/class/qx/test/bom/Basic.js +52 -27
- package/source/class/qx/test/bom/Blocker.js +100 -70
- package/source/class/qx/test/bom/Class.js +19 -34
- package/source/class/qx/test/bom/Cookie.js +49 -28
- package/source/class/qx/test/bom/Dataset.js +12 -24
- package/source/class/qx/test/bom/Element.js +55 -47
- package/source/class/qx/test/bom/Event.js +68 -45
- package/source/class/qx/test/bom/FileReader.js +6 -12
- package/source/class/qx/test/bom/Font.js +256 -118
- package/source/class/qx/test/bom/GeoLocation.js +82 -64
- package/source/class/qx/test/bom/History.js +63 -84
- package/source/class/qx/test/bom/IdleCallback.js +51 -38
- package/source/class/qx/test/bom/Iframe.js +14 -18
- package/source/class/qx/test/bom/Label.js +74 -105
- package/source/class/qx/test/bom/Location.js +70 -99
- package/source/class/qx/test/bom/PageVisibility.js +13 -16
- package/source/class/qx/test/bom/Selector.js +16 -16
- package/source/class/qx/test/bom/String.js +19 -15
- package/source/class/qx/test/bom/Stylesheet.js +39 -48
- package/source/class/qx/test/bom/Template.js +49 -57
- package/source/class/qx/test/bom/Viewport.js +7 -11
- package/source/class/qx/test/bom/WebWorker.js +49 -37
- package/source/class/qx/test/bom/Window.js +6 -12
- package/source/class/qx/test/bom/client/Css.js +26 -19
- package/source/class/qx/test/bom/client/Device.js +29 -18
- package/source/class/qx/test/bom/client/OperatingSystem.js +17 -20
- package/source/class/qx/test/bom/client/Pdfjs.js +15 -13
- package/source/class/qx/test/bom/element/AnimationHandle.js +20 -17
- package/source/class/qx/test/bom/element/AnimationJs.js +48 -31
- package/source/class/qx/test/bom/element/Background.js +93 -46
- package/source/class/qx/test/bom/element/BoxSizing.js +66 -61
- package/source/class/qx/test/bom/element/Class.js +33 -58
- package/source/class/qx/test/bom/element/Dimension.js +58 -37
- package/source/class/qx/test/bom/element/Style.js +87 -83
- package/source/class/qx/test/bom/element/Transform.js +209 -86
- package/source/class/qx/test/bom/media/Audio.js +18 -14
- package/source/class/qx/test/bom/media/MediaTestCase.js +61 -66
- package/source/class/qx/test/bom/media/Video.js +39 -28
- package/source/class/qx/test/bom/request/Jsonp.js +60 -57
- package/source/class/qx/test/bom/request/Script.js +150 -138
- package/source/class/qx/test/bom/request/SimpleXhr.js +206 -134
- package/source/class/qx/test/bom/request/Xhr.js +179 -132
- package/source/class/qx/test/bom/request/XhrWithRemote.js +206 -160
- package/source/class/qx/test/bom/rest/Resource.js +345 -281
- package/source/class/qx/test/bom/rest/ResourceWithRemote.js +74 -57
- package/source/class/qx/test/bom/storage/Local.js +3 -4
- package/source/class/qx/test/bom/storage/Session.js +3 -4
- package/source/class/qx/test/bom/storage/WebStorageTestCase.js +28 -27
- package/source/class/qx/test/bom/webfonts/Abstract.js +8 -10
- package/source/class/qx/test/bom/webfonts/Manager.js +127 -80
- package/source/class/qx/test/bom/webfonts/Validator.js +36 -30
- package/source/class/qx/test/compiler/ClassFile.js +29 -11
- package/source/class/qx/test/compiler/jsdoc/Parser.js +122 -96
- package/source/class/qx/test/core/Assert.js +151 -86
- package/source/class/qx/test/core/Environment.js +162 -123
- package/source/class/qx/test/core/EventEmitterDummy.js +7 -8
- package/source/class/qx/test/core/InheritanceDummy.js +23 -33
- package/source/class/qx/test/core/MemoryManagement.js +13 -5
- package/source/class/qx/test/core/Object.js +106 -112
- package/source/class/qx/test/core/ObjectId.js +7 -6
- package/source/class/qx/test/core/Property.js +483 -387
- package/source/class/qx/test/core/PropertyHelper.js +49 -64
- package/source/class/qx/test/core/Target.js +9 -13
- package/source/class/qx/test/core/Validation.js +409 -136
- package/source/class/qx/test/data/DataArray.js +1059 -394
- package/source/class/qx/test/data/DataArrayWithChangeBubble.js +315 -172
- package/source/class/qx/test/data/__init__.js +4 -4
- package/source/class/qx/test/data/controller/Form.js +141 -99
- package/source/class/qx/test/data/controller/FormWithArrayAndModel.js +66 -51
- package/source/class/qx/test/data/controller/List.js +644 -336
- package/source/class/qx/test/data/controller/ListReverse.js +64 -63
- package/source/class/qx/test/data/controller/ListWithObjects.js +305 -149
- package/source/class/qx/test/data/controller/Object.js +252 -94
- package/source/class/qx/test/data/controller/Tree.js +1219 -383
- package/source/class/qx/test/data/controller/__init__.js +4 -4
- package/source/class/qx/test/data/marshal/Json.js +832 -447
- package/source/class/qx/test/data/marshal/__init__.js +4 -4
- package/source/class/qx/test/data/singlevalue/Array.js +383 -144
- package/source/class/qx/test/data/singlevalue/Deep.js +361 -175
- package/source/class/qx/test/data/singlevalue/Resolve.js +51 -29
- package/source/class/qx/test/data/singlevalue/Simple.js +530 -208
- package/source/class/qx/test/data/singlevalue/TextFieldDummy.js +32 -28
- package/source/class/qx/test/data/singlevalue/__init__.js +4 -4
- package/source/class/qx/test/data/store/Json.js +574 -313
- package/source/class/qx/test/data/store/Jsonp.js +103 -77
- package/source/class/qx/test/data/store/Offline.js +127 -110
- package/source/class/qx/test/data/store/Rest.js +58 -52
- package/source/class/qx/test/data/store/RestWithRemote.js +36 -30
- package/source/class/qx/test/data/store/__init__.js +4 -4
- package/source/class/qx/test/dev/Debug.js +9 -13
- package/source/class/qx/test/dev/StackTrace.js +51 -42
- package/source/class/qx/test/dev/unit/Requirements.js +36 -49
- package/source/class/qx/test/dev/unit/Sinon.js +85 -73
- package/source/class/qx/test/dev/unit/TestCase.js +12 -17
- package/source/class/qx/test/dom/Element.js +17 -12
- package/source/class/qx/test/dom/Hierarchy.js +53 -38
- package/source/class/qx/test/dom/Node.js +97 -43
- package/source/class/qx/test/event/Bubbling.js +258 -88
- package/source/class/qx/test/event/Emitter.js +38 -39
- package/source/class/qx/test/event/GlobalError.js +59 -87
- package/source/class/qx/test/event/GlobalEventMonitors.js +22 -25
- package/source/class/qx/test/event/Messaging.js +66 -49
- package/source/class/qx/test/event/MockBubblingHandler.js +10 -15
- package/source/class/qx/test/event/MockHandler.js +14 -33
- package/source/class/qx/test/event/Registration.js +38 -32
- package/source/class/qx/test/event/Timer.js +61 -39
- package/source/class/qx/test/event/Utils.js +164 -123
- package/source/class/qx/test/event/dispatch/MouseCapture.js +61 -51
- package/source/class/qx/test/event/dispatch/MouseEventOnDocument.js +22 -23
- package/source/class/qx/test/event/dispatch/TestingHandler.js +8 -10
- package/source/class/qx/test/event/dispatch/TestingWindow.js +9 -13
- package/source/class/qx/test/event/dispatch/__init__.js +4 -4
- package/source/class/qx/test/event/handler/Offline.js +7 -8
- package/source/class/qx/test/event/message/Bus.js +112 -72
- package/source/class/qx/test/event/message/__init__.js +4 -4
- package/source/class/qx/test/event/type/Dom.js +12 -11
- package/source/class/qx/test/event/type/Event.js +7 -16
- package/source/class/qx/test/event/type/Mouse.js +12 -11
- package/source/class/qx/test/event/type/Native.js +12 -11
- package/source/class/qx/test/event/type/__init__.js +4 -4
- package/source/class/qx/test/event/util/Keyboard.js +4 -3
- package/source/class/qx/test/html/Element.js +538 -239
- package/source/class/qx/test/html/Iframe.js +85 -73
- package/source/class/qx/test/html/jsx/TestJsx.js +15 -4
- package/source/class/qx/test/html/jsx/TestJsxBrowser.js +37 -19
- package/source/class/qx/test/html/jsx/TestWidget.js +26 -26
- package/source/class/qx/test/io/ImageLoader.js +256 -160
- package/source/class/qx/test/io/MAssert.js +46 -0
- package/source/class/qx/test/io/MRemoteTest.js +9 -11
- package/source/class/qx/test/io/__init__.js +4 -4
- package/source/class/qx/test/io/graphql/Client.js +190 -0
- package/source/class/qx/test/io/graphql/ClientFetch.js +34 -0
- package/source/class/qx/test/io/graphql/Request.js +41 -0
- package/source/class/qx/test/io/jsonrpc/Client.js +333 -0
- package/source/class/qx/test/io/jsonrpc/Protocol.js +108 -0
- package/source/class/qx/test/io/request/Jsonp.js +23 -20
- package/source/class/qx/test/io/request/JsonpWithRemote.js +25 -22
- package/source/class/qx/test/io/request/MRequest.js +137 -114
- package/source/class/qx/test/io/request/Xhr.js +367 -209
- package/source/class/qx/test/io/request/XhrWithRemote.js +133 -100
- package/source/class/qx/test/io/rest/Resource.js +325 -270
- package/source/class/qx/test/io/rest/ResourceWithRemote.js +75 -58
- package/source/class/qx/test/io/transport/PostMessage.js +56 -0
- package/source/class/qx/test/io/transport/Websocket.js +64 -0
- package/source/class/qx/test/lang/Array.js +79 -105
- package/source/class/qx/test/lang/Function.js +64 -53
- package/source/class/qx/test/lang/Json.js +51 -79
- package/source/class/qx/test/lang/Number.js +4 -6
- package/source/class/qx/test/lang/Object.js +143 -133
- package/source/class/qx/test/lang/String.js +151 -95
- package/source/class/qx/test/lang/Type.js +34 -44
- package/source/class/qx/test/lang/Webkit.js +8 -13
- package/source/class/qx/test/lang/normalize/Array.js +121 -68
- package/source/class/qx/test/lang/normalize/Date.js +232 -49
- package/source/class/qx/test/lang/normalize/Error.js +5 -8
- package/source/class/qx/test/lang/normalize/Function.js +7 -13
- package/source/class/qx/test/lang/normalize/Object.js +22 -29
- package/source/class/qx/test/lang/normalize/String.js +19 -28
- package/source/class/qx/test/locale/Date.js +91 -43
- package/source/class/qx/test/locale/Locale.js +52 -32
- package/source/class/qx/test/locale/LocalizedString.js +12 -12
- package/source/class/qx/test/log/DeprecationMethodOverriding.js +52 -31
- package/source/class/qx/test/log/Filters.js +6 -3
- package/source/class/qx/test/log/Formatter.js +13 -7
- package/source/class/qx/test/log/Logger.js +19 -29
- package/source/class/qx/test/log/RingBuffer.js +14 -25
- package/source/class/qx/test/log/__init__.js +4 -4
- package/source/class/qx/test/log/fixture/ClassA.js +22 -22
- package/source/class/qx/test/log/fixture/ClassB1.js +7 -9
- package/source/class/qx/test/log/fixture/ClassB2.js +5 -7
- package/source/class/qx/test/log/fixture/ClassC1.js +5 -7
- package/source/class/qx/test/log/fixture/ClassC2.js +7 -9
- package/source/class/qx/test/mobile/LocaleSwitch.js +29 -36
- package/source/class/qx/test/mobile/MobileTestCase.js +39 -49
- package/source/class/qx/test/mobile/basic/Atom.js +129 -53
- package/source/class/qx/test/mobile/basic/Image.js +41 -31
- package/source/class/qx/test/mobile/basic/Label.js +6 -10
- package/source/class/qx/test/mobile/container/Carousel.js +41 -45
- package/source/class/qx/test/mobile/container/Composite.js +48 -65
- package/source/class/qx/test/mobile/container/Drawer.js +42 -29
- package/source/class/qx/test/mobile/container/Navigation.js +14 -20
- package/source/class/qx/test/mobile/container/Scroll.js +23 -19
- package/source/class/qx/test/mobile/core/Widget.js +150 -86
- package/source/class/qx/test/mobile/dialog/Menu.js +47 -26
- package/source/class/qx/test/mobile/dialog/Popup.js +30 -19
- package/source/class/qx/test/mobile/embed/Html.js +5 -8
- package/source/class/qx/test/mobile/form/Button.js +15 -13
- package/source/class/qx/test/mobile/form/CheckBox.js +21 -17
- package/source/class/qx/test/mobile/form/Form.js +37 -24
- package/source/class/qx/test/mobile/form/Group.js +5 -9
- package/source/class/qx/test/mobile/form/Label.js +11 -13
- package/source/class/qx/test/mobile/form/NumberField.js +49 -45
- package/source/class/qx/test/mobile/form/RadioButton.js +30 -19
- package/source/class/qx/test/mobile/form/SelectBox.js +39 -25
- package/source/class/qx/test/mobile/form/SingleRenderer.js +31 -27
- package/source/class/qx/test/mobile/form/Slider.js +55 -35
- package/source/class/qx/test/mobile/form/TextArea.js +34 -24
- package/source/class/qx/test/mobile/form/TextField.js +34 -24
- package/source/class/qx/test/mobile/form/ToggleButton.js +10 -14
- package/source/class/qx/test/mobile/layout/Card.js +21 -17
- package/source/class/qx/test/mobile/layout/HBox.js +25 -20
- package/source/class/qx/test/mobile/layout/VBox.js +25 -21
- package/source/class/qx/test/mobile/list/List.js +114 -83
- package/source/class/qx/test/mobile/navigationbar/NavigationBar.js +5 -9
- package/source/class/qx/test/mobile/page/Manager.js +7 -13
- package/source/class/qx/test/mobile/page/NavigationPage.js +7 -17
- package/source/class/qx/test/mobile/page/Page.js +101 -68
- package/source/class/qx/test/mobile/tabbar/TabBar.js +11 -21
- package/source/class/qx/test/mobile/toolbar/Toolbar.js +16 -16
- package/source/class/qx/test/performance/BaseCall.js +31 -36
- package/source/class/qx/test/performance/Event.js +60 -53
- package/source/class/qx/test/performance/Object.js +16 -22
- package/source/class/qx/test/performance/Property.js +20 -22
- package/source/class/qx/test/performance/data/Marshaling.js +25 -30
- package/source/class/qx/test/performance/decorator/AbstractDecorator.js +22 -34
- package/source/class/qx/test/performance/decorator/Background.js +4 -6
- package/source/class/qx/test/performance/decorator/BackgroundScale.js +6 -8
- package/source/class/qx/test/performance/decorator/Single.js +4 -6
- package/source/class/qx/test/performance/element/Element.js +50 -67
- package/source/class/qx/test/performance/widget/AbstractWidget.js +31 -44
- package/source/class/qx/test/performance/widget/Button.js +5 -7
- package/source/class/qx/test/performance/widget/Label.js +5 -7
- package/source/class/qx/test/performance/widget/RichLabel.js +6 -8
- package/source/class/qx/test/performance/widget/Widget.js +5 -7
- package/source/class/qx/test/performance/widget/WidgetWithDecorator.js +7 -9
- package/source/class/qx/test/performance/widget/WidgetWithSingle.js +9 -11
- package/source/class/qx/test/renderer/Color.js +22 -49
- package/source/class/qx/test/testclasses/BaseClassBoth.js +11 -8
- package/source/class/qx/test/testclasses/BaseClassIncluded.js +5 -6
- package/source/class/qx/test/testclasses/BaseClassPatched.js +15 -8
- package/source/class/qx/test/testclasses/DerivedClassBoth.js +7 -7
- package/source/class/qx/test/testclasses/DerivedClassIncluded.js +7 -7
- package/source/class/qx/test/testclasses/DerivedClassPatched.js +7 -7
- package/source/class/qx/test/testclasses/MMixinOne.js +4 -4
- package/source/class/qx/test/testclasses/MMixinTwo.js +2 -2
- package/source/class/qx/test/testclasses/RootClass.js +8 -8
- package/source/class/qx/test/theme/__init__.js +4 -4
- package/source/class/qx/test/theme/manager/Color.js +52 -66
- package/source/class/qx/test/theme/manager/Decoration.js +177 -154
- package/source/class/qx/test/theme/manager/Font.js +68 -39
- package/source/class/qx/test/theme/manager/Icon.js +46 -43
- package/source/class/qx/test/theme/manager/Meta.js +121 -110
- package/source/class/qx/test/theme/manager/__init__.js +4 -4
- package/source/class/qx/test/theme/manager/mock/Appearance.js +17 -23
- package/source/class/qx/test/theme/manager/mock/Color.js +7 -9
- package/source/class/qx/test/theme/manager/mock/Decoration.js +7 -10
- package/source/class/qx/test/theme/manager/mock/Font.js +6 -10
- package/source/class/qx/test/theme/simple/Appearance.js +268 -210
- package/source/class/qx/test/tool/utils/Utils.js +10 -8
- package/source/class/qx/test/toolchain/PrivateOptimization.js +20 -13
- package/source/class/qx/test/toolchain/TestRunner.js +12 -12
- package/source/class/qx/test/toolchain/VariantOptimization.js +37 -26
- package/source/class/qx/test/toolchain/__init__.js +4 -4
- package/source/class/qx/test/type/Array.js +8 -12
- package/source/class/qx/test/type/BaseArray.js +58 -78
- package/source/class/qx/test/type/BaseString.js +30 -61
- package/source/class/qx/test/type/__init__.js +4 -4
- package/source/class/qx/test/ui/BackgroundColor.js +20 -21
- package/source/class/qx/test/ui/ChildrenHandling.js +136 -81
- package/source/class/qx/test/ui/Destroy.js +310 -248
- package/source/class/qx/test/ui/Focus.js +40 -87
- package/source/class/qx/test/ui/Insets.js +14 -18
- package/source/class/qx/test/ui/LayoutTestCase.js +99 -92
- package/source/class/qx/test/ui/LocaleSwitch.js +37 -41
- package/source/class/qx/test/ui/RadioItems.js +11 -22
- package/source/class/qx/test/ui/Widget.js +13 -17
- package/source/class/qx/test/ui/Window.js +26 -39
- package/source/class/qx/test/ui/basic/Atom.js +37 -25
- package/source/class/qx/test/ui/basic/Image.js +179 -138
- package/source/class/qx/test/ui/basic/Label.js +147 -65
- package/source/class/qx/test/ui/basic/__init__.js +4 -4
- package/source/class/qx/test/ui/command/Command.js +105 -69
- package/source/class/qx/test/ui/command/Group.js +24 -21
- package/source/class/qx/test/ui/command/GroupManager.js +7 -12
- package/source/class/qx/test/ui/container/Stack.js +26 -36
- package/source/class/qx/test/ui/core/AbstractScrollArea.js +84 -67
- package/source/class/qx/test/ui/core/Appearance.js +53 -54
- package/source/class/qx/test/ui/core/Blocker.js +80 -44
- package/source/class/qx/test/ui/core/DragDropScrolling.js +69 -55
- package/source/class/qx/test/ui/core/Placement.js +22 -34
- package/source/class/qx/test/ui/core/Queues.js +28 -39
- package/source/class/qx/test/ui/core/SizeHint.js +32 -76
- package/source/class/qx/test/ui/core/SizeHintX.js +8 -15
- package/source/class/qx/test/ui/core/SizeHintY.js +8 -15
- package/source/class/qx/test/ui/core/Spacer.js +11 -18
- package/source/class/qx/test/ui/core/Widget.js +117 -112
- package/source/class/qx/test/ui/core/__init__.js +4 -4
- package/source/class/qx/test/ui/decoration/LinearGradient.js +18 -14
- package/source/class/qx/test/ui/embed/Iframe.js +70 -65
- package/source/class/qx/test/ui/embed/__init__.js +4 -4
- package/source/class/qx/test/ui/form/AbstractSelectBox.js +11 -16
- package/source/class/qx/test/ui/form/AbstractVirtualBox.js +12 -19
- package/source/class/qx/test/ui/form/BooleanFormat.js +40 -25
- package/source/class/qx/test/ui/form/Color.js +29 -19
- package/source/class/qx/test/ui/form/ComboBox.js +39 -67
- package/source/class/qx/test/ui/form/Date.js +34 -21
- package/source/class/qx/test/ui/form/DateField.js +16 -19
- package/source/class/qx/test/ui/form/Executable.js +98 -68
- package/source/class/qx/test/ui/form/Field.js +65 -54
- package/source/class/qx/test/ui/form/Form.js +211 -123
- package/source/class/qx/test/ui/form/FormManager.js +72 -100
- package/source/class/qx/test/ui/form/FormValidator.js +549 -399
- package/source/class/qx/test/ui/form/Label.js +87 -65
- package/source/class/qx/test/ui/form/List.js +19 -19
- package/source/class/qx/test/ui/form/MenuButton.js +26 -20
- package/source/class/qx/test/ui/form/ModelProperty.js +40 -36
- package/source/class/qx/test/ui/form/ModelSelection.js +39 -84
- package/source/class/qx/test/ui/form/NumberFormat.js +30 -19
- package/source/class/qx/test/ui/form/Placeholder.js +147 -87
- package/source/class/qx/test/ui/form/RadioButtonGroup.js +31 -26
- package/source/class/qx/test/ui/form/RadioGroup.js +58 -54
- package/source/class/qx/test/ui/form/Range.js +63 -28
- package/source/class/qx/test/ui/form/Renderer.js +39 -33
- package/source/class/qx/test/ui/form/Resetter.js +21 -35
- package/source/class/qx/test/ui/form/Slider.js +37 -21
- package/source/class/qx/test/ui/form/Spinner.js +9 -5
- package/source/class/qx/test/ui/form/SplitButton.js +7 -11
- package/source/class/qx/test/ui/form/StringFormat.js +60 -30
- package/source/class/qx/test/ui/form/TextArea.js +59 -41
- package/source/class/qx/test/ui/form/TextField.js +14 -16
- package/source/class/qx/test/ui/form/ToggleButton.js +20 -24
- package/source/class/qx/test/ui/form/VirtualSelectBox.js +66 -40
- package/source/class/qx/test/ui/form/__init__.js +4 -4
- package/source/class/qx/test/ui/form/virtual/VirtualComboBox.js +58 -60
- package/source/class/qx/test/ui/form/virtual/VirtualDropDownList.js +120 -110
- package/source/class/qx/test/ui/form/virtual/VirtualSelectBox.js +43 -27
- package/source/class/qx/test/ui/groupbox/CheckGroupBox.js +13 -18
- package/source/class/qx/test/ui/indicator/ProgressBar.js +73 -48
- package/source/class/qx/test/ui/layout/Box.js +23 -22
- package/source/class/qx/test/ui/layout/Flow.js +233 -153
- package/source/class/qx/test/ui/layout/Grid.js +88 -101
- package/source/class/qx/test/ui/layout/LayoutItem.js +57 -83
- package/source/class/qx/test/ui/layout/LayoutRoot.js +7 -11
- package/source/class/qx/test/ui/layout/Util.js +30 -31
- package/source/class/qx/test/ui/layout/__init__.js +4 -4
- package/source/class/qx/test/ui/list/AbstractListTest.js +13 -21
- package/source/class/qx/test/ui/list/Group.js +191 -114
- package/source/class/qx/test/ui/list/List.js +189 -132
- package/source/class/qx/test/ui/list/MAssert.js +14 -9
- package/source/class/qx/test/ui/list/ObjectGroup.js +131 -109
- package/source/class/qx/test/ui/list/core/MultiSelection.js +58 -44
- package/source/class/qx/test/ui/list/core/SingleSelection.js +43 -43
- package/source/class/qx/test/ui/list/fixture/GroupMock.js +6 -9
- package/source/class/qx/test/ui/list/fixture/ItemMock.js +9 -13
- package/source/class/qx/test/ui/root/Inline.js +22 -20
- package/source/class/qx/test/ui/selection/AbstractMultiSelectonTest.js +188 -105
- package/source/class/qx/test/ui/selection/AbstractSingleSelectonTest.js +173 -125
- package/source/class/qx/test/ui/selection/ListMultiSelection.js +19 -21
- package/source/class/qx/test/ui/selection/ListSingleSelection.js +19 -21
- package/source/class/qx/test/ui/selection/RadioGroup.js +41 -29
- package/source/class/qx/test/ui/selection/SelectBox.js +11 -17
- package/source/class/qx/test/ui/selection/Stack.js +22 -27
- package/source/class/qx/test/ui/selection/TabView.js +35 -26
- package/source/class/qx/test/ui/selection/TreeMultiSelection.js +14 -19
- package/source/class/qx/test/ui/selection/TreeSingleSelection.js +20 -24
- package/source/class/qx/test/ui/selection/__init__.js +4 -4
- package/source/class/qx/test/ui/table/Dispose.js +46 -46
- package/source/class/qx/test/ui/table/Table.js +74 -69
- package/source/class/qx/test/ui/table/__init__.js +4 -4
- package/source/class/qx/test/ui/table/celleditor/AbstractField.js +14 -28
- package/source/class/qx/test/ui/table/celleditor/ComboBox.js +11 -18
- package/source/class/qx/test/ui/table/celleditor/PasswordField.js +6 -10
- package/source/class/qx/test/ui/table/celleditor/SelectBox.js +16 -32
- package/source/class/qx/test/ui/table/celleditor/TextField.js +6 -9
- package/source/class/qx/test/ui/table/celleditor/__init__.js +4 -4
- package/source/class/qx/test/ui/table/columnmodel/Basic.js +130 -129
- package/source/class/qx/test/ui/table/model/Filtered.js +51 -36
- package/source/class/qx/test/ui/table/model/Simple.js +43 -45
- package/source/class/qx/test/ui/table/selection/Model.js +70 -22
- package/source/class/qx/test/ui/toolbar/OverflowHandling.js +145 -123
- package/source/class/qx/test/ui/toolbar/ToolBar.js +20 -30
- package/source/class/qx/test/ui/tree/Tree.js +63 -42
- package/source/class/qx/test/ui/tree/TreeFolder.js +44 -46
- package/source/class/qx/test/ui/tree/virtual/AbstractTreeTest.js +61 -96
- package/source/class/qx/test/ui/tree/virtual/MultiSelection.js +68 -39
- package/source/class/qx/test/ui/tree/virtual/OneSelection.js +82 -42
- package/source/class/qx/test/ui/tree/virtual/OpenCloseController.js +80 -101
- package/source/class/qx/test/ui/tree/virtual/SingleSelection.js +40 -32
- package/source/class/qx/test/ui/tree/virtual/Sorting.js +46 -47
- package/source/class/qx/test/ui/tree/virtual/Tree.js +267 -191
- package/source/class/qx/test/ui/tree/virtual/TreeItem.js +60 -63
- package/source/class/qx/test/ui/tree/virtual/UtilTest.js +65 -50
- package/source/class/qx/test/ui/tree/virtual/WidgetProvider.js +127 -132
- package/source/class/qx/test/ui/virtual/Axis.js +210 -193
- package/source/class/qx/test/ui/virtual/Pane.js +287 -190
- package/source/class/qx/test/ui/virtual/PaneUpdate.js +71 -77
- package/source/class/qx/test/ui/virtual/PointerEventMock.js +10 -13
- package/source/class/qx/test/ui/virtual/Scroller.js +29 -39
- package/source/class/qx/test/ui/virtual/__init__.js +4 -4
- package/source/class/qx/test/ui/virtual/cell/WidgetCell.js +39 -40
- package/source/class/qx/test/ui/virtual/layer/CellSpanManager.js +157 -127
- package/source/class/qx/test/ui/virtual/layer/Column.js +6 -10
- package/source/class/qx/test/ui/virtual/layer/GridLines.js +6 -10
- package/source/class/qx/test/ui/virtual/layer/GridLinesHorizontal.js +6 -9
- package/source/class/qx/test/ui/virtual/layer/GridLinesVertical.js +6 -9
- package/source/class/qx/test/ui/virtual/layer/HtmlCell.js +12 -19
- package/source/class/qx/test/ui/virtual/layer/HtmlCellSpan.js +13 -21
- package/source/class/qx/test/ui/virtual/layer/LayerMock.js +31 -43
- package/source/class/qx/test/ui/virtual/layer/LayerSimple.js +26 -26
- package/source/class/qx/test/ui/virtual/layer/LayerTestCase.js +52 -50
- package/source/class/qx/test/ui/virtual/layer/Row.js +6 -10
- package/source/class/qx/test/ui/virtual/layer/WidgetCell.js +45 -52
- package/source/class/qx/test/ui/virtual/layer/WidgetCellSpan.js +71 -48
- package/source/class/qx/test/ui/virtual/layer/__init__.js +4 -4
- package/source/class/qx/test/ui/virtual/performance/AbstractLayerTest.js +84 -68
- package/source/class/qx/test/ui/virtual/performance/DomCell.js +6 -9
- package/source/class/qx/test/ui/virtual/performance/DomPoolCell.js +6 -9
- package/source/class/qx/test/ui/virtual/performance/HtmlDivCell.js +7 -11
- package/source/class/qx/test/ui/virtual/performance/HtmlDivRelative.js +6 -9
- package/source/class/qx/test/ui/virtual/performance/HtmlTableCell.js +8 -13
- package/source/class/qx/test/ui/virtual/performance/HtmlTableCellNaive.js +8 -13
- package/source/class/qx/test/ui/virtual/performance/HtmlTableCssCell.js +8 -19
- package/source/class/qx/test/ui/virtual/performance/WidgetCell.js +10 -15
- package/source/class/qx/test/ui/virtual/performance/__init__.js +4 -4
- package/source/class/qx/test/ui/virtual/performance/layer/DomCell.js +24 -18
- package/source/class/qx/test/ui/virtual/performance/layer/DomPoolCell.js +28 -26
- package/source/class/qx/test/ui/virtual/performance/layer/HtmlDivRelative.js +13 -17
- package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCell.js +29 -28
- package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCellNaive.js +22 -24
- package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCssCell.js +32 -47
- package/source/class/qx/test/ui/virtual/performance/layer/__init__.js +4 -4
- package/source/class/qx/test/ui/window/Desktop.js +21 -12
- package/source/class/qx/test/util/Base64.js +10 -13
- package/source/class/qx/test/util/ColorUtil.js +121 -54
- package/source/class/qx/test/util/DateFormat.js +569 -299
- package/source/class/qx/test/util/DateMock.js +16 -19
- package/source/class/qx/test/util/DeferredCall.js +12 -13
- package/source/class/qx/test/util/Delegate.js +28 -26
- package/source/class/qx/test/util/DisposeUtil.js +32 -14
- package/source/class/qx/test/util/DynamicScriptLoader.js +99 -64
- package/source/class/qx/test/util/Fsm.js +16 -18
- package/source/class/qx/test/util/Function.js +23 -19
- package/source/class/qx/test/util/LibraryManager.js +15 -22
- package/source/class/qx/test/util/NumberFormat.js +53 -64
- package/source/class/qx/test/util/PropertyUtil.js +35 -35
- package/source/class/qx/test/util/Request.js +26 -18
- package/source/class/qx/test/util/ResourceManager.js +50 -35
- package/source/class/qx/test/util/ResponseParser.js +45 -35
- package/source/class/qx/test/util/RingBuffer.js +15 -28
- package/source/class/qx/test/util/Serializer.js +210 -153
- package/source/class/qx/test/util/StringBuilder.js +7 -13
- package/source/class/qx/test/util/StringSplit.js +114 -69
- package/source/class/qx/test/util/Uri.js +74 -78
- package/source/class/qx/test/util/Validate.js +95 -64
- package/source/class/qx/test/util/placement/BestFitAxis.js +17 -26
- package/source/class/qx/test/util/placement/DirectAxis.js +8 -11
- package/source/class/qx/test/util/placement/KeepAlignAxis.js +17 -26
- package/source/class/qx/test/util/placement/Placement.js +607 -244
- package/source/class/qx/test/util/placement/__init__.js +4 -4
- package/source/class/qx/theme/Classic.js +9 -11
- package/source/class/qx/theme/Indigo.js +9 -11
- package/source/class/qx/theme/Modern.js +9 -11
- package/source/class/qx/theme/Simple.js +9 -11
- package/source/class/qx/theme/TangibleDark.js +1 -1
- package/source/class/qx/theme/TangibleLight.js +1 -1
- package/source/class/qx/theme/__init__.js +4 -4
- package/source/class/qx/theme/classic/Appearance.js +995 -1336
- package/source/class/qx/theme/classic/Color.js +83 -83
- package/source/class/qx/theme/classic/Decoration.js +318 -299
- package/source/class/qx/theme/classic/Font.js +38 -25
- package/source/class/qx/theme/icon/Oxygen.js +4 -5
- package/source/class/qx/theme/icon/Tango.js +4 -5
- package/source/class/qx/theme/indigo/Appearance.js +66 -85
- package/source/class/qx/theme/indigo/Color.js +65 -66
- package/source/class/qx/theme/indigo/Decoration.js +31 -45
- package/source/class/qx/theme/indigo/Font.js +20 -29
- package/source/class/qx/theme/manager/Appearance.js +58 -91
- package/source/class/qx/theme/manager/Color.js +20 -41
- package/source/class/qx/theme/manager/Decoration.js +72 -100
- package/source/class/qx/theme/manager/Font.js +51 -67
- package/source/class/qx/theme/manager/Icon.js +13 -27
- package/source/class/qx/theme/manager/Meta.js +27 -44
- package/source/class/qx/theme/modern/Appearance.js +1049 -1440
- package/source/class/qx/theme/modern/Color.js +155 -166
- package/source/class/qx/theme/modern/Decoration.js +471 -598
- package/source/class/qx/theme/modern/Font.js +59 -52
- package/source/class/qx/theme/simple/Appearance.js +936 -1207
- package/source/class/qx/theme/simple/Color.js +62 -62
- package/source/class/qx/theme/simple/Decoration.js +456 -678
- package/source/class/qx/theme/simple/Font.js +18 -25
- package/source/class/qx/theme/simple/Image.js +49 -52
- package/source/class/qx/theme/tangible/Appearance.js +1575 -1743
- package/source/class/qx/theme/tangible/ColorDark.js +5 -5
- package/source/class/qx/theme/tangible/ColorEngine.js +38 -35
- package/source/class/qx/theme/tangible/ColorLight.js +7 -7
- package/source/class/qx/theme/tangible/Decoration.js +1108 -1300
- package/source/class/qx/theme/tangible/Font.js +66 -70
- package/source/class/qx/theme/tangible/Image.js +44 -48
- package/source/class/qx/tool/cli/Application.js +5 -5
- package/source/class/qx/tool/cli/Cli.js +107 -54
- package/source/class/qx/tool/cli/ConfigDb.js +18 -15
- package/source/class/qx/tool/cli/LibraryApplication.js +1 -1
- package/source/class/qx/tool/cli/Watch.js +174 -102
- package/source/class/qx/tool/cli/api/AbstractApi.js +17 -18
- package/source/class/qx/tool/cli/api/CompilerApi.js +29 -12
- package/source/class/qx/tool/cli/api/LibraryApi.js +4 -6
- package/source/class/qx/tool/cli/api/Test.js +12 -9
- package/source/class/qx/tool/cli/commands/Add.js +12 -15
- package/source/class/qx/tool/cli/commands/Clean.js +10 -9
- package/source/class/qx/tool/cli/commands/Command.js +25 -13
- package/source/class/qx/tool/cli/commands/Compile.js +635 -269
- package/source/class/qx/tool/cli/commands/Config.js +75 -42
- package/source/class/qx/tool/cli/commands/Create.js +108 -59
- package/source/class/qx/tool/cli/commands/Deploy.js +138 -86
- package/source/class/qx/tool/cli/commands/Es6ify.js +118 -0
- package/source/class/qx/tool/cli/commands/Lint.js +101 -41
- package/source/class/qx/tool/cli/commands/Migrate.js +13 -7
- package/source/class/qx/tool/cli/commands/Package.js +67 -46
- package/source/class/qx/tool/cli/commands/Pkg.js +21 -18
- package/source/class/qx/tool/cli/commands/Run.js +57 -37
- package/source/class/qx/tool/cli/commands/Serve.js +62 -37
- package/source/class/qx/tool/cli/commands/Test.js +40 -18
- package/source/class/qx/tool/cli/commands/add/Class.js +66 -28
- package/source/class/qx/tool/cli/commands/add/Script.js +54 -27
- package/source/class/qx/tool/cli/commands/package/Install.js +265 -103
- package/source/class/qx/tool/cli/commands/package/List.js +199 -75
- package/source/class/qx/tool/cli/commands/package/Migrate.js +7 -3
- package/source/class/qx/tool/cli/commands/package/Publish.js +230 -115
- package/source/class/qx/tool/cli/commands/package/Remove.js +40 -17
- package/source/class/qx/tool/cli/commands/package/Update.js +115 -48
- package/source/class/qx/tool/cli/commands/package/Upgrade.js +41 -20
- package/source/class/qx/tool/compiler/Analyser.js +443 -239
- package/source/class/qx/tool/compiler/ClassFile.js +831 -401
- package/source/class/qx/tool/compiler/Console.js +136 -87
- package/source/class/qx/tool/compiler/Es6ify.js +404 -0
- package/source/class/qx/tool/compiler/Preprocess.js +28 -25
- package/source/class/qx/tool/compiler/app/Application.js +149 -72
- package/source/class/qx/tool/compiler/app/Cldr.js +506 -106
- package/source/class/qx/tool/compiler/app/Library.js +62 -27
- package/source/class/qx/tool/compiler/app/Part.js +10 -12
- package/source/class/qx/tool/compiler/app/Translation.js +189 -162
- package/source/class/qx/tool/compiler/app/WebFont.js +216 -162
- package/source/class/qx/tool/compiler/jsdoc/ChildControlParser.js +3 -3
- package/source/class/qx/tool/compiler/jsdoc/CommandParser.js +8 -9
- package/source/class/qx/tool/compiler/jsdoc/ParamParser.js +7 -6
- package/source/class/qx/tool/compiler/jsdoc/Parser.js +27 -18
- package/source/class/qx/tool/compiler/jsdoc/ReturnParser.js +3 -3
- package/source/class/qx/tool/compiler/jsdoc/ThrowsParser.js +4 -4
- package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +5 -6
- package/source/class/qx/tool/compiler/makers/AppMaker.js +53 -32
- package/source/class/qx/tool/compiler/makers/Maker.js +29 -21
- package/source/class/qx/tool/compiler/resources/AbstractMatcher.js +8 -8
- package/source/class/qx/tool/compiler/resources/Asset.js +123 -61
- package/source/class/qx/tool/compiler/resources/ImageLoader.js +18 -8
- package/source/class/qx/tool/compiler/resources/Manager.js +156 -93
- package/source/class/qx/tool/compiler/resources/MetaLoader.js +5 -3
- package/source/class/qx/tool/compiler/resources/ResourceConverter.js +8 -8
- package/source/class/qx/tool/compiler/resources/ResourceLoader.js +8 -9
- package/source/class/qx/tool/compiler/resources/ScssConverter.js +54 -18
- package/source/class/qx/tool/compiler/resources/ScssFile.js +157 -80
- package/source/class/qx/tool/compiler/resources/ScssIncludeConverter.js +3 -3
- package/source/class/qx/tool/compiler/targets/BuildTarget.js +23 -13
- package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +29 -9
- package/source/class/qx/tool/compiler/targets/SourceTarget.js +2 -2
- package/source/class/qx/tool/compiler/targets/Target.js +292 -187
- package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +163 -104
- package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +48 -23
- package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +75 -62
- package/source/class/qx/tool/compiler/targets/meta/BootJs.js +49 -29
- package/source/class/qx/tool/compiler/targets/meta/Javascript.js +6 -7
- package/source/class/qx/tool/compiler/targets/meta/Package.js +54 -51
- package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +41 -21
- package/source/class/qx/tool/compiler/targets/meta/Part.js +9 -10
- package/source/class/qx/tool/compiler/targets/meta/PolyfillJs.js +23 -10
- package/source/class/qx/tool/compiler/targets/meta/Uglify.js +35 -23
- package/source/class/qx/tool/config/Abstract.js +61 -25
- package/source/class/qx/tool/config/Compile.js +3 -2
- package/source/class/qx/tool/config/Lockfile.js +3 -2
- package/source/class/qx/tool/config/Manifest.js +3 -2
- package/source/class/qx/tool/config/Registry.js +4 -3
- package/source/class/qx/tool/config/Utils.js +97 -37
- package/source/class/qx/tool/migration/BaseMigration.js +67 -25
- package/source/class/qx/tool/migration/M6_0_0.js +96 -46
- package/source/class/qx/tool/migration/M7_0_0.js +12 -6
- package/source/class/qx/tool/migration/Runner.js +28 -14
- package/source/class/qx/tool/utils/IndexedArray.js +15 -18
- package/source/class/qx/tool/utils/Json.js +36 -15
- package/source/class/qx/tool/utils/LogManager.js +50 -26
- package/source/class/qx/tool/utils/Logger.js +11 -12
- package/source/class/qx/tool/utils/Promisify.js +45 -49
- package/source/class/qx/tool/utils/Utils.js +63 -48
- package/source/class/qx/tool/utils/Values.js +4 -7
- package/source/class/qx/tool/utils/Website.js +82 -29
- package/source/class/qx/tool/utils/files/FindFiles.js +37 -33
- package/source/class/qx/tool/utils/files/Utils.js +74 -54
- package/source/class/qx/tool/utils/json/Parser.js +163 -54
- package/source/class/qx/tool/utils/json/Stringify.js +87 -72
- package/source/class/qx/tool/utils/json/Tokenizer.js +64 -39
- package/source/class/qx/tool/utils/json/Writer.js +20 -21
- package/source/class/qx/type/Array.js +19 -41
- package/source/class/qx/type/BaseArray.js +136 -151
- package/source/class/qx/type/BaseError.js +17 -34
- package/source/class/qx/type/BaseString.js +104 -120
- package/source/class/qx/type/__init__.js +3 -3
- package/source/class/qx/ui/basic/Atom.js +75 -109
- package/source/class/qx/ui/basic/Image.js +283 -319
- package/source/class/qx/ui/basic/Label.js +161 -208
- package/source/class/qx/ui/command/Command.js +51 -86
- package/source/class/qx/ui/command/Group.js +43 -50
- package/source/class/qx/ui/command/GroupManager.js +50 -53
- package/source/class/qx/ui/container/Composite.js +15 -29
- package/source/class/qx/ui/container/Resizer.js +7 -11
- package/source/class/qx/ui/container/Scroll.js +10 -21
- package/source/class/qx/ui/container/SlideBar.js +78 -118
- package/source/class/qx/ui/container/Stack.js +27 -54
- package/source/class/qx/ui/control/ColorPopup.js +109 -130
- package/source/class/qx/ui/control/ColorSelector.js +334 -301
- package/source/class/qx/ui/control/DateChooser.js +143 -177
- package/source/class/qx/ui/core/Blocker.js +91 -127
- package/source/class/qx/ui/core/ColumnData.js +16 -34
- package/source/class/qx/ui/core/DragDropCursor.js +17 -30
- package/source/class/qx/ui/core/DragDropScrolling.js +8 -14
- package/source/class/qx/ui/core/EventHandler.js +108 -132
- package/source/class/qx/ui/core/FocusHandler.js +78 -127
- package/source/class/qx/ui/core/IMultiSelection.js +5 -9
- package/source/class/qx/ui/core/ISingleSelection.js +10 -16
- package/source/class/qx/ui/core/ISingleSelectionProvider.js +4 -6
- package/source/class/qx/ui/core/LayoutItem.js +190 -306
- package/source/class/qx/ui/core/MBlocker.js +22 -38
- package/source/class/qx/ui/core/MChildrenHandling.js +14 -29
- package/source/class/qx/ui/core/MContentPadding.js +50 -69
- package/source/class/qx/ui/core/MDragDropScrolling.js +82 -80
- package/source/class/qx/ui/core/MExecutable.js +27 -52
- package/source/class/qx/ui/core/MLayoutHandling.js +6 -14
- package/source/class/qx/ui/core/MMovable.js +64 -80
- package/source/class/qx/ui/core/MMultiSelectionHandling.js +68 -87
- package/source/class/qx/ui/core/MNativeOverflow.js +16 -26
- package/source/class/qx/ui/core/MPlacement.js +171 -170
- package/source/class/qx/ui/core/MRemoteChildrenHandling.js +14 -27
- package/source/class/qx/ui/core/MRemoteLayoutHandling.js +4 -7
- package/source/class/qx/ui/core/MResizable.js +142 -175
- package/source/class/qx/ui/core/MSingleSelectionHandling.js +40 -45
- package/source/class/qx/ui/core/SingleSelectionManager.js +41 -60
- package/source/class/qx/ui/core/Spacer.js +12 -22
- package/source/class/qx/ui/core/Widget.js +688 -973
- package/source/class/qx/ui/core/queue/Appearance.js +15 -24
- package/source/class/qx/ui/core/queue/Dispose.js +7 -16
- package/source/class/qx/ui/core/queue/Layout.js +44 -71
- package/source/class/qx/ui/core/queue/Manager.js +140 -133
- package/source/class/qx/ui/core/queue/Visibility.js +21 -39
- package/source/class/qx/ui/core/queue/Widget.js +15 -26
- package/source/class/qx/ui/core/scroll/AbstractScrollArea.js +124 -162
- package/source/class/qx/ui/core/scroll/IScrollBar.js +13 -24
- package/source/class/qx/ui/core/scroll/MRoll.js +14 -19
- package/source/class/qx/ui/core/scroll/MScrollBarFactory.js +3 -6
- package/source/class/qx/ui/core/scroll/MWheelHandling.js +10 -12
- package/source/class/qx/ui/core/scroll/NativeScrollBar.js +103 -124
- package/source/class/qx/ui/core/scroll/ScrollBar.js +89 -130
- package/source/class/qx/ui/core/scroll/ScrollPane.js +95 -134
- package/source/class/qx/ui/core/scroll/ScrollSlider.js +13 -19
- package/source/class/qx/ui/core/scroll/__init__.js +4 -4
- package/source/class/qx/ui/core/selection/Abstract.js +255 -456
- package/source/class/qx/ui/core/selection/ScrollArea.js +35 -73
- package/source/class/qx/ui/core/selection/Widget.js +57 -120
- package/source/class/qx/ui/decoration/Abstract.js +11 -20
- package/source/class/qx/ui/decoration/Decorator.js +56 -55
- package/source/class/qx/ui/decoration/IDecorator.js +5 -11
- package/source/class/qx/ui/decoration/MBackgroundColor.js +13 -20
- package/source/class/qx/ui/decoration/MBackgroundImage.js +82 -77
- package/source/class/qx/ui/decoration/MBorderImage.js +72 -94
- package/source/class/qx/ui/decoration/MBorderRadius.js +35 -38
- package/source/class/qx/ui/decoration/MBoxShadow.js +61 -55
- package/source/class/qx/ui/decoration/MDoubleBorder.js +157 -155
- package/source/class/qx/ui/decoration/MLinearBackgroundGradient.js +169 -89
- package/source/class/qx/ui/decoration/MSingleBorder.js +138 -124
- package/source/class/qx/ui/decoration/MTransition.js +46 -42
- package/source/class/qx/ui/decoration/__init__.js +2 -2
- package/source/class/qx/ui/embed/AbstractIframe.js +37 -55
- package/source/class/qx/ui/embed/Canvas.js +34 -66
- package/source/class/qx/ui/embed/Html.js +46 -70
- package/source/class/qx/ui/embed/Iframe.js +178 -158
- package/source/class/qx/ui/embed/ThemedIframe.js +91 -135
- package/source/class/qx/ui/form/AbstractField.js +262 -303
- package/source/class/qx/ui/form/AbstractSelectBox.js +98 -88
- package/source/class/qx/ui/form/Button.js +38 -73
- package/source/class/qx/ui/form/CheckBox.js +47 -45
- package/source/class/qx/ui/form/CheckedList.js +41 -25
- package/source/class/qx/ui/form/CheckedSelectBox.js +97 -62
- package/source/class/qx/ui/form/ComboBox.js +129 -143
- package/source/class/qx/ui/form/DateField.js +150 -176
- package/source/class/qx/ui/form/Form.js +50 -69
- package/source/class/qx/ui/form/HoverButton.js +37 -54
- package/source/class/qx/ui/form/IArrayForm.js +8 -16
- package/source/class/qx/ui/form/IBooleanForm.js +8 -16
- package/source/class/qx/ui/form/IColorForm.js +8 -16
- package/source/class/qx/ui/form/IDateForm.js +8 -16
- package/source/class/qx/ui/form/IExecutable.js +7 -14
- package/source/class/qx/ui/form/IField.js +7 -14
- package/source/class/qx/ui/form/IForm.js +17 -32
- package/source/class/qx/ui/form/IListItem.js +1 -4
- package/source/class/qx/ui/form/IModel.js +7 -15
- package/source/class/qx/ui/form/IModelForm.js +8 -16
- package/source/class/qx/ui/form/IModelSelection.js +4 -8
- package/source/class/qx/ui/form/INumberForm.js +8 -15
- package/source/class/qx/ui/form/IRadioItem.js +8 -17
- package/source/class/qx/ui/form/IRange.js +10 -20
- package/source/class/qx/ui/form/IStringForm.js +8 -16
- package/source/class/qx/ui/form/List.js +85 -122
- package/source/class/qx/ui/form/ListItem.js +21 -38
- package/source/class/qx/ui/form/MForm.js +35 -41
- package/source/class/qx/ui/form/MModelProperty.js +9 -14
- package/source/class/qx/ui/form/MModelSelection.js +30 -32
- package/source/class/qx/ui/form/MenuButton.js +68 -73
- package/source/class/qx/ui/form/PasswordField.js +4 -6
- package/source/class/qx/ui/form/RadioButton.js +43 -72
- package/source/class/qx/ui/form/RadioButtonGroup.js +70 -82
- package/source/class/qx/ui/form/RadioGroup.js +110 -126
- package/source/class/qx/ui/form/RepeatButton.js +57 -106
- package/source/class/qx/ui/form/Resetter.js +19 -29
- package/source/class/qx/ui/form/SelectBox.js +80 -101
- package/source/class/qx/ui/form/Slider.js +216 -268
- package/source/class/qx/ui/form/Spinner.js +173 -217
- package/source/class/qx/ui/form/SplitButton.js +76 -115
- package/source/class/qx/ui/form/Tag.js +7 -8
- package/source/class/qx/ui/form/TextArea.js +147 -153
- package/source/class/qx/ui/form/TextField.js +37 -46
- package/source/class/qx/ui/form/ToggleButton.js +62 -90
- package/source/class/qx/ui/form/VirtualComboBox.js +73 -113
- package/source/class/qx/ui/form/VirtualSelectBox.js +264 -274
- package/source/class/qx/ui/form/core/AbstractVirtualBox.js +117 -157
- package/source/class/qx/ui/form/core/VirtualDropDownList.js +101 -144
- package/source/class/qx/ui/form/renderer/AbstractRenderer.js +48 -55
- package/source/class/qx/ui/form/renderer/Double.js +25 -34
- package/source/class/qx/ui/form/renderer/IFormRenderer.js +4 -8
- package/source/class/qx/ui/form/renderer/Single.js +25 -35
- package/source/class/qx/ui/form/renderer/SinglePlaceholder.js +12 -11
- package/source/class/qx/ui/form/renderer/__init__.js +5 -5
- package/source/class/qx/ui/form/validation/AsyncValidator.js +13 -19
- package/source/class/qx/ui/form/validation/Manager.js +74 -108
- package/source/class/qx/ui/form/validation/__init__.js +6 -6
- package/source/class/qx/ui/groupbox/CheckGroupBox.js +30 -47
- package/source/class/qx/ui/groupbox/GroupBox.js +36 -75
- package/source/class/qx/ui/groupbox/RadioGroupBox.js +29 -59
- package/source/class/qx/ui/groupbox/__init__.js +3 -3
- package/source/class/qx/ui/indicator/ProgressBar.js +29 -46
- package/source/class/qx/ui/layout/Abstract.js +28 -53
- package/source/class/qx/ui/layout/Atom.js +95 -111
- package/source/class/qx/ui/layout/Basic.js +29 -30
- package/source/class/qx/ui/layout/Canvas.js +62 -99
- package/source/class/qx/ui/layout/Dock.js +266 -250
- package/source/class/qx/ui/layout/Flow.js +50 -76
- package/source/class/qx/ui/layout/Grid.js +268 -343
- package/source/class/qx/ui/layout/Grow.js +26 -32
- package/source/class/qx/ui/layout/HBox.js +137 -153
- package/source/class/qx/ui/layout/LineSizeIterator.js +19 -28
- package/source/class/qx/ui/layout/Util.js +91 -120
- package/source/class/qx/ui/layout/VBox.js +125 -147
- package/source/class/qx/ui/list/List.js +148 -262
- package/source/class/qx/ui/list/core/IListDelegate.js +13 -26
- package/source/class/qx/ui/list/core/MWidgetController.js +51 -78
- package/source/class/qx/ui/list/provider/IListProvider.js +15 -28
- package/source/class/qx/ui/list/provider/WidgetProvider.js +52 -84
- package/source/class/qx/ui/menu/AbstractButton.js +141 -122
- package/source/class/qx/ui/menu/Button.js +14 -25
- package/source/class/qx/ui/menu/ButtonLayout.js +49 -37
- package/source/class/qx/ui/menu/CheckBox.js +28 -45
- package/source/class/qx/ui/menu/Layout.js +45 -51
- package/source/class/qx/ui/menu/Manager.js +132 -208
- package/source/class/qx/ui/menu/Menu.js +227 -250
- package/source/class/qx/ui/menu/MenuSlideBar.js +13 -20
- package/source/class/qx/ui/menu/RadioButton.js +38 -51
- package/source/class/qx/ui/menu/Separator.js +9 -16
- package/source/class/qx/ui/menubar/Button.js +22 -67
- package/source/class/qx/ui/menubar/MenuBar.js +17 -9
- package/source/class/qx/ui/mobile/__init__.js +5 -5
- package/source/class/qx/ui/mobile/basic/Atom.js +79 -101
- package/source/class/qx/ui/mobile/basic/Image.js +80 -86
- package/source/class/qx/ui/mobile/basic/Label.js +38 -54
- package/source/class/qx/ui/mobile/container/Carousel.js +281 -188
- package/source/class/qx/ui/mobile/container/Collapsible.js +57 -77
- package/source/class/qx/ui/mobile/container/Composite.js +9 -13
- package/source/class/qx/ui/mobile/container/Drawer.js +167 -164
- package/source/class/qx/ui/mobile/container/INavigation.js +6 -10
- package/source/class/qx/ui/mobile/container/IScrollDelegate.js +4 -6
- package/source/class/qx/ui/mobile/container/MIScroll.js +108 -100
- package/source/class/qx/ui/mobile/container/MNativeScroll.js +118 -102
- package/source/class/qx/ui/mobile/container/MScrollHandling.js +8 -7
- package/source/class/qx/ui/mobile/container/Navigation.js +46 -65
- package/source/class/qx/ui/mobile/container/Scroll.js +140 -151
- package/source/class/qx/ui/mobile/control/Picker.js +125 -112
- package/source/class/qx/ui/mobile/core/Blocker.js +62 -71
- package/source/class/qx/ui/mobile/core/DomUpdatedHandler.js +24 -60
- package/source/class/qx/ui/mobile/core/EventHandler.js +158 -138
- package/source/class/qx/ui/mobile/core/MChildrenHandling.js +14 -30
- package/source/class/qx/ui/mobile/core/MLayoutHandling.js +6 -14
- package/source/class/qx/ui/mobile/core/MResize.js +16 -30
- package/source/class/qx/ui/mobile/core/Root.js +90 -80
- package/source/class/qx/ui/mobile/core/Widget.js +351 -479
- package/source/class/qx/ui/mobile/dialog/BusyIndicator.js +31 -46
- package/source/class/qx/ui/mobile/dialog/Manager.js +127 -89
- package/source/class/qx/ui/mobile/dialog/Menu.js +111 -122
- package/source/class/qx/ui/mobile/dialog/Popup.js +202 -194
- package/source/class/qx/ui/mobile/embed/Canvas.js +12 -25
- package/source/class/qx/ui/mobile/embed/Html.js +13 -27
- package/source/class/qx/ui/mobile/form/Button.js +12 -18
- package/source/class/qx/ui/mobile/form/CheckBox.js +20 -35
- package/source/class/qx/ui/mobile/form/Form.js +31 -51
- package/source/class/qx/ui/mobile/form/Group.js +18 -30
- package/source/class/qx/ui/mobile/form/Input.js +30 -35
- package/source/class/qx/ui/mobile/form/Label.js +76 -79
- package/source/class/qx/ui/mobile/form/MState.js +20 -27
- package/source/class/qx/ui/mobile/form/MText.js +27 -47
- package/source/class/qx/ui/mobile/form/MValue.js +66 -94
- package/source/class/qx/ui/mobile/form/NumberField.js +30 -47
- package/source/class/qx/ui/mobile/form/PasswordField.js +8 -14
- package/source/class/qx/ui/mobile/form/RadioButton.js +25 -46
- package/source/class/qx/ui/mobile/form/RadioGroup.js +2 -4
- package/source/class/qx/ui/mobile/form/Row.js +14 -29
- package/source/class/qx/ui/mobile/form/SelectBox.js +77 -104
- package/source/class/qx/ui/mobile/form/Slider.js +116 -144
- package/source/class/qx/ui/mobile/form/TextArea.js +26 -39
- package/source/class/qx/ui/mobile/form/TextField.js +18 -28
- package/source/class/qx/ui/mobile/form/Title.js +11 -19
- package/source/class/qx/ui/mobile/form/ToggleButton.js +35 -58
- package/source/class/qx/ui/mobile/form/__init__.js +1 -1
- package/source/class/qx/ui/mobile/form/renderer/AbstractRenderer.js +24 -31
- package/source/class/qx/ui/mobile/form/renderer/Single.js +59 -85
- package/source/class/qx/ui/mobile/form/renderer/SinglePlaceholder.js +8 -16
- package/source/class/qx/ui/mobile/layout/Abstract.js +48 -85
- package/source/class/qx/ui/mobile/layout/AbstractBox.js +93 -125
- package/source/class/qx/ui/mobile/layout/Card.js +133 -116
- package/source/class/qx/ui/mobile/layout/CardAnimation.js +95 -72
- package/source/class/qx/ui/mobile/layout/HBox.js +9 -12
- package/source/class/qx/ui/mobile/layout/VBox.js +9 -12
- package/source/class/qx/ui/mobile/list/IListDelegate.js +5 -9
- package/source/class/qx/ui/mobile/list/List.js +172 -183
- package/source/class/qx/ui/mobile/list/provider/Provider.js +58 -65
- package/source/class/qx/ui/mobile/list/renderer/Abstract.js +54 -82
- package/source/class/qx/ui/mobile/list/renderer/Default.js +39 -55
- package/source/class/qx/ui/mobile/list/renderer/group/Abstract.js +20 -33
- package/source/class/qx/ui/mobile/list/renderer/group/Default.js +29 -45
- package/source/class/qx/ui/mobile/navigationbar/BackButton.js +11 -15
- package/source/class/qx/ui/mobile/navigationbar/Button.js +11 -15
- package/source/class/qx/ui/mobile/navigationbar/NavigationBar.js +23 -29
- package/source/class/qx/ui/mobile/navigationbar/Title.js +12 -20
- package/source/class/qx/ui/mobile/page/Manager.js +195 -169
- package/source/class/qx/ui/mobile/page/NavigationPage.js +132 -196
- package/source/class/qx/ui/mobile/page/Page.js +109 -148
- package/source/class/qx/ui/mobile/tabbar/TabBar.js +41 -62
- package/source/class/qx/ui/mobile/tabbar/TabButton.js +19 -28
- package/source/class/qx/ui/mobile/toolbar/Button.js +7 -11
- package/source/class/qx/ui/mobile/toolbar/Separator.js +11 -15
- package/source/class/qx/ui/mobile/toolbar/ToolBar.js +30 -39
- package/source/class/qx/ui/popup/Manager.js +41 -53
- package/source/class/qx/ui/popup/Popup.js +22 -47
- package/source/class/qx/ui/popup/__init__.js +32 -32
- package/source/class/qx/ui/progressive/Progressive.js +96 -137
- package/source/class/qx/ui/progressive/State.js +12 -19
- package/source/class/qx/ui/progressive/headfoot/Abstract.js +10 -15
- package/source/class/qx/ui/progressive/headfoot/Null.js +4 -7
- package/source/class/qx/ui/progressive/headfoot/Progress.js +67 -69
- package/source/class/qx/ui/progressive/headfoot/TableHeading.js +42 -54
- package/source/class/qx/ui/progressive/model/Abstract.js +8 -15
- package/source/class/qx/ui/progressive/model/Default.js +17 -29
- package/source/class/qx/ui/progressive/renderer/Abstract.js +6 -11
- package/source/class/qx/ui/progressive/renderer/FunctionCaller.js +4 -7
- package/source/class/qx/ui/progressive/renderer/table/Row.js +215 -242
- package/source/class/qx/ui/progressive/renderer/table/Widths.js +32 -47
- package/source/class/qx/ui/progressive/renderer/table/cell/Abstract.js +17 -24
- package/source/class/qx/ui/progressive/renderer/table/cell/Boolean.js +68 -79
- package/source/class/qx/ui/progressive/renderer/table/cell/Conditional.js +146 -199
- package/source/class/qx/ui/progressive/renderer/table/cell/Default.js +14 -32
- package/source/class/qx/ui/progressive/renderer/table/cell/Html.js +2 -3
- package/source/class/qx/ui/progressive/renderer/table/cell/Icon.js +38 -53
- package/source/class/qx/ui/progressive/renderer/table/cell/Image.js +20 -42
- package/source/class/qx/ui/progressive/renderer/table/cell/String.js +6 -12
- package/source/class/qx/ui/progressive/structure/Abstract.js +14 -26
- package/source/class/qx/ui/progressive/structure/Default.js +20 -40
- package/source/class/qx/ui/root/Abstract.js +73 -90
- package/source/class/qx/ui/root/Application.js +57 -61
- package/source/class/qx/ui/root/Inline.js +78 -64
- package/source/class/qx/ui/root/Page.js +25 -46
- package/source/class/qx/ui/splitpane/Blocker.js +23 -30
- package/source/class/qx/ui/splitpane/HLayout.js +53 -49
- package/source/class/qx/ui/splitpane/Pane.js +115 -150
- package/source/class/qx/ui/splitpane/Slider.js +9 -15
- package/source/class/qx/ui/splitpane/Splitter.js +27 -46
- package/source/class/qx/ui/splitpane/VLayout.js +53 -49
- package/source/class/qx/ui/style/Stylesheet.js +12 -19
- package/source/class/qx/ui/table/ICellEditorFactory.js +4 -8
- package/source/class/qx/ui/table/ICellRenderer.js +3 -7
- package/source/class/qx/ui/table/IColumnMenuButton.js +6 -11
- package/source/class/qx/ui/table/IColumnMenuItem.js +5 -8
- package/source/class/qx/ui/table/IHeaderRenderer.js +4 -8
- package/source/class/qx/ui/table/IRowRenderer.js +6 -12
- package/source/class/qx/ui/table/ITableModel.js +23 -41
- package/source/class/qx/ui/table/MTableContextMenu.js +25 -28
- package/source/class/qx/ui/table/Table.js +573 -743
- package/source/class/qx/ui/table/celleditor/AbstractField.js +16 -26
- package/source/class/qx/ui/table/celleditor/CheckBox.js +15 -16
- package/source/class/qx/ui/table/celleditor/ComboBox.js +24 -34
- package/source/class/qx/ui/table/celleditor/Dynamic.js +25 -32
- package/source/class/qx/ui/table/celleditor/PasswordField.js +4 -8
- package/source/class/qx/ui/table/celleditor/SelectBox.js +29 -38
- package/source/class/qx/ui/table/celleditor/TextField.js +9 -14
- package/source/class/qx/ui/table/cellrenderer/Abstract.js +79 -72
- package/source/class/qx/ui/table/cellrenderer/AbstractImage.js +71 -86
- package/source/class/qx/ui/table/cellrenderer/Boolean.js +36 -50
- package/source/class/qx/ui/table/cellrenderer/Conditional.js +74 -63
- package/source/class/qx/ui/table/cellrenderer/Date.js +12 -22
- package/source/class/qx/ui/table/cellrenderer/Debug.js +9 -9
- package/source/class/qx/ui/table/cellrenderer/Default.js +30 -52
- package/source/class/qx/ui/table/cellrenderer/Dynamic.js +13 -24
- package/source/class/qx/ui/table/cellrenderer/Html.js +6 -8
- package/source/class/qx/ui/table/cellrenderer/Image.js +13 -26
- package/source/class/qx/ui/table/cellrenderer/Number.js +13 -24
- package/source/class/qx/ui/table/cellrenderer/Password.js +8 -11
- package/source/class/qx/ui/table/cellrenderer/Replace.js +27 -42
- package/source/class/qx/ui/table/cellrenderer/String.js +5 -7
- package/source/class/qx/ui/table/columnmenu/Button.js +19 -29
- package/source/class/qx/ui/table/columnmenu/MenuItem.js +11 -19
- package/source/class/qx/ui/table/columnmenu/__init__.js +4 -4
- package/source/class/qx/ui/table/columnmenu/grid/__init__.js +4 -4
- package/source/class/qx/ui/table/columnmenu/simple/__init__.js +4 -4
- package/source/class/qx/ui/table/columnmodel/Basic.js +193 -215
- package/source/class/qx/ui/table/columnmodel/Resize.js +65 -111
- package/source/class/qx/ui/table/columnmodel/resizebehavior/Abstract.js +17 -24
- package/source/class/qx/ui/table/columnmodel/resizebehavior/Default.js +66 -117
- package/source/class/qx/ui/table/headerrenderer/Default.js +25 -46
- package/source/class/qx/ui/table/headerrenderer/HeaderCell.js +39 -51
- package/source/class/qx/ui/table/headerrenderer/Icon.js +11 -27
- package/source/class/qx/ui/table/model/Abstract.js +52 -62
- package/source/class/qx/ui/table/model/Filtered.js +121 -153
- package/source/class/qx/ui/table/model/Remote.js +166 -271
- package/source/class/qx/ui/table/model/Simple.js +215 -250
- package/source/class/qx/ui/table/pane/CellEvent.js +25 -32
- package/source/class/qx/ui/table/pane/Clipper.js +8 -12
- package/source/class/qx/ui/table/pane/FocusIndicator.js +42 -48
- package/source/class/qx/ui/table/pane/Header.js +48 -86
- package/source/class/qx/ui/table/pane/Model.js +80 -97
- package/source/class/qx/ui/table/pane/Pane.js +129 -189
- package/source/class/qx/ui/table/pane/Scroller.js +542 -663
- package/source/class/qx/ui/table/rowrenderer/Default.js +76 -87
- package/source/class/qx/ui/table/selection/Manager.js +23 -57
- package/source/class/qx/ui/table/selection/Model.js +89 -179
- package/source/class/qx/ui/tabview/Page.js +69 -74
- package/source/class/qx/ui/tabview/TabButton.js +45 -72
- package/source/class/qx/ui/tabview/TabView.js +96 -140
- package/source/class/qx/ui/toolbar/Button.js +13 -43
- package/source/class/qx/ui/toolbar/CheckBox.js +12 -43
- package/source/class/qx/ui/toolbar/MenuButton.js +18 -34
- package/source/class/qx/ui/toolbar/Part.js +42 -64
- package/source/class/qx/ui/toolbar/PartContainer.js +19 -28
- package/source/class/qx/ui/toolbar/RadioButton.js +29 -15
- package/source/class/qx/ui/toolbar/Separator.js +15 -25
- package/source/class/qx/ui/toolbar/SplitButton.js +18 -55
- package/source/class/qx/ui/toolbar/ToolBar.js +185 -232
- package/source/class/qx/ui/tooltip/Manager.js +125 -123
- package/source/class/qx/ui/tooltip/ToolTip.js +49 -79
- package/source/class/qx/ui/tooltip/__init__.js +23 -23
- package/source/class/qx/ui/tree/Tree.js +95 -148
- package/source/class/qx/ui/tree/TreeFile.js +8 -15
- package/source/class/qx/ui/tree/TreeFolder.js +8 -15
- package/source/class/qx/ui/tree/VirtualTree.js +207 -333
- package/source/class/qx/ui/tree/VirtualTreeItem.js +30 -45
- package/source/class/qx/ui/tree/__init__.js +50 -50
- package/source/class/qx/ui/tree/core/AbstractItem.js +98 -152
- package/source/class/qx/ui/tree/core/AbstractTreeItem.js +83 -137
- package/source/class/qx/ui/tree/core/FolderOpenButton.js +15 -34
- package/source/class/qx/ui/tree/core/IVirtualTree.js +13 -33
- package/source/class/qx/ui/tree/core/IVirtualTreeDelegate.js +9 -16
- package/source/class/qx/ui/tree/core/MWidgetController.js +58 -69
- package/source/class/qx/ui/tree/core/OpenCloseController.js +29 -35
- package/source/class/qx/ui/tree/core/Util.js +12 -16
- package/source/class/qx/ui/tree/provider/IVirtualTreeProvider.js +10 -23
- package/source/class/qx/ui/tree/provider/WidgetProvider.js +39 -67
- package/source/class/qx/ui/tree/selection/SelectionManager.js +27 -41
- package/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js +2 -3
- package/source/class/qx/ui/treevirtual/MFamily.js +26 -63
- package/source/class/qx/ui/treevirtual/MNode.js +43 -103
- package/source/class/qx/ui/treevirtual/MTreePrimitive.js +41 -52
- package/source/class/qx/ui/treevirtual/SelectionManager.js +44 -58
- package/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js +172 -229
- package/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +256 -367
- package/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js +8 -18
- package/source/class/qx/ui/treevirtual/TreeVirtual.js +155 -250
- package/source/class/qx/ui/treevirtual/celleditor/NodeEditor.js +10 -16
- package/source/class/qx/ui/treevirtual/pane/Scroller.js +14 -11
- package/source/class/qx/ui/virtual/__init__.js +4 -4
- package/source/class/qx/ui/virtual/behavior/Prefetch.js +71 -86
- package/source/class/qx/ui/virtual/cell/Abstract.js +18 -27
- package/source/class/qx/ui/virtual/cell/AbstractImage.js +42 -51
- package/source/class/qx/ui/virtual/cell/AbstractWidget.js +25 -49
- package/source/class/qx/ui/virtual/cell/Boolean.js +31 -44
- package/source/class/qx/ui/virtual/cell/Cell.js +143 -183
- package/source/class/qx/ui/virtual/cell/CellStylesheet.js +31 -38
- package/source/class/qx/ui/virtual/cell/Date.js +15 -24
- package/source/class/qx/ui/virtual/cell/Html.js +9 -20
- package/source/class/qx/ui/virtual/cell/ICell.js +4 -6
- package/source/class/qx/ui/virtual/cell/IWidgetCell.js +7 -12
- package/source/class/qx/ui/virtual/cell/IWidgetCellDelegate.js +4 -6
- package/source/class/qx/ui/virtual/cell/Image.js +8 -14
- package/source/class/qx/ui/virtual/cell/Number.js +14 -23
- package/source/class/qx/ui/virtual/cell/String.js +11 -20
- package/source/class/qx/ui/virtual/cell/WidgetCell.js +13 -16
- package/source/class/qx/ui/virtual/cell/__init__.js +4 -4
- package/source/class/qx/ui/virtual/core/Axis.js +75 -103
- package/source/class/qx/ui/virtual/core/CellEvent.js +23 -31
- package/source/class/qx/ui/virtual/core/IHtmlCellProvider.js +4 -6
- package/source/class/qx/ui/virtual/core/ILayer.js +5 -15
- package/source/class/qx/ui/virtual/core/IWidgetCellProvider.js +5 -7
- package/source/class/qx/ui/virtual/core/Pane.js +199 -242
- package/source/class/qx/ui/virtual/core/Scroller.js +25 -43
- package/source/class/qx/ui/virtual/layer/Abstract.js +44 -83
- package/source/class/qx/ui/virtual/layer/AbstractBackground.js +47 -68
- package/source/class/qx/ui/virtual/layer/CellSpanManager.js +74 -96
- package/source/class/qx/ui/virtual/layer/Column.js +26 -36
- package/source/class/qx/ui/virtual/layer/GridLines.js +43 -70
- package/source/class/qx/ui/virtual/layer/HtmlCell.js +34 -32
- package/source/class/qx/ui/virtual/layer/HtmlCellSpan.js +54 -56
- package/source/class/qx/ui/virtual/layer/Row.js +28 -36
- package/source/class/qx/ui/virtual/layer/WidgetCell.js +87 -123
- package/source/class/qx/ui/virtual/layer/WidgetCellSpan.js +123 -124
- package/source/class/qx/ui/virtual/selection/Abstract.js +26 -54
- package/source/class/qx/ui/virtual/selection/CellLines.js +11 -21
- package/source/class/qx/ui/virtual/selection/CellRectangle.js +45 -73
- package/source/class/qx/ui/virtual/selection/Column.js +16 -35
- package/source/class/qx/ui/virtual/selection/ISelectionDelegate.js +5 -9
- package/source/class/qx/ui/virtual/selection/MModel.js +84 -122
- package/source/class/qx/ui/virtual/selection/Row.js +29 -61
- package/source/class/qx/ui/website/Accordion.js +39 -42
- package/source/class/qx/ui/website/Button.js +17 -25
- package/source/class/qx/ui/website/Calendar.js +243 -172
- package/source/class/qx/ui/website/Carousel.js +169 -155
- package/source/class/qx/ui/website/DatePicker.js +99 -85
- package/source/class/qx/ui/website/Rating.js +35 -53
- package/source/class/qx/ui/website/Slider.js +174 -153
- package/source/class/qx/ui/website/Table.js +482 -456
- package/source/class/qx/ui/website/Tabs.js +225 -180
- package/source/class/qx/ui/website/Widget.js +39 -52
- package/source/class/qx/ui/window/Desktop.js +14 -12
- package/source/class/qx/ui/window/IDesktop.js +8 -10
- package/source/class/qx/ui/window/IWindowManager.js +7 -9
- package/source/class/qx/ui/window/MDesktop.js +34 -62
- package/source/class/qx/ui/window/Manager.js +31 -57
- package/source/class/qx/ui/window/Window.js +256 -349
- package/source/class/qx/util/AliasManager.js +23 -42
- package/source/class/qx/util/Animation.js +248 -191
- package/source/class/qx/util/Base64.js +144 -89
- package/source/class/qx/util/ColorUtil.js +253 -287
- package/source/class/qx/util/DeferredCall.js +21 -30
- package/source/class/qx/util/DeferredCallManager.js +23 -44
- package/source/class/qx/util/Delegate.js +4 -10
- package/source/class/qx/util/DisposeUtil.js +76 -70
- package/source/class/qx/util/DynamicScriptLoader.js +83 -66
- package/source/class/qx/util/EditDistance.js +64 -58
- package/source/class/qx/util/ExtendedColor.js +157 -163
- package/source/class/qx/util/Function.js +8 -8
- package/source/class/qx/util/LibraryManager.js +11 -18
- package/source/class/qx/util/OOUtil.js +17 -36
- package/source/class/qx/util/ObjectPool.js +19 -45
- package/source/class/qx/util/Permutation.js +9 -16
- package/source/class/qx/util/PropertyUtil.js +58 -70
- package/source/class/qx/util/Request.js +27 -16
- package/source/class/qx/util/ResourceManager.js +103 -104
- package/source/class/qx/util/ResponseParser.js +14 -21
- package/source/class/qx/util/RingBuffer.js +46 -48
- package/source/class/qx/util/Serializer.js +103 -68
- package/source/class/qx/util/StringBuilder.js +11 -22
- package/source/class/qx/util/StringEscape.js +15 -29
- package/source/class/qx/util/StringSplit.js +18 -21
- package/source/class/qx/util/TimerManager.js +61 -70
- package/source/class/qx/util/Uri.js +42 -30
- package/source/class/qx/util/Uuid.js +50 -35
- package/source/class/qx/util/Validate.js +88 -73
- package/source/class/qx/util/ValueManager.js +17 -29
- package/source/class/qx/util/Wheel.js +22 -16
- package/source/class/qx/util/format/DateFormat.js +853 -763
- package/source/class/qx/util/format/IFormat.js +4 -8
- package/source/class/qx/util/format/NumberFormat.js +84 -91
- package/source/class/qx/util/fsm/FiniteStateMachine.js +323 -382
- package/source/class/qx/util/fsm/State.js +210 -249
- package/source/class/qx/util/fsm/Transition.js +138 -160
- package/source/class/qx/util/placement/AbstractAxis.js +12 -14
- package/source/class/qx/util/placement/BestFitAxis.js +5 -8
- package/source/class/qx/util/placement/DirectAxis.js +5 -7
- package/source/class/qx/util/placement/KeepAlignAxis.js +8 -14
- package/source/class/qx/util/placement/Placement.js +39 -56
- package/source/class/qx/util/placement/__init__.js +4 -4
- package/source/class/qx/xml/Document.js +21 -34
- package/source/class/qx/xml/Element.js +90 -73
- package/source/class/qx/xml/String.js +15 -21
- package/source/class/qxWeb.js +104 -69
- package/source/resource/qx/decoration/Indigo/font/JosefinSlab-SemiBold.ttf +0 -0
- package/source/resource/qx/decoration/Indigo/font/SIL Open Font License 1.1.txt +0 -0
- package/source/resource/qx/iconfont/MaterialIcons/fetch-fonts.sh +0 -0
- package/source/resource/qx/mobile/js/iscroll.js +1328 -982
- package/source/resource/qx/mobile/js/iscroll.min.js +1081 -1
- package/source/resource/qx/mobile/scss/common/_gradients.scss +3 -1
- package/source/resource/qx/mobile/scss/theme/indigo/_styles.scss +1 -1
- package/source/resource/qx/mobile/scss/ui/_carousel.scss +2 -2
- package/source/resource/qx/mobile/scss/ui/_checkbox.scss +3 -3
- package/source/resource/qx/mobile/scss/ui/_collapsible.scss +2 -2
- package/source/resource/qx/mobile/scss/ui/_picker.scss +4 -4
- package/source/resource/qx/mobile/scss/ui/_radiobutton.scss +4 -4
- package/source/resource/qx/mobile/scss/ui/_slider.scss +7 -7
- package/source/resource/qx/scss/_gradients.scss +3 -1
- package/source/resource/qx/scss/_mixins.scss +4 -2
- package/source/resource/qx/test/dynamicscriptloader/first.js +1 -1
- package/source/resource/qx/test/dynamicscriptloader/second.js +1 -1
- package/source/resource/qx/test/dynamicscriptloader/third.js +1 -1
- package/source/resource/qx/test/script.js +1 -1
- package/source/resource/qx/test/webworker.js +2 -2
- package/source/resource/qx/tool/bin/build-devtools +0 -0
- package/source/resource/qx/tool/bin/build-website +0 -0
- package/source/resource/qx/tool/bin/download-assets +0 -0
- package/source/resource/qx/tool/cli/templates/loader/loader-node.tmpl.js +3 -1
- package/source/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/_styles.scss +1 -1
- package/source/resource/qx/tool/cli/templates/template_vars.js +1 -1
- package/source/resource/qx/tool/loadsass.js +16 -21
- package/source/resource/qx/tool/schema/Manifest-1-0-0.json +1 -2
- package/source/resource/qx/tool/schema/Manifest-2-0-0.json +1 -2
- package/source/resource/qx/tool/schema/compile-1-0-0.json +16 -20
- package/source/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
- package/source/resource/qx/tool/website/build/assets/buttons.js +391 -1
- package/source/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
- package/source/resource/qx/tool/website/build/assets/jquery.js +5452 -3
- package/source/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
- package/source/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
- package/source/resource/qx/tool/website/build/scripts/serve.js +87 -66
- package/source/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
- package/source/resource/qx/tool/website/src/assets/buttons.js +391 -1
- package/source/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
- package/source/resource/qx/tool/website/src/assets/jquery.js +5452 -3
- package/source/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
- package/source/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
- package/source/resource/qx/tool/website/src/scripts/serve.js +87 -66
- package/source/resource/qx/website/scss/ui/_carousel.scss +2 -2
- package/source/translation/hr.po +297 -0
- package/lib/resource/qx/static/blank.gif +0 -0
- package/lib/resource/qx/tool/website/.gitignore +0 -2
- package/source/class/qx/io/remote/Exchange.js +0 -1063
- package/source/class/qx/io/remote/Request.js +0 -1021
- package/source/class/qx/io/remote/RequestQueue.js +0 -521
- package/source/class/qx/io/remote/Response.js +0 -137
- package/source/class/qx/io/remote/Rpc.js +0 -1075
- package/source/class/qx/io/remote/RpcError.js +0 -198
- package/source/class/qx/io/remote/__init__.js +0 -88
- package/source/class/qx/io/remote/transport/Abstract.js +0 -513
- package/source/class/qx/io/remote/transport/Iframe.js +0 -652
- package/source/class/qx/io/remote/transport/Script.js +0 -475
- package/source/class/qx/io/remote/transport/XmlHttp.js +0 -1019
- package/source/class/qx/io/remote/transport/__init__.js +0 -3
- package/source/class/qx/io/request/auth/.gitignore +0 -0
- package/source/class/qx/test/bom/client/.gitignore +0 -0
- package/source/class/qx/test/io/remote/AbstractRequest.js +0 -150
- package/source/class/qx/test/io/remote/RequestIframe.js +0 -105
- package/source/class/qx/test/io/remote/RequestXhr.js +0 -151
- package/source/class/qx/test/io/remote/Rpc.js +0 -205
- package/source/class/qx/test/io/remote/__init__.js +0 -4
- package/source/class/qx/test/io/remote/transport/Iframe.js +0 -67
- package/source/class/qx/test/io/remote/transport/XmlHttp.js +0 -133
- package/source/class/qx/test/io/remote/transport/__init__.js +0 -4
- package/source/class/qx/test/ui/control/.gitignore +0 -0
- package/source/resource/qx/decoration/Modern/treevirtual/.gitignore +0 -0
- package/source/resource/qx/mobile/css/.gitignore +0 -3
- package/source/resource/qx/tool/website/.gitignore +0 -2
- package/source/resource/qx/website/.gitignore +0 -1
- package/source/resource/qx/website/scss/.gitignore +0 -1
|
@@ -31,12 +31,9 @@
|
|
|
31
31
|
* @childControl scrollbar-y {qx.ui.core.scroll.ScrollBar?qx.ui.core.scroll.NativeScrollBar}
|
|
32
32
|
* vertical scrollbar widget (depends on the "qx.nativeScrollBars" setting which implementation is used)
|
|
33
33
|
*/
|
|
34
|
-
qx.Class.define("qx.ui.table.pane.Scroller",
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
include : [qx.ui.core.scroll.MScrollBarFactory],
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
qx.Class.define("qx.ui.table.pane.Scroller", {
|
|
35
|
+
extend: qx.ui.core.Widget,
|
|
36
|
+
include: [qx.ui.core.scroll.MScrollBarFactory],
|
|
40
37
|
|
|
41
38
|
/*
|
|
42
39
|
*****************************************************************************
|
|
@@ -47,9 +44,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
47
44
|
/**
|
|
48
45
|
* @param table {qx.ui.table.Table} the table the scroller belongs to.
|
|
49
46
|
*/
|
|
50
|
-
construct
|
|
51
|
-
|
|
52
|
-
this.base(arguments);
|
|
47
|
+
construct(table) {
|
|
48
|
+
super();
|
|
53
49
|
|
|
54
50
|
this.__table = table;
|
|
55
51
|
|
|
@@ -67,17 +63,33 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
67
63
|
this.__top = new qx.ui.container.Composite(new qx.ui.layout.HBox()).set({
|
|
68
64
|
minWidth: 0
|
|
69
65
|
});
|
|
70
|
-
|
|
66
|
+
|
|
67
|
+
this._add(this.__top, { row: 0, column: 0, colSpan: 2 });
|
|
71
68
|
|
|
72
69
|
// embed header into a scrollable container
|
|
73
70
|
this._headerClipper = this._createHeaderClipper();
|
|
74
71
|
this._headerClipper.add(this.__header);
|
|
75
|
-
this._headerClipper.addListener(
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
this._headerClipper.addListener(
|
|
73
|
+
"losecapture",
|
|
74
|
+
this._onChangeCaptureHeader,
|
|
75
|
+
this
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
this._headerClipper.addListener(
|
|
79
|
+
"pointermove",
|
|
80
|
+
this._onPointermoveHeader,
|
|
81
|
+
this
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
this._headerClipper.addListener(
|
|
85
|
+
"pointerdown",
|
|
86
|
+
this._onPointerdownHeader,
|
|
87
|
+
this
|
|
88
|
+
);
|
|
89
|
+
|
|
78
90
|
this._headerClipper.addListener("pointerup", this._onPointerupHeader, this);
|
|
79
91
|
this._headerClipper.addListener("tap", this._onTapHeader, this);
|
|
80
|
-
this.__top.add(this._headerClipper, {flex: 1});
|
|
92
|
+
this.__top.add(this._headerClipper, { flex: 1 });
|
|
81
93
|
|
|
82
94
|
// embed pane into a scrollable container
|
|
83
95
|
this._paneClipper = this._createPaneClipper();
|
|
@@ -99,10 +111,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
99
111
|
if (qx.core.Environment.get("os.scrollBarOverlayed")) {
|
|
100
112
|
this.__clipperContainer = new qx.ui.container.Composite();
|
|
101
113
|
this.__clipperContainer.setLayout(new qx.ui.layout.Canvas());
|
|
102
|
-
this.__clipperContainer.add(this._paneClipper, {edge: 0});
|
|
103
|
-
this._add(this.__clipperContainer, {row: 1, column: 0});
|
|
114
|
+
this.__clipperContainer.add(this._paneClipper, { edge: 0 });
|
|
115
|
+
this._add(this.__clipperContainer, { row: 1, column: 0 });
|
|
104
116
|
} else {
|
|
105
|
-
this._add(this._paneClipper, {row: 1, column: 0});
|
|
117
|
+
this._add(this._paneClipper, { row: 1, column: 0 });
|
|
106
118
|
}
|
|
107
119
|
|
|
108
120
|
// init scroll bars
|
|
@@ -124,34 +136,26 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
124
136
|
this.__timer = new qx.event.Timer();
|
|
125
137
|
this.__timer.addListener("interval", this._oninterval, this);
|
|
126
138
|
this.initScrollTimeout();
|
|
127
|
-
|
|
128
139
|
},
|
|
129
140
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
141
|
/*
|
|
134
142
|
*****************************************************************************
|
|
135
143
|
STATICS
|
|
136
144
|
*****************************************************************************
|
|
137
145
|
*/
|
|
138
146
|
|
|
139
|
-
statics
|
|
140
|
-
{
|
|
141
|
-
|
|
147
|
+
statics: {
|
|
142
148
|
/** @type {int} The minimum width a column could get in pixels. */
|
|
143
|
-
MIN_COLUMN_WIDTH
|
|
149
|
+
MIN_COLUMN_WIDTH: 10,
|
|
144
150
|
|
|
145
151
|
/** @type {int} The radius of the resize region in pixels. */
|
|
146
|
-
RESIZE_REGION_RADIUS
|
|
147
|
-
|
|
152
|
+
RESIZE_REGION_RADIUS: 5,
|
|
148
153
|
|
|
149
154
|
/**
|
|
150
155
|
* (int) The number of pixels the pointer may move between pointer down and pointer up
|
|
151
156
|
* in order to count as a tap.
|
|
152
157
|
*/
|
|
153
|
-
TAP_TOLERANCE
|
|
154
|
-
|
|
158
|
+
TAP_TOLERANCE: 5,
|
|
155
159
|
|
|
156
160
|
/**
|
|
157
161
|
* (int) The mask for the horizontal scroll bar.
|
|
@@ -159,8 +163,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
159
163
|
*
|
|
160
164
|
* @see #getNeededScrollBars
|
|
161
165
|
*/
|
|
162
|
-
HORIZONTAL_SCROLLBAR
|
|
163
|
-
|
|
166
|
+
HORIZONTAL_SCROLLBAR: 1,
|
|
164
167
|
|
|
165
168
|
/**
|
|
166
169
|
* (int) The mask for the vertical scroll bar.
|
|
@@ -168,106 +171,88 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
168
171
|
*
|
|
169
172
|
* @see #getNeededScrollBars
|
|
170
173
|
*/
|
|
171
|
-
VERTICAL_SCROLLBAR
|
|
174
|
+
VERTICAL_SCROLLBAR: 2
|
|
172
175
|
},
|
|
173
176
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
177
|
/*
|
|
178
178
|
*****************************************************************************
|
|
179
179
|
EVENTS
|
|
180
180
|
*****************************************************************************
|
|
181
181
|
*/
|
|
182
182
|
|
|
183
|
-
events
|
|
184
|
-
{
|
|
183
|
+
events: {
|
|
185
184
|
/** Dispatched if the pane is scrolled horizontally */
|
|
186
|
-
|
|
185
|
+
changeScrollY: "qx.event.type.Data",
|
|
187
186
|
|
|
188
187
|
/** Dispatched if the pane is scrolled vertically */
|
|
189
|
-
|
|
188
|
+
changeScrollX: "qx.event.type.Data",
|
|
190
189
|
|
|
191
190
|
/**See {@link qx.ui.table.Table#cellTap}.*/
|
|
192
|
-
|
|
191
|
+
cellTap: "qx.ui.table.pane.CellEvent",
|
|
193
192
|
|
|
194
193
|
/*** See {@link qx.ui.table.Table#cellDbltap}.*/
|
|
195
|
-
|
|
194
|
+
cellDbltap: "qx.ui.table.pane.CellEvent",
|
|
196
195
|
|
|
197
196
|
/**See {@link qx.ui.table.Table#cellContextmenu}.*/
|
|
198
|
-
|
|
197
|
+
cellContextmenu: "qx.ui.table.pane.CellEvent",
|
|
199
198
|
|
|
200
199
|
/** Dispatched when a sortable header was tapped */
|
|
201
|
-
|
|
200
|
+
beforeSort: "qx.event.type.Data"
|
|
202
201
|
},
|
|
203
202
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
203
|
/*
|
|
209
204
|
*****************************************************************************
|
|
210
205
|
PROPERTIES
|
|
211
206
|
*****************************************************************************
|
|
212
207
|
*/
|
|
213
208
|
|
|
214
|
-
properties
|
|
215
|
-
{
|
|
216
|
-
|
|
209
|
+
properties: {
|
|
217
210
|
/**
|
|
218
211
|
* Whether to show the horizontal scroll bar. This is a tri-state
|
|
219
212
|
* value. `true` means show the scroll bar; `false` means exclude it; null
|
|
220
213
|
* means hide it so it retains its space but doesn't show a scroll bar.
|
|
221
214
|
*/
|
|
222
|
-
horizontalScrollBarVisible
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
nullable : true
|
|
215
|
+
horizontalScrollBarVisible: {
|
|
216
|
+
check: "Boolean",
|
|
217
|
+
init: false,
|
|
218
|
+
apply: "_applyHorizontalScrollBarVisible",
|
|
219
|
+
event: "changeHorizontalScrollBarVisible",
|
|
220
|
+
nullable: true
|
|
229
221
|
},
|
|
230
222
|
|
|
231
223
|
/** Whether to show the vertical scroll bar */
|
|
232
|
-
verticalScrollBarVisible
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
event : "changeVerticalScrollBarVisible"
|
|
224
|
+
verticalScrollBarVisible: {
|
|
225
|
+
check: "Boolean",
|
|
226
|
+
init: false,
|
|
227
|
+
apply: "_applyVerticalScrollBarVisible",
|
|
228
|
+
event: "changeVerticalScrollBarVisible"
|
|
238
229
|
},
|
|
239
230
|
|
|
240
231
|
/** The table pane model. */
|
|
241
|
-
tablePaneModel
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
event : "changeTablePaneModel"
|
|
232
|
+
tablePaneModel: {
|
|
233
|
+
check: "qx.ui.table.pane.Model",
|
|
234
|
+
apply: "_applyTablePaneModel",
|
|
235
|
+
event: "changeTablePaneModel"
|
|
246
236
|
},
|
|
247
237
|
|
|
248
|
-
|
|
249
238
|
/**
|
|
250
239
|
* Whether column resize should be live. If false, during resize only a line is
|
|
251
240
|
* shown and the real resize happens when the user releases the pointer button.
|
|
252
241
|
*/
|
|
253
|
-
liveResize
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
init : false
|
|
242
|
+
liveResize: {
|
|
243
|
+
check: "Boolean",
|
|
244
|
+
init: false
|
|
257
245
|
},
|
|
258
246
|
|
|
259
|
-
|
|
260
247
|
/**
|
|
261
248
|
* Whether the focus should moved when the pointer is moved over a cell. If false
|
|
262
249
|
* the focus is only moved on pointer taps.
|
|
263
250
|
*/
|
|
264
|
-
focusCellOnPointerMove
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
init : false
|
|
251
|
+
focusCellOnPointerMove: {
|
|
252
|
+
check: "Boolean",
|
|
253
|
+
init: false
|
|
268
254
|
},
|
|
269
255
|
|
|
270
|
-
|
|
271
256
|
/**
|
|
272
257
|
* Whether to handle selections via the selection manager before setting the
|
|
273
258
|
* focus. The traditional behavior is to handle selections after setting the
|
|
@@ -275,24 +260,20 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
275
260
|
* some subclasses may want to modify the data to be displayed based on the
|
|
276
261
|
* selection.
|
|
277
262
|
*/
|
|
278
|
-
selectBeforeFocus
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
init : false
|
|
263
|
+
selectBeforeFocus: {
|
|
264
|
+
check: "Boolean",
|
|
265
|
+
init: false
|
|
282
266
|
},
|
|
283
267
|
|
|
284
|
-
|
|
285
268
|
/**
|
|
286
269
|
* Whether the cell focus indicator should be shown
|
|
287
270
|
*/
|
|
288
|
-
showCellFocusIndicator
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
apply : "_applyShowCellFocusIndicator"
|
|
271
|
+
showCellFocusIndicator: {
|
|
272
|
+
check: "Boolean",
|
|
273
|
+
init: true,
|
|
274
|
+
apply: "_applyShowCellFocusIndicator"
|
|
293
275
|
},
|
|
294
276
|
|
|
295
|
-
|
|
296
277
|
/**
|
|
297
278
|
* By default, the "cellContextmenu" event is fired only when a data cell
|
|
298
279
|
* is right-clicked. It is not fired when a right-click occurs in the
|
|
@@ -302,13 +283,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
302
283
|
* in the event data will be null, so event handlers can check (row ===
|
|
303
284
|
* null) to handle this case.
|
|
304
285
|
*/
|
|
305
|
-
contextMenuFromDataCellsOnly
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
init : true
|
|
286
|
+
contextMenuFromDataCellsOnly: {
|
|
287
|
+
check: "Boolean",
|
|
288
|
+
init: true
|
|
309
289
|
},
|
|
310
290
|
|
|
311
|
-
|
|
312
291
|
/**
|
|
313
292
|
* Whether to reset the selection when a header cell is tapped. Since
|
|
314
293
|
* most data models do not have provisions to retain a selection after
|
|
@@ -316,39 +295,33 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
316
295
|
* models, however, do have the capability to retain the selection, so
|
|
317
296
|
* when using those, this property should be set to false.
|
|
318
297
|
*/
|
|
319
|
-
resetSelectionOnHeaderTap
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
init : true
|
|
298
|
+
resetSelectionOnHeaderTap: {
|
|
299
|
+
check: "Boolean",
|
|
300
|
+
init: true
|
|
323
301
|
},
|
|
324
302
|
|
|
325
303
|
/**
|
|
326
304
|
* Whether to reset the selection when the unpopulated table area is tapped.
|
|
327
305
|
* The default is false which keeps the behaviour as before
|
|
328
306
|
*/
|
|
329
|
-
resetSelectionOnTapBelowRows
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
init : false
|
|
307
|
+
resetSelectionOnTapBelowRows: {
|
|
308
|
+
check: "Boolean",
|
|
309
|
+
init: false
|
|
333
310
|
},
|
|
334
311
|
|
|
335
|
-
|
|
336
312
|
/**
|
|
337
313
|
* Interval time (in milliseconds) for the table update timer.
|
|
338
314
|
* Setting this to 0 clears the timer.
|
|
339
315
|
*/
|
|
340
|
-
scrollTimeout
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
apply : "_applyScrollTimeout"
|
|
316
|
+
scrollTimeout: {
|
|
317
|
+
check: "Integer",
|
|
318
|
+
init: 100,
|
|
319
|
+
apply: "_applyScrollTimeout"
|
|
345
320
|
},
|
|
346
321
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
refine : true,
|
|
351
|
-
init : "table-scroller"
|
|
322
|
+
appearance: {
|
|
323
|
+
refine: true,
|
|
324
|
+
init: "table-scroller"
|
|
352
325
|
},
|
|
353
326
|
|
|
354
327
|
/**
|
|
@@ -361,61 +334,56 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
361
334
|
}
|
|
362
335
|
},
|
|
363
336
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
337
|
/*
|
|
368
338
|
*****************************************************************************
|
|
369
339
|
MEMBERS
|
|
370
340
|
*****************************************************************************
|
|
371
341
|
*/
|
|
372
342
|
|
|
373
|
-
members
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
__table : null,
|
|
377
|
-
|
|
378
|
-
__updateInterval : null,
|
|
379
|
-
__updateContentPlanned : null,
|
|
380
|
-
__onintervalWrapper : null,
|
|
343
|
+
members: {
|
|
344
|
+
__lastRowCount: null,
|
|
345
|
+
__table: null,
|
|
381
346
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
_lastMoveTargetScroller : null,
|
|
386
|
-
__lastMovePointerPageX : null,
|
|
347
|
+
__updateInterval: null,
|
|
348
|
+
__updateContentPlanned: null,
|
|
349
|
+
__onintervalWrapper: null,
|
|
387
350
|
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
351
|
+
_moveColumn: null,
|
|
352
|
+
__lastMoveColPos: null,
|
|
353
|
+
_lastMoveTargetX: null,
|
|
354
|
+
_lastMoveTargetScroller: null,
|
|
355
|
+
__lastMovePointerPageX: null,
|
|
391
356
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
__lastPointerPageX : null,
|
|
396
|
-
__lastPointerPageY : null,
|
|
357
|
+
__resizeColumn: null,
|
|
358
|
+
__lastResizePointerPageX: null,
|
|
359
|
+
__lastResizeWidth: null,
|
|
397
360
|
|
|
398
|
-
|
|
399
|
-
|
|
361
|
+
__lastPointerDownCell: null,
|
|
362
|
+
__firedTapEvent: false,
|
|
363
|
+
__ignoreTap: null,
|
|
364
|
+
__lastPointerPageX: null,
|
|
365
|
+
__lastPointerPageY: null,
|
|
400
366
|
|
|
401
|
-
|
|
402
|
-
|
|
367
|
+
__focusedCol: null,
|
|
368
|
+
__focusedRow: null,
|
|
403
369
|
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
__verScrollBar : null,
|
|
407
|
-
__header : null,
|
|
408
|
-
_headerClipper : null,
|
|
409
|
-
__tablePane : null,
|
|
410
|
-
_paneClipper : null,
|
|
411
|
-
__clipperContainer : null,
|
|
412
|
-
__focusIndicator : null,
|
|
413
|
-
__top : null,
|
|
370
|
+
_cellEditor: null,
|
|
371
|
+
__cellEditorFactory: null,
|
|
414
372
|
|
|
415
|
-
|
|
373
|
+
__topRightWidget: null,
|
|
374
|
+
__horScrollBar: null,
|
|
375
|
+
__verScrollBar: null,
|
|
376
|
+
__header: null,
|
|
377
|
+
_headerClipper: null,
|
|
378
|
+
__tablePane: null,
|
|
379
|
+
_paneClipper: null,
|
|
380
|
+
__clipperContainer: null,
|
|
381
|
+
__focusIndicator: null,
|
|
382
|
+
__top: null,
|
|
416
383
|
|
|
417
|
-
|
|
384
|
+
__timer: null,
|
|
418
385
|
|
|
386
|
+
__focusIndicatorPointerDownListener: null,
|
|
419
387
|
|
|
420
388
|
/**
|
|
421
389
|
* The right inset of the pane. The right inset is the maximum of the
|
|
@@ -423,59 +391,62 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
423
391
|
*
|
|
424
392
|
* @return {Integer} The right inset of the pane
|
|
425
393
|
*/
|
|
426
|
-
getPaneInsetRight
|
|
427
|
-
{
|
|
394
|
+
getPaneInsetRight() {
|
|
428
395
|
var topRight = this.getTopRightWidget();
|
|
429
396
|
var topRightWidth =
|
|
430
|
-
topRight && topRight.isVisible() && topRight.getBounds()
|
|
431
|
-
topRight.getBounds().width +
|
|
432
|
-
|
|
397
|
+
topRight && topRight.isVisible() && topRight.getBounds()
|
|
398
|
+
? topRight.getBounds().width +
|
|
399
|
+
topRight.getMarginLeft() +
|
|
400
|
+
topRight.getMarginRight()
|
|
401
|
+
: 0;
|
|
433
402
|
|
|
434
403
|
var scrollBar = this.__verScrollBar;
|
|
435
|
-
var scrollBarWidth = this.getVerticalScrollBarVisible()
|
|
436
|
-
this.getVerticalScrollBarWidth() +
|
|
437
|
-
|
|
404
|
+
var scrollBarWidth = this.getVerticalScrollBarVisible()
|
|
405
|
+
? this.getVerticalScrollBarWidth() +
|
|
406
|
+
scrollBar.getMarginLeft() +
|
|
407
|
+
scrollBar.getMarginRight()
|
|
408
|
+
: 0;
|
|
438
409
|
|
|
439
410
|
return Math.max(topRightWidth, scrollBarWidth);
|
|
440
411
|
},
|
|
441
412
|
|
|
442
|
-
|
|
443
413
|
/**
|
|
444
414
|
* Set the pane's width
|
|
445
415
|
*
|
|
446
416
|
* @param width {Integer} The pane's width
|
|
447
417
|
*/
|
|
448
|
-
setPaneWidth
|
|
449
|
-
{
|
|
418
|
+
setPaneWidth(width) {
|
|
450
419
|
if (this.isVerticalScrollBarVisible()) {
|
|
451
420
|
width += this.getPaneInsetRight();
|
|
452
421
|
}
|
|
453
422
|
this.setWidth(width);
|
|
454
423
|
},
|
|
455
424
|
|
|
456
|
-
|
|
457
425
|
// overridden
|
|
458
|
-
_createChildControlImpl
|
|
459
|
-
{
|
|
426
|
+
_createChildControlImpl(id, hash) {
|
|
460
427
|
var control;
|
|
461
428
|
|
|
462
|
-
switch(id)
|
|
463
|
-
{
|
|
429
|
+
switch (id) {
|
|
464
430
|
case "header":
|
|
465
|
-
control =
|
|
431
|
+
control = this.getTable().getNewTablePaneHeader()(this);
|
|
466
432
|
break;
|
|
467
433
|
|
|
468
434
|
case "pane":
|
|
469
|
-
control =
|
|
435
|
+
control = this.getTable().getNewTablePane()(this);
|
|
470
436
|
break;
|
|
471
437
|
|
|
472
438
|
case "focus-indicator":
|
|
473
439
|
control = new qx.ui.table.pane.FocusIndicator(this);
|
|
474
440
|
control.setUserBounds(0, 0, 0, 0);
|
|
475
441
|
control.setZIndex(1000);
|
|
476
|
-
control.addListener(
|
|
442
|
+
control.addListener(
|
|
443
|
+
"pointerup",
|
|
444
|
+
this._onPointerupFocusIndicator,
|
|
445
|
+
this
|
|
446
|
+
);
|
|
447
|
+
|
|
477
448
|
this._paneClipper.add(control);
|
|
478
|
-
control.show();
|
|
449
|
+
control.show(); // must be active for editor to operate
|
|
479
450
|
control.setDecorator(null); // it can be initially invisible, though.
|
|
480
451
|
break;
|
|
481
452
|
|
|
@@ -490,13 +461,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
490
461
|
control = this._createScrollBar("horizontal").set({
|
|
491
462
|
alignY: "bottom"
|
|
492
463
|
});
|
|
464
|
+
|
|
493
465
|
control.addListener("scroll", this._onScrollX, this);
|
|
494
466
|
|
|
495
467
|
if (this.__clipperContainer != null) {
|
|
496
|
-
control.setMinHeight(
|
|
497
|
-
|
|
468
|
+
control.setMinHeight(
|
|
469
|
+
qx.ui.core.scroll.AbstractScrollArea.DEFAULT_SCROLLBAR_WIDTH
|
|
470
|
+
);
|
|
471
|
+
|
|
472
|
+
this.__clipperContainer.add(control, {
|
|
473
|
+
bottom: 0,
|
|
474
|
+
right: 0,
|
|
475
|
+
left: 0
|
|
476
|
+
});
|
|
498
477
|
} else {
|
|
499
|
-
this._add(control, {row: 2, column: 0});
|
|
478
|
+
this._add(control, { row: 2, column: 0 });
|
|
500
479
|
}
|
|
501
480
|
break;
|
|
502
481
|
|
|
@@ -505,39 +484,36 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
505
484
|
control.addListener("scroll", this._onScrollY, this);
|
|
506
485
|
|
|
507
486
|
if (this.__clipperContainer != null) {
|
|
508
|
-
this.__clipperContainer.add(control, {
|
|
487
|
+
this.__clipperContainer.add(control, {
|
|
488
|
+
right: 0,
|
|
489
|
+
bottom: 0,
|
|
490
|
+
top: 0
|
|
491
|
+
});
|
|
509
492
|
} else {
|
|
510
|
-
this._add(control, {row: 1, column: 1});
|
|
493
|
+
this._add(control, { row: 1, column: 1 });
|
|
511
494
|
}
|
|
512
495
|
break;
|
|
513
496
|
}
|
|
514
497
|
|
|
515
|
-
return control ||
|
|
498
|
+
return control || super._createChildControlImpl(id);
|
|
516
499
|
},
|
|
517
500
|
|
|
518
|
-
|
|
519
501
|
// property modifier
|
|
520
|
-
_applyHorizontalScrollBarVisible
|
|
521
|
-
if (value === null)
|
|
522
|
-
{
|
|
502
|
+
_applyHorizontalScrollBarVisible(value, old) {
|
|
503
|
+
if (value === null) {
|
|
523
504
|
this.__horScrollBar.setVisibility("hidden");
|
|
524
|
-
}
|
|
525
|
-
else
|
|
526
|
-
{
|
|
505
|
+
} else {
|
|
527
506
|
this.__horScrollBar.setVisibility(value ? "visible" : "excluded");
|
|
528
507
|
}
|
|
529
508
|
},
|
|
530
509
|
|
|
531
|
-
|
|
532
510
|
// property modifier
|
|
533
|
-
_applyVerticalScrollBarVisible
|
|
511
|
+
_applyVerticalScrollBarVisible(value, old) {
|
|
534
512
|
this.__verScrollBar.setVisibility(value ? "visible" : "excluded");
|
|
535
513
|
},
|
|
536
514
|
|
|
537
|
-
|
|
538
515
|
// property modifier
|
|
539
|
-
_applyTablePaneModel
|
|
540
|
-
{
|
|
516
|
+
_applyTablePaneModel(value, old) {
|
|
541
517
|
if (old != null) {
|
|
542
518
|
old.removeListener("modelChanged", this._onPaneModelChanged, this);
|
|
543
519
|
}
|
|
@@ -545,32 +521,27 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
545
521
|
value.addListener("modelChanged", this._onPaneModelChanged, this);
|
|
546
522
|
},
|
|
547
523
|
|
|
548
|
-
|
|
549
524
|
// property modifier
|
|
550
|
-
_applyShowCellFocusIndicator
|
|
551
|
-
|
|
552
|
-
if(value) {
|
|
525
|
+
_applyShowCellFocusIndicator(value, old) {
|
|
526
|
+
if (value) {
|
|
553
527
|
this.__focusIndicator.setDecorator("table-scroller-focus-indicator");
|
|
554
528
|
this._updateFocusIndicator();
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
if(this.__focusIndicator) {
|
|
529
|
+
} else {
|
|
530
|
+
if (this.__focusIndicator) {
|
|
558
531
|
this.__focusIndicator.setDecorator(null);
|
|
559
532
|
}
|
|
560
533
|
}
|
|
561
534
|
},
|
|
562
535
|
|
|
563
|
-
|
|
564
536
|
/**
|
|
565
537
|
* Get the current position of the vertical scroll bar.
|
|
566
538
|
*
|
|
567
539
|
* @return {Integer} The current scroll position.
|
|
568
540
|
*/
|
|
569
|
-
getScrollY
|
|
541
|
+
getScrollY() {
|
|
570
542
|
return this.__verScrollBar.getPosition();
|
|
571
543
|
},
|
|
572
544
|
|
|
573
|
-
|
|
574
545
|
/**
|
|
575
546
|
* Set the current position of the vertical scroll bar.
|
|
576
547
|
*
|
|
@@ -578,113 +549,97 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
578
549
|
* @param renderSync {Boolean?false} Whether the table update should be
|
|
579
550
|
* performed synchronously.
|
|
580
551
|
*/
|
|
581
|
-
setScrollY
|
|
582
|
-
{
|
|
552
|
+
setScrollY(scrollY, renderSync) {
|
|
583
553
|
this.__verScrollBar.scrollTo(scrollY);
|
|
584
554
|
if (renderSync) {
|
|
585
555
|
this._updateContent();
|
|
586
556
|
}
|
|
587
557
|
},
|
|
588
558
|
|
|
589
|
-
|
|
590
559
|
/**
|
|
591
560
|
* Get the current position of the vertical scroll bar.
|
|
592
561
|
*
|
|
593
562
|
* @return {Integer} The current scroll position.
|
|
594
563
|
*/
|
|
595
|
-
getScrollX
|
|
564
|
+
getScrollX() {
|
|
596
565
|
return this.__horScrollBar.getPosition();
|
|
597
566
|
},
|
|
598
567
|
|
|
599
|
-
|
|
600
568
|
/**
|
|
601
569
|
* Set the current position of the vertical scroll bar.
|
|
602
570
|
*
|
|
603
571
|
* @param scrollX {Integer} The new scroll position.
|
|
604
572
|
*/
|
|
605
|
-
setScrollX
|
|
573
|
+
setScrollX(scrollX) {
|
|
606
574
|
this.__horScrollBar.scrollTo(scrollX);
|
|
607
575
|
},
|
|
608
576
|
|
|
609
|
-
|
|
610
577
|
/**
|
|
611
578
|
* Returns the table this scroller belongs to.
|
|
612
579
|
*
|
|
613
580
|
* @return {qx.ui.table.Table} the table.
|
|
614
581
|
*/
|
|
615
|
-
getTable
|
|
582
|
+
getTable() {
|
|
616
583
|
return this.__table;
|
|
617
584
|
},
|
|
618
585
|
|
|
619
|
-
|
|
620
586
|
/**
|
|
621
587
|
* Creates and returns an instance of pane clipper.
|
|
622
588
|
*
|
|
623
589
|
* @return {qx.ui.table.pane.Clipper} pane clipper.
|
|
624
590
|
*/
|
|
625
|
-
_createPaneClipper
|
|
626
|
-
{
|
|
591
|
+
_createPaneClipper() {
|
|
627
592
|
return new qx.ui.table.pane.Clipper();
|
|
628
593
|
},
|
|
629
594
|
|
|
630
|
-
|
|
631
595
|
/**
|
|
632
596
|
* Creates and returns an instance of header clipper.
|
|
633
597
|
*
|
|
634
598
|
* @return {qx.ui.table.pane.Clipper} pane clipper.
|
|
635
599
|
*/
|
|
636
|
-
_createHeaderClipper
|
|
637
|
-
{
|
|
600
|
+
_createHeaderClipper() {
|
|
638
601
|
return new qx.ui.table.pane.Clipper();
|
|
639
602
|
},
|
|
640
603
|
|
|
641
|
-
|
|
642
604
|
/**
|
|
643
605
|
* Event handler. Called when the visibility of a column has changed.
|
|
644
606
|
*/
|
|
645
|
-
onColVisibilityChanged
|
|
646
|
-
{
|
|
607
|
+
onColVisibilityChanged() {
|
|
647
608
|
this.updateHorScrollBarMaximum();
|
|
648
609
|
this._updateFocusIndicator();
|
|
649
610
|
},
|
|
650
611
|
|
|
651
|
-
|
|
652
612
|
/**
|
|
653
613
|
* Sets the column width.
|
|
654
614
|
*
|
|
655
615
|
* @param col {Integer} the column to change the width for.
|
|
656
616
|
* @param width {Integer} the new width.
|
|
657
617
|
*/
|
|
658
|
-
setColumnWidth
|
|
659
|
-
{
|
|
618
|
+
setColumnWidth(col, width) {
|
|
660
619
|
this.__header.setColumnWidth(col, width);
|
|
661
620
|
this.__tablePane.setColumnWidth(col, width);
|
|
662
621
|
|
|
663
622
|
var paneModel = this.getTablePaneModel();
|
|
664
623
|
var x = paneModel.getX(col);
|
|
665
624
|
|
|
666
|
-
if (x != -1)
|
|
667
|
-
{
|
|
625
|
+
if (x != -1) {
|
|
668
626
|
// The change was in this scroller
|
|
669
627
|
this.updateHorScrollBarMaximum();
|
|
670
628
|
this._updateFocusIndicator();
|
|
671
629
|
}
|
|
672
630
|
},
|
|
673
631
|
|
|
674
|
-
|
|
675
632
|
/**
|
|
676
633
|
* Event handler. Called when the column order has changed.
|
|
677
634
|
*
|
|
678
635
|
*/
|
|
679
|
-
onColOrderChanged
|
|
680
|
-
{
|
|
636
|
+
onColOrderChanged() {
|
|
681
637
|
this.__header.onColOrderChanged();
|
|
682
638
|
this.__tablePane.onColOrderChanged();
|
|
683
639
|
|
|
684
640
|
this.updateHorScrollBarMaximum();
|
|
685
641
|
},
|
|
686
642
|
|
|
687
|
-
|
|
688
643
|
/**
|
|
689
644
|
* Event handler. Called when the table model has changed.
|
|
690
645
|
*
|
|
@@ -693,22 +648,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
693
648
|
* @param firstColumn {Integer} The model index of the first column that has changed.
|
|
694
649
|
* @param lastColumn {Integer} The model index of the last column that has changed.
|
|
695
650
|
*/
|
|
696
|
-
onTableModelDataChanged
|
|
697
|
-
|
|
698
|
-
|
|
651
|
+
onTableModelDataChanged(firstRow, lastRow, firstColumn, lastColumn) {
|
|
652
|
+
this.__tablePane.onTableModelDataChanged(
|
|
653
|
+
firstRow,
|
|
654
|
+
lastRow,
|
|
655
|
+
firstColumn,
|
|
656
|
+
lastColumn
|
|
657
|
+
);
|
|
658
|
+
|
|
699
659
|
var rowCount = this.getTable().getTableModel().getRowCount();
|
|
700
|
-
var colCount = this.__table.getTableColumnModel().getOverallColumnCount();
|
|
701
660
|
|
|
702
|
-
if (rowCount != this.__lastRowCount)
|
|
703
|
-
{
|
|
661
|
+
if (rowCount != this.__lastRowCount) {
|
|
704
662
|
this.updateVerScrollBarMaximum();
|
|
705
663
|
|
|
706
|
-
|
|
707
|
-
{
|
|
708
|
-
this.setFocusedCell(this.getFocusedColumn()||0, 0);
|
|
709
|
-
}
|
|
710
|
-
else if (this.getFocusedRow() >= rowCount)
|
|
711
|
-
{
|
|
664
|
+
const focusedRow = this.getFocusedRow();
|
|
665
|
+
if (focusedRow !== null && focusedRow >= rowCount) {
|
|
712
666
|
if (rowCount == 0) {
|
|
713
667
|
this.setFocusedCell(null, null);
|
|
714
668
|
} else {
|
|
@@ -719,49 +673,41 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
719
673
|
}
|
|
720
674
|
},
|
|
721
675
|
|
|
722
|
-
|
|
723
676
|
/**
|
|
724
677
|
* Event handler. Called when the selection has changed.
|
|
725
678
|
*/
|
|
726
|
-
onSelectionChanged
|
|
679
|
+
onSelectionChanged() {
|
|
727
680
|
this.__tablePane.onSelectionChanged();
|
|
728
681
|
},
|
|
729
682
|
|
|
730
|
-
|
|
731
683
|
/**
|
|
732
684
|
* Event handler. Called when the table gets or looses the focus.
|
|
733
685
|
*/
|
|
734
|
-
onFocusChanged
|
|
686
|
+
onFocusChanged() {
|
|
735
687
|
this.__tablePane.onFocusChanged();
|
|
736
688
|
},
|
|
737
689
|
|
|
738
|
-
|
|
739
690
|
/**
|
|
740
691
|
* Event handler. Called when the table model meta data has changed.
|
|
741
692
|
*
|
|
742
693
|
*/
|
|
743
|
-
onTableModelMetaDataChanged
|
|
744
|
-
{
|
|
694
|
+
onTableModelMetaDataChanged() {
|
|
745
695
|
this.__header.onTableModelMetaDataChanged();
|
|
746
696
|
this.__tablePane.onTableModelMetaDataChanged();
|
|
747
697
|
},
|
|
748
698
|
|
|
749
|
-
|
|
750
699
|
/**
|
|
751
700
|
* Event handler. Called when the pane model has changed.
|
|
752
701
|
*/
|
|
753
|
-
_onPaneModelChanged
|
|
754
|
-
{
|
|
702
|
+
_onPaneModelChanged() {
|
|
755
703
|
this.__header.onPaneModelChanged();
|
|
756
704
|
this.__tablePane.onPaneModelChanged();
|
|
757
705
|
},
|
|
758
706
|
|
|
759
|
-
|
|
760
707
|
/**
|
|
761
708
|
* Event listener for the pane clipper's resize event
|
|
762
709
|
*/
|
|
763
|
-
_onResizePane
|
|
764
|
-
{
|
|
710
|
+
_onResizePane() {
|
|
765
711
|
this.updateHorScrollBarMaximum();
|
|
766
712
|
this.updateVerScrollBarMaximum();
|
|
767
713
|
|
|
@@ -771,13 +717,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
771
717
|
this.__table._updateScrollBarVisibility();
|
|
772
718
|
},
|
|
773
719
|
|
|
774
|
-
|
|
775
720
|
/**
|
|
776
721
|
* Updates the maximum of the horizontal scroll bar, so it corresponds to the
|
|
777
722
|
* total width of the columns in the table pane.
|
|
778
723
|
*/
|
|
779
|
-
updateHorScrollBarMaximum
|
|
780
|
-
{
|
|
724
|
+
updateHorScrollBarMaximum() {
|
|
781
725
|
var paneSize = this._paneClipper.getInnerSize();
|
|
782
726
|
if (!paneSize) {
|
|
783
727
|
// will be called on the next resize event again
|
|
@@ -787,8 +731,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
787
731
|
|
|
788
732
|
var scrollBar = this.__horScrollBar;
|
|
789
733
|
|
|
790
|
-
if (paneSize.width < scrollSize)
|
|
791
|
-
{
|
|
734
|
+
if (paneSize.width < scrollSize) {
|
|
792
735
|
var max = Math.max(0, scrollSize - paneSize.width);
|
|
793
736
|
|
|
794
737
|
scrollBar.setMaximum(max);
|
|
@@ -796,22 +739,18 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
796
739
|
|
|
797
740
|
var pos = scrollBar.getPosition();
|
|
798
741
|
scrollBar.setPosition(Math.min(pos, max));
|
|
799
|
-
}
|
|
800
|
-
else
|
|
801
|
-
{
|
|
742
|
+
} else {
|
|
802
743
|
scrollBar.setMaximum(0);
|
|
803
744
|
scrollBar.setKnobFactor(1);
|
|
804
745
|
scrollBar.setPosition(0);
|
|
805
746
|
}
|
|
806
747
|
},
|
|
807
748
|
|
|
808
|
-
|
|
809
749
|
/**
|
|
810
750
|
* Updates the maximum of the vertical scroll bar, so it corresponds to the
|
|
811
751
|
* number of rows in the table.
|
|
812
752
|
*/
|
|
813
|
-
updateVerScrollBarMaximum
|
|
814
|
-
{
|
|
753
|
+
updateVerScrollBarMaximum() {
|
|
815
754
|
var paneSize = this._paneClipper.getInnerSize();
|
|
816
755
|
if (!paneSize) {
|
|
817
756
|
// will be called on the next resize event again
|
|
@@ -829,8 +768,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
829
768
|
var scrollSize = rowCount * rowHeight;
|
|
830
769
|
var scrollBar = this.__verScrollBar;
|
|
831
770
|
|
|
832
|
-
if (paneSize.height < scrollSize)
|
|
833
|
-
{
|
|
771
|
+
if (paneSize.height < scrollSize) {
|
|
834
772
|
var max = Math.max(0, scrollSize - paneSize.height);
|
|
835
773
|
|
|
836
774
|
scrollBar.setMaximum(max);
|
|
@@ -838,53 +776,44 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
838
776
|
|
|
839
777
|
var pos = scrollBar.getPosition();
|
|
840
778
|
scrollBar.setPosition(Math.min(pos, max));
|
|
841
|
-
}
|
|
842
|
-
else
|
|
843
|
-
{
|
|
779
|
+
} else {
|
|
844
780
|
scrollBar.setMaximum(0);
|
|
845
781
|
scrollBar.setKnobFactor(1);
|
|
846
782
|
scrollBar.setPosition(0);
|
|
847
783
|
}
|
|
848
784
|
},
|
|
849
785
|
|
|
850
|
-
|
|
851
786
|
/**
|
|
852
787
|
* Event handler. Called when the table property "keepFirstVisibleRowComplete"
|
|
853
788
|
* changed.
|
|
854
789
|
*/
|
|
855
|
-
onKeepFirstVisibleRowCompleteChanged
|
|
856
|
-
{
|
|
790
|
+
onKeepFirstVisibleRowCompleteChanged() {
|
|
857
791
|
this.updateVerScrollBarMaximum();
|
|
858
792
|
this._updateContent();
|
|
859
793
|
},
|
|
860
794
|
|
|
861
|
-
|
|
862
795
|
/**
|
|
863
796
|
* Event handler for the scroller's appear event
|
|
864
797
|
*/
|
|
865
|
-
_onAppear
|
|
798
|
+
_onAppear() {
|
|
866
799
|
// after the Scroller appears we start the interval again
|
|
867
800
|
this._startInterval(this.getScrollTimeout());
|
|
868
801
|
},
|
|
869
802
|
|
|
870
|
-
|
|
871
803
|
/**
|
|
872
804
|
* Event handler for the disappear event
|
|
873
805
|
*/
|
|
874
|
-
_onDisappear
|
|
875
|
-
{
|
|
806
|
+
_onDisappear() {
|
|
876
807
|
// before the scroller disappears we need to stop it
|
|
877
808
|
this._stopInterval();
|
|
878
809
|
},
|
|
879
810
|
|
|
880
|
-
|
|
881
811
|
/**
|
|
882
812
|
* Event handler. Called when the horizontal scroll bar moved.
|
|
883
813
|
*
|
|
884
814
|
* @param e {Map} the event.
|
|
885
815
|
*/
|
|
886
|
-
_onScrollX
|
|
887
|
-
{
|
|
816
|
+
_onScrollX(e) {
|
|
888
817
|
var scrollLeft = e.getData();
|
|
889
818
|
|
|
890
819
|
this.fireDataEvent("changeScrollX", scrollLeft, e.getOldData());
|
|
@@ -892,15 +821,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
892
821
|
this._paneClipper.scrollToX(scrollLeft);
|
|
893
822
|
},
|
|
894
823
|
|
|
895
|
-
|
|
896
824
|
/**
|
|
897
825
|
* Event handler. Called when the vertical scroll bar moved.
|
|
898
826
|
*
|
|
899
827
|
* @param e {Map} the event.
|
|
900
828
|
*/
|
|
901
|
-
__inOnScrollY
|
|
902
|
-
_onScrollY
|
|
903
|
-
{
|
|
829
|
+
__inOnScrollY: false,
|
|
830
|
+
_onScrollY(e) {
|
|
904
831
|
if (this.__inOnScrollY) {
|
|
905
832
|
return;
|
|
906
833
|
}
|
|
@@ -909,26 +836,29 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
909
836
|
// calculate delta so that one row is scrolled at an minimum
|
|
910
837
|
var rowHeight = this.getTable().getRowHeight();
|
|
911
838
|
var delta = e.getData() - e.getOldData();
|
|
912
|
-
if (
|
|
913
|
-
delta =
|
|
914
|
-
|
|
915
|
-
if (delta>=0&&delta<=scrollbar.getMaximum()) {
|
|
839
|
+
if (Math.abs(delta) > 1 && Math.abs(delta) < rowHeight) {
|
|
840
|
+
delta =
|
|
841
|
+
delta < 0 ? e.getOldData() - rowHeight : e.getOldData() + rowHeight;
|
|
842
|
+
if (delta >= 0 && delta <= scrollbar.getMaximum()) {
|
|
916
843
|
scrollbar.setPosition(delta);
|
|
917
844
|
}
|
|
918
845
|
}
|
|
919
846
|
this.__inOnScrollY = false;
|
|
920
|
-
this.fireDataEvent(
|
|
847
|
+
this.fireDataEvent(
|
|
848
|
+
"changeScrollY",
|
|
849
|
+
scrollbar.getPosition(),
|
|
850
|
+
e.getOldData()
|
|
851
|
+
);
|
|
852
|
+
|
|
921
853
|
this._postponedUpdateContent();
|
|
922
854
|
},
|
|
923
855
|
|
|
924
|
-
|
|
925
856
|
/**
|
|
926
857
|
* Event handler. Called when the user moved the mouse wheel.
|
|
927
858
|
*
|
|
928
859
|
* @param e {qx.event.type.Roll} the event.
|
|
929
860
|
*/
|
|
930
|
-
_onRoll
|
|
931
|
-
{
|
|
861
|
+
_onRoll(e) {
|
|
932
862
|
var table = this.getTable();
|
|
933
863
|
|
|
934
864
|
if (e.getPointerType() == "mouse" || !table.getEnabled()) {
|
|
@@ -945,7 +875,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
945
875
|
}
|
|
946
876
|
this.__verScrollBar.scrollBy(parseInt(delta.y, 10));
|
|
947
877
|
|
|
948
|
-
var scrolled =
|
|
878
|
+
var scrolled =
|
|
879
|
+
delta.y != 0 && !this.__isAtEdge(this.__verScrollBar, delta.y);
|
|
949
880
|
|
|
950
881
|
// horizontal scrolling
|
|
951
882
|
// normalize that at least one step is scrolled at a time
|
|
@@ -958,10 +889,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
958
889
|
|
|
959
890
|
// Update the focus
|
|
960
891
|
if (this.__lastPointerPageX && this.getFocusCellOnPointerMove()) {
|
|
961
|
-
this._focusCellAtPagePos(
|
|
892
|
+
this._focusCellAtPagePos(
|
|
893
|
+
this.__lastPointerPageX,
|
|
894
|
+
this.__lastPointerPageY
|
|
895
|
+
);
|
|
962
896
|
}
|
|
963
897
|
|
|
964
|
-
scrolled =
|
|
898
|
+
scrolled =
|
|
899
|
+
scrolled ||
|
|
900
|
+
(delta.x != 0 && !this.__isAtEdge(this.__horScrollBar, delta.x));
|
|
965
901
|
|
|
966
902
|
// pass the event to the parent if the scrollbar is at an edge
|
|
967
903
|
if (scrolled) {
|
|
@@ -971,71 +907,84 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
971
907
|
}
|
|
972
908
|
},
|
|
973
909
|
|
|
974
|
-
|
|
975
910
|
/**
|
|
976
911
|
* Checks if the table has been scrolled.
|
|
977
912
|
* @param scrollBar {qx.ui.core.scroll.IScrollBar} The scrollbar to check
|
|
978
913
|
* @param delta {Number} The scroll delta.
|
|
979
914
|
* @return {Boolean} <code>true</code>, if the scrolling is a the edge
|
|
980
915
|
*/
|
|
981
|
-
__isAtEdge
|
|
916
|
+
__isAtEdge(scrollBar, delta) {
|
|
982
917
|
var position = scrollBar.getPosition();
|
|
983
|
-
return (
|
|
918
|
+
return (
|
|
919
|
+
(delta < 0 && position <= 0) ||
|
|
920
|
+
(delta > 0 && position >= scrollBar.getMaximum())
|
|
921
|
+
);
|
|
984
922
|
},
|
|
985
923
|
|
|
986
|
-
|
|
987
924
|
/**
|
|
988
925
|
* Common column resize logic.
|
|
989
926
|
*
|
|
990
927
|
* @param pageX {Integer} the current pointer x position.
|
|
991
928
|
*/
|
|
992
|
-
__handleResizeColumn
|
|
993
|
-
{
|
|
929
|
+
__handleResizeColumn(pageX) {
|
|
994
930
|
var table = this.getTable();
|
|
995
931
|
// We are currently resizing -> Update the position
|
|
996
|
-
var headerCell = this.__header.getHeaderWidgetAtColumn(
|
|
932
|
+
var headerCell = this.__header.getHeaderWidgetAtColumn(
|
|
933
|
+
this.__resizeColumn
|
|
934
|
+
);
|
|
935
|
+
|
|
997
936
|
var minColumnWidth = headerCell.getSizeHint().minWidth;
|
|
998
937
|
|
|
999
|
-
var newWidth = Math.max(
|
|
938
|
+
var newWidth = Math.max(
|
|
939
|
+
minColumnWidth,
|
|
940
|
+
this.__lastResizeWidth + pageX - this.__lastResizePointerPageX
|
|
941
|
+
);
|
|
1000
942
|
|
|
1001
943
|
if (this.getLiveResize()) {
|
|
1002
944
|
var columnModel = table.getTableColumnModel();
|
|
1003
945
|
columnModel.setColumnWidth(this.__resizeColumn, newWidth, true);
|
|
1004
946
|
} else {
|
|
1005
947
|
var paneModel = this.getTablePaneModel();
|
|
1006
|
-
this._showResizeLine(
|
|
948
|
+
this._showResizeLine(
|
|
949
|
+
paneModel.getColumnLeft(this.__resizeColumn) + newWidth
|
|
950
|
+
);
|
|
1007
951
|
}
|
|
1008
952
|
|
|
1009
953
|
this.__lastResizePointerPageX += newWidth - this.__lastResizeWidth;
|
|
1010
954
|
this.__lastResizeWidth = newWidth;
|
|
1011
955
|
},
|
|
1012
956
|
|
|
1013
|
-
|
|
1014
957
|
/**
|
|
1015
958
|
* Common column move logic.
|
|
1016
959
|
*
|
|
1017
960
|
* @param pageX {Integer} the current pointer x position.
|
|
1018
961
|
*
|
|
1019
962
|
*/
|
|
1020
|
-
__handleMoveColumn
|
|
1021
|
-
{
|
|
963
|
+
__handleMoveColumn(pageX) {
|
|
1022
964
|
// We are moving a column
|
|
1023
965
|
|
|
1024
966
|
// Check whether we moved outside the tap tolerance so we can start
|
|
1025
967
|
// showing the column move feedback
|
|
1026
968
|
// (showing the column move feedback prevents the ontap event)
|
|
1027
969
|
var tapTolerance = qx.ui.table.pane.Scroller.TAP_TOLERANCE;
|
|
1028
|
-
if (
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
970
|
+
if (
|
|
971
|
+
this.__header.isShowingColumnMoveFeedback() ||
|
|
972
|
+
pageX > this.__lastMovePointerPageX + tapTolerance ||
|
|
973
|
+
pageX < this.__lastMovePointerPageX - tapTolerance
|
|
974
|
+
) {
|
|
1032
975
|
this.__lastMoveColPos += pageX - this.__lastMovePointerPageX;
|
|
1033
976
|
|
|
1034
|
-
this.__header.showColumnMoveFeedback(
|
|
977
|
+
this.__header.showColumnMoveFeedback(
|
|
978
|
+
this._moveColumn,
|
|
979
|
+
this.__lastMoveColPos
|
|
980
|
+
);
|
|
1035
981
|
|
|
1036
982
|
// Get the responsible scroller
|
|
1037
983
|
var targetScroller = this.__table.getTablePaneScrollerAtPageX(pageX);
|
|
1038
|
-
if (
|
|
984
|
+
if (
|
|
985
|
+
this._lastMoveTargetScroller &&
|
|
986
|
+
this._lastMoveTargetScroller != targetScroller
|
|
987
|
+
) {
|
|
1039
988
|
this._lastMoveTargetScroller.hideColumnMoveFeedback();
|
|
1040
989
|
}
|
|
1041
990
|
if (targetScroller != null) {
|
|
@@ -1049,17 +998,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1049
998
|
}
|
|
1050
999
|
},
|
|
1051
1000
|
|
|
1052
|
-
|
|
1053
1001
|
/**
|
|
1054
1002
|
* Event handler. Called when the user moved the pointer over the header.
|
|
1055
1003
|
*
|
|
1056
1004
|
* @param e {Map} the event.
|
|
1057
1005
|
*/
|
|
1058
|
-
_onPointermoveHeader
|
|
1059
|
-
{
|
|
1006
|
+
_onPointermoveHeader(e) {
|
|
1060
1007
|
var table = this.getTable();
|
|
1061
1008
|
|
|
1062
|
-
if (!
|
|
1009
|
+
if (!table.getEnabled()) {
|
|
1063
1010
|
return;
|
|
1064
1011
|
}
|
|
1065
1012
|
|
|
@@ -1074,29 +1021,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1074
1021
|
this.__lastPointerPageX = pageX;
|
|
1075
1022
|
this.__lastPointerPageY = pageY;
|
|
1076
1023
|
|
|
1077
|
-
if (this.__resizeColumn != null)
|
|
1078
|
-
{
|
|
1024
|
+
if (this.__resizeColumn != null) {
|
|
1079
1025
|
// We are currently resizing -> Update the position
|
|
1080
1026
|
this.__handleResizeColumn(pageX);
|
|
1081
1027
|
useResizeCursor = true;
|
|
1082
1028
|
e.stopPropagation();
|
|
1083
|
-
}
|
|
1084
|
-
else if (this._moveColumn != null)
|
|
1085
|
-
{
|
|
1029
|
+
} else if (this._moveColumn != null) {
|
|
1086
1030
|
// We are moving a column
|
|
1087
1031
|
this.__handleMoveColumn(pageX);
|
|
1088
1032
|
e.stopPropagation();
|
|
1089
|
-
}
|
|
1090
|
-
else
|
|
1091
|
-
{
|
|
1033
|
+
} else {
|
|
1092
1034
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1093
|
-
if (resizeCol != -1)
|
|
1094
|
-
{
|
|
1035
|
+
if (resizeCol != -1) {
|
|
1095
1036
|
// The pointer is over a resize region -> Show the right cursor
|
|
1096
1037
|
useResizeCursor = true;
|
|
1097
|
-
}
|
|
1098
|
-
else
|
|
1099
|
-
{
|
|
1038
|
+
} else {
|
|
1100
1039
|
var tableModel = table.getTableModel();
|
|
1101
1040
|
var col = this._getColumnForPageX(pageX);
|
|
1102
1041
|
if (col != null && tableModel.isColumnSortable(col)) {
|
|
@@ -1111,17 +1050,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1111
1050
|
this.__header.setPointerOverColumn(pointerOverColumn);
|
|
1112
1051
|
},
|
|
1113
1052
|
|
|
1114
|
-
|
|
1115
1053
|
/**
|
|
1116
1054
|
* Event handler. Called when the user moved the pointer over the pane.
|
|
1117
1055
|
*
|
|
1118
1056
|
* @param e {Map} the event.
|
|
1119
1057
|
*/
|
|
1120
|
-
_onPointermovePane
|
|
1121
|
-
{
|
|
1058
|
+
_onPointermovePane(e) {
|
|
1122
1059
|
var table = this.getTable();
|
|
1123
1060
|
|
|
1124
|
-
if (!
|
|
1061
|
+
if (!table.getEnabled()) {
|
|
1125
1062
|
return;
|
|
1126
1063
|
}
|
|
1127
1064
|
|
|
@@ -1135,11 +1072,9 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1135
1072
|
this.__lastPointerPageX = pageX;
|
|
1136
1073
|
this.__lastPointerPageY = pageY;
|
|
1137
1074
|
|
|
1138
|
-
|
|
1139
1075
|
var useResizeCursor = false;
|
|
1140
1076
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1141
|
-
if (resizeCol != -1)
|
|
1142
|
-
{
|
|
1077
|
+
if (resizeCol != -1) {
|
|
1143
1078
|
// The pointer is over a resize region -> Show the right cursor
|
|
1144
1079
|
useResizeCursor = true;
|
|
1145
1080
|
}
|
|
@@ -1147,7 +1082,6 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1147
1082
|
this.getApplicationRoot().setGlobalCursor(cursor);
|
|
1148
1083
|
this.setCursor(cursor);
|
|
1149
1084
|
|
|
1150
|
-
|
|
1151
1085
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
1152
1086
|
if (row != null && this._getColumnForPageX(pageX) != null) {
|
|
1153
1087
|
// The pointer is over the data -> update the focus
|
|
@@ -1158,15 +1092,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1158
1092
|
this.__header.setPointerOverColumn(null);
|
|
1159
1093
|
},
|
|
1160
1094
|
|
|
1161
|
-
|
|
1162
1095
|
/**
|
|
1163
1096
|
* Event handler. Called when the user pressed a pointer button over the header.
|
|
1164
1097
|
*
|
|
1165
1098
|
* @param e {Map} the event.
|
|
1166
1099
|
*/
|
|
1167
|
-
_onPointerdownHeader
|
|
1168
|
-
|
|
1169
|
-
if (! this.getTable().getEnabled()) {
|
|
1100
|
+
_onPointerdownHeader(e) {
|
|
1101
|
+
if (!this.getTable().getEnabled()) {
|
|
1170
1102
|
return;
|
|
1171
1103
|
}
|
|
1172
1104
|
|
|
@@ -1174,33 +1106,27 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1174
1106
|
|
|
1175
1107
|
// pointer is in header
|
|
1176
1108
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1177
|
-
if (resizeCol != -1)
|
|
1178
|
-
{
|
|
1109
|
+
if (resizeCol != -1) {
|
|
1179
1110
|
// The pointer is over a resize region -> Start resizing
|
|
1180
1111
|
this._startResizeHeader(resizeCol, pageX);
|
|
1181
1112
|
e.stop();
|
|
1182
|
-
}
|
|
1183
|
-
else
|
|
1184
|
-
{
|
|
1113
|
+
} else {
|
|
1185
1114
|
// The pointer is not in a resize region
|
|
1186
1115
|
var moveCol = this._getColumnForPageX(pageX);
|
|
1187
|
-
if (moveCol != null)
|
|
1188
|
-
{
|
|
1116
|
+
if (moveCol != null) {
|
|
1189
1117
|
this._startMoveHeader(moveCol, pageX);
|
|
1190
1118
|
e.stop();
|
|
1191
1119
|
}
|
|
1192
1120
|
}
|
|
1193
1121
|
},
|
|
1194
1122
|
|
|
1195
|
-
|
|
1196
1123
|
/**
|
|
1197
1124
|
* Start a resize session of the header.
|
|
1198
1125
|
*
|
|
1199
1126
|
* @param resizeCol {Integer} the column index
|
|
1200
1127
|
* @param pageX {Integer} x coordinate of the pointer event
|
|
1201
1128
|
*/
|
|
1202
|
-
_startResizeHeader
|
|
1203
|
-
{
|
|
1129
|
+
_startResizeHeader(resizeCol, pageX) {
|
|
1204
1130
|
var columnModel = this.getTable().getTableColumnModel();
|
|
1205
1131
|
|
|
1206
1132
|
// The pointer is over a resize region -> Start resizing
|
|
@@ -1210,15 +1136,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1210
1136
|
this._headerClipper.capture();
|
|
1211
1137
|
},
|
|
1212
1138
|
|
|
1213
|
-
|
|
1214
1139
|
/**
|
|
1215
1140
|
* Start a move session of the header.
|
|
1216
1141
|
*
|
|
1217
1142
|
* @param moveCol {Integer} the column index
|
|
1218
1143
|
* @param pageX {Integer} x coordinate of the pointer event
|
|
1219
1144
|
*/
|
|
1220
|
-
_startMoveHeader
|
|
1221
|
-
{
|
|
1145
|
+
_startMoveHeader(moveCol, pageX) {
|
|
1222
1146
|
// Prepare column moving
|
|
1223
1147
|
this._moveColumn = moveCol;
|
|
1224
1148
|
this.__lastMovePointerPageX = pageX;
|
|
@@ -1226,15 +1150,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1226
1150
|
this._headerClipper.capture();
|
|
1227
1151
|
},
|
|
1228
1152
|
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
1153
|
/**
|
|
1232
1154
|
* Event handler. Called when the user pressed a pointer button over the pane.
|
|
1233
1155
|
*
|
|
1234
1156
|
* @param e {Map} the event.
|
|
1235
1157
|
*/
|
|
1236
|
-
_onPointerdownPane
|
|
1237
|
-
{
|
|
1158
|
+
_onPointerdownPane(e) {
|
|
1238
1159
|
var table = this.getTable();
|
|
1239
1160
|
|
|
1240
1161
|
if (!table.getEnabled()) {
|
|
@@ -1249,8 +1170,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1249
1170
|
|
|
1250
1171
|
// pointer is in header
|
|
1251
1172
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1252
|
-
if (resizeCol != -1)
|
|
1253
|
-
{
|
|
1173
|
+
if (resizeCol != -1) {
|
|
1254
1174
|
// The pointer is over a resize region -> Start resizing
|
|
1255
1175
|
this._startResizeHeader(resizeCol, pageX);
|
|
1256
1176
|
e.stop();
|
|
@@ -1261,8 +1181,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1261
1181
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
1262
1182
|
var col = this._getColumnForPageX(pageX);
|
|
1263
1183
|
|
|
1264
|
-
if (row !== null)
|
|
1265
|
-
{
|
|
1184
|
+
if (row !== null) {
|
|
1266
1185
|
// The focus indicator blocks the tap event on the scroller so we
|
|
1267
1186
|
// store the current cell and listen for the pointerup event on the
|
|
1268
1187
|
// focus indicator
|
|
@@ -1277,8 +1196,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1277
1196
|
// Windows issues it late) so no one may clear these values.
|
|
1278
1197
|
//
|
|
1279
1198
|
this.__lastPointerDownCell = {
|
|
1280
|
-
row
|
|
1281
|
-
col
|
|
1199
|
+
row: row,
|
|
1200
|
+
col: col
|
|
1282
1201
|
};
|
|
1283
1202
|
|
|
1284
1203
|
// On the other hand, we need to know if we've issued the tap event
|
|
@@ -1289,29 +1208,32 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1289
1208
|
}
|
|
1290
1209
|
},
|
|
1291
1210
|
|
|
1292
|
-
|
|
1293
1211
|
/**
|
|
1294
1212
|
* Event handler for the focus indicator's pointerup event
|
|
1295
1213
|
*
|
|
1296
1214
|
* @param e {qx.event.type.Pointer} The pointer event
|
|
1297
1215
|
*/
|
|
1298
|
-
_onPointerupFocusIndicator
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
{
|
|
1306
|
-
this.fireEvent(
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1216
|
+
_onPointerupFocusIndicator(e) {
|
|
1217
|
+
if (
|
|
1218
|
+
this.__lastPointerDownCell &&
|
|
1219
|
+
!this.__firedTapEvent &&
|
|
1220
|
+
!this.isEditing() &&
|
|
1221
|
+
this.__focusIndicator.getRow() == this.__lastPointerDownCell.row &&
|
|
1222
|
+
this.__focusIndicator.getColumn() == this.__lastPointerDownCell.col
|
|
1223
|
+
) {
|
|
1224
|
+
this.fireEvent(
|
|
1225
|
+
"cellTap",
|
|
1226
|
+
qx.ui.table.pane.CellEvent,
|
|
1227
|
+
[
|
|
1228
|
+
this,
|
|
1229
|
+
e,
|
|
1230
|
+
this.__lastPointerDownCell.row,
|
|
1231
|
+
this.__lastPointerDownCell.col
|
|
1232
|
+
],
|
|
1233
|
+
|
|
1234
|
+
true
|
|
1235
|
+
);
|
|
1236
|
+
|
|
1315
1237
|
this.__firedTapEvent = true;
|
|
1316
1238
|
} else if (!this.isEditing()) {
|
|
1317
1239
|
// if no cellTap event should be fired, act like a pointerdown which
|
|
@@ -1320,7 +1242,6 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1320
1242
|
}
|
|
1321
1243
|
},
|
|
1322
1244
|
|
|
1323
|
-
|
|
1324
1245
|
/**
|
|
1325
1246
|
* Event handler. Called when the event capturing of the header changed.
|
|
1326
1247
|
* Stops/finishes an active header resize/move session if it lost capturing
|
|
@@ -1328,8 +1249,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1328
1249
|
*
|
|
1329
1250
|
* @param e {qx.event.type.Data} The data event
|
|
1330
1251
|
*/
|
|
1331
|
-
_onChangeCaptureHeader
|
|
1332
|
-
{
|
|
1252
|
+
_onChangeCaptureHeader(e) {
|
|
1333
1253
|
if (this.__resizeColumn != null) {
|
|
1334
1254
|
this._stopResizeHeader();
|
|
1335
1255
|
}
|
|
@@ -1339,21 +1259,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1339
1259
|
}
|
|
1340
1260
|
},
|
|
1341
1261
|
|
|
1342
|
-
|
|
1343
1262
|
/**
|
|
1344
1263
|
* Stop a resize session of the header.
|
|
1345
1264
|
*
|
|
1346
1265
|
*/
|
|
1347
|
-
_stopResizeHeader
|
|
1348
|
-
{
|
|
1266
|
+
_stopResizeHeader() {
|
|
1349
1267
|
var columnModel = this.getTable().getTableColumnModel();
|
|
1350
1268
|
|
|
1351
1269
|
// We are currently resizing -> Finish resizing
|
|
1352
|
-
if (!
|
|
1270
|
+
if (!this.getLiveResize()) {
|
|
1353
1271
|
this._hideResizeLine();
|
|
1354
|
-
columnModel.setColumnWidth(
|
|
1355
|
-
|
|
1356
|
-
|
|
1272
|
+
columnModel.setColumnWidth(
|
|
1273
|
+
this.__resizeColumn,
|
|
1274
|
+
this.__lastResizeWidth,
|
|
1275
|
+
true
|
|
1276
|
+
);
|
|
1357
1277
|
}
|
|
1358
1278
|
|
|
1359
1279
|
this.__resizeColumn = null;
|
|
@@ -1363,13 +1283,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1363
1283
|
this.setCursor(null);
|
|
1364
1284
|
},
|
|
1365
1285
|
|
|
1366
|
-
|
|
1367
1286
|
/**
|
|
1368
1287
|
* Stop a move session of the header.
|
|
1369
1288
|
*
|
|
1370
1289
|
*/
|
|
1371
|
-
_stopMoveHeader
|
|
1372
|
-
{
|
|
1290
|
+
_stopMoveHeader() {
|
|
1373
1291
|
var columnModel = this.getTable().getTableColumnModel();
|
|
1374
1292
|
var paneModel = this.getTablePaneModel();
|
|
1375
1293
|
|
|
@@ -1379,20 +1297,22 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1379
1297
|
this._lastMoveTargetScroller.hideColumnMoveFeedback();
|
|
1380
1298
|
}
|
|
1381
1299
|
|
|
1382
|
-
if (this._lastMoveTargetX != null)
|
|
1383
|
-
|
|
1384
|
-
|
|
1300
|
+
if (this._lastMoveTargetX != null) {
|
|
1301
|
+
var fromVisXPos =
|
|
1302
|
+
paneModel.getFirstColumnX() + paneModel.getX(this._moveColumn);
|
|
1385
1303
|
var toVisXPos = this._lastMoveTargetX;
|
|
1386
|
-
if (toVisXPos != fromVisXPos && toVisXPos != fromVisXPos + 1)
|
|
1387
|
-
{
|
|
1304
|
+
if (toVisXPos != fromVisXPos && toVisXPos != fromVisXPos + 1) {
|
|
1388
1305
|
// The column was really moved to another position
|
|
1389
1306
|
// (and not moved before or after itself, which is a noop)
|
|
1390
1307
|
|
|
1391
1308
|
// Translate visible positions to overall positions
|
|
1392
1309
|
var fromCol = columnModel.getVisibleColumnAtX(fromVisXPos);
|
|
1393
|
-
var toCol
|
|
1310
|
+
var toCol = columnModel.getVisibleColumnAtX(toVisXPos);
|
|
1394
1311
|
var fromOverXPos = columnModel.getOverallX(fromCol);
|
|
1395
|
-
var toOverXPos =
|
|
1312
|
+
var toOverXPos =
|
|
1313
|
+
toCol != null
|
|
1314
|
+
? columnModel.getOverallX(toCol)
|
|
1315
|
+
: columnModel.getOverallColumnCount();
|
|
1396
1316
|
|
|
1397
1317
|
if (toOverXPos > fromOverXPos) {
|
|
1398
1318
|
// Don't count the column itself
|
|
@@ -1412,43 +1332,35 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1412
1332
|
this._headerClipper.releaseCapture();
|
|
1413
1333
|
},
|
|
1414
1334
|
|
|
1415
|
-
|
|
1416
1335
|
/**
|
|
1417
1336
|
* Event handler. Called when the user released a pointer button over the header.
|
|
1418
1337
|
*
|
|
1419
1338
|
* @param e {Map} the event.
|
|
1420
1339
|
*/
|
|
1421
|
-
_onPointerupHeader
|
|
1422
|
-
{
|
|
1340
|
+
_onPointerupHeader(e) {
|
|
1423
1341
|
var table = this.getTable();
|
|
1424
1342
|
|
|
1425
|
-
if (!
|
|
1343
|
+
if (!table.getEnabled()) {
|
|
1426
1344
|
return;
|
|
1427
1345
|
}
|
|
1428
1346
|
|
|
1429
|
-
if (this.__resizeColumn != null)
|
|
1430
|
-
{
|
|
1347
|
+
if (this.__resizeColumn != null) {
|
|
1431
1348
|
this._stopResizeHeader();
|
|
1432
1349
|
this.__ignoreTap = true;
|
|
1433
1350
|
e.stop();
|
|
1434
|
-
}
|
|
1435
|
-
else if (this._moveColumn != null)
|
|
1436
|
-
{
|
|
1351
|
+
} else if (this._moveColumn != null) {
|
|
1437
1352
|
this._stopMoveHeader();
|
|
1438
1353
|
e.stop();
|
|
1439
1354
|
}
|
|
1440
1355
|
},
|
|
1441
1356
|
|
|
1442
|
-
|
|
1443
1357
|
/**
|
|
1444
1358
|
* Event handler. Called when the user tapped a pointer button over the header.
|
|
1445
1359
|
*
|
|
1446
1360
|
* @param e {Map} the event.
|
|
1447
1361
|
*/
|
|
1448
|
-
_onTapHeader
|
|
1449
|
-
|
|
1450
|
-
if (this.__ignoreTap)
|
|
1451
|
-
{
|
|
1362
|
+
_onTapHeader(e) {
|
|
1363
|
+
if (this.__ignoreTap) {
|
|
1452
1364
|
this.__ignoreTap = false;
|
|
1453
1365
|
return;
|
|
1454
1366
|
}
|
|
@@ -1465,34 +1377,29 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1465
1377
|
|
|
1466
1378
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1467
1379
|
|
|
1468
|
-
if (resizeCol == -1)
|
|
1469
|
-
{
|
|
1380
|
+
if (resizeCol == -1) {
|
|
1470
1381
|
// pointer is not in a resize region
|
|
1471
1382
|
var col = this._getColumnForPageX(pageX);
|
|
1472
1383
|
|
|
1473
|
-
if (col != null && tableModel.isColumnSortable(col))
|
|
1474
|
-
{
|
|
1384
|
+
if (col != null && tableModel.isColumnSortable(col)) {
|
|
1475
1385
|
// Sort that column
|
|
1476
1386
|
var sortCol = tableModel.getSortColumnIndex();
|
|
1477
|
-
var ascending =
|
|
1387
|
+
var ascending = col != sortCol ? true : !tableModel.isSortAscending();
|
|
1478
1388
|
|
|
1479
|
-
var data =
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
};
|
|
1389
|
+
var data = {
|
|
1390
|
+
column: col,
|
|
1391
|
+
ascending: ascending,
|
|
1392
|
+
tapEvent: e
|
|
1393
|
+
};
|
|
1485
1394
|
|
|
1486
|
-
if (this.fireDataEvent("beforeSort", data, null, true))
|
|
1487
|
-
{
|
|
1395
|
+
if (this.fireDataEvent("beforeSort", data, null, true)) {
|
|
1488
1396
|
// Stop cell editing
|
|
1489
1397
|
if (table.isEditing()) {
|
|
1490
1398
|
table.stopEditing();
|
|
1491
1399
|
}
|
|
1492
1400
|
|
|
1493
1401
|
tableModel.sortByColumn(col, ascending);
|
|
1494
|
-
if (this.getResetSelectionOnHeaderTap())
|
|
1495
|
-
{
|
|
1402
|
+
if (this.getResetSelectionOnHeaderTap()) {
|
|
1496
1403
|
table.getSelectionModel().resetSelection();
|
|
1497
1404
|
}
|
|
1498
1405
|
}
|
|
@@ -1502,14 +1409,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1502
1409
|
e.stop();
|
|
1503
1410
|
},
|
|
1504
1411
|
|
|
1505
|
-
|
|
1506
1412
|
/**
|
|
1507
1413
|
* Event handler. Called when the user tapped a pointer button over the pane.
|
|
1508
1414
|
*
|
|
1509
1415
|
* @param e {Map} the event.
|
|
1510
1416
|
*/
|
|
1511
|
-
_onTapPane
|
|
1512
|
-
{
|
|
1417
|
+
_onTapPane(e) {
|
|
1513
1418
|
var table = this.getTable();
|
|
1514
1419
|
|
|
1515
1420
|
if (!table.getEnabled()) {
|
|
@@ -1537,17 +1442,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1537
1442
|
table.getSelectionManager().handleTap(row, e);
|
|
1538
1443
|
}
|
|
1539
1444
|
|
|
1540
|
-
if (
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1445
|
+
if (
|
|
1446
|
+
this.__focusIndicator.isHidden() ||
|
|
1447
|
+
(this.__lastPointerDownCell &&
|
|
1448
|
+
!this.__firedTapEvent &&
|
|
1449
|
+
!this.isEditing() &&
|
|
1450
|
+
row == this.__lastPointerDownCell.row &&
|
|
1451
|
+
col == this.__lastPointerDownCell.col)
|
|
1452
|
+
) {
|
|
1453
|
+
this.fireEvent(
|
|
1454
|
+
"cellTap",
|
|
1455
|
+
qx.ui.table.pane.CellEvent,
|
|
1456
|
+
[this, e, row, col],
|
|
1457
|
+
true
|
|
1458
|
+
);
|
|
1459
|
+
|
|
1551
1460
|
this.__firedTapEvent = true;
|
|
1552
1461
|
}
|
|
1553
1462
|
} else {
|
|
@@ -1557,14 +1466,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1557
1466
|
}
|
|
1558
1467
|
},
|
|
1559
1468
|
|
|
1560
|
-
|
|
1561
1469
|
/**
|
|
1562
1470
|
* Event handler. Called when a context menu is invoked in a cell.
|
|
1563
1471
|
*
|
|
1564
1472
|
* @param e {qx.event.type.Pointer} the event.
|
|
1565
1473
|
*/
|
|
1566
|
-
_onContextMenu
|
|
1567
|
-
{
|
|
1474
|
+
_onContextMenu(e) {
|
|
1568
1475
|
var pageX = e.getDocumentLeft();
|
|
1569
1476
|
var pageY = e.getDocumentTop();
|
|
1570
1477
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
@@ -1576,36 +1483,35 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1576
1483
|
* the context menu event anyway, and can set the property value of
|
|
1577
1484
|
* contextMenuFromDataCellsOnly to false to achieve that.
|
|
1578
1485
|
*/
|
|
1579
|
-
if (row === null && this.getContextMenuFromDataCellsOnly())
|
|
1580
|
-
{
|
|
1486
|
+
if (row === null && this.getContextMenuFromDataCellsOnly()) {
|
|
1581
1487
|
return;
|
|
1582
1488
|
}
|
|
1583
1489
|
|
|
1584
|
-
if (
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1490
|
+
if (
|
|
1491
|
+
!this.getShowCellFocusIndicator() ||
|
|
1492
|
+
row === null ||
|
|
1493
|
+
(this.__lastPointerDownCell &&
|
|
1494
|
+
row == this.__lastPointerDownCell.row &&
|
|
1495
|
+
col == this.__lastPointerDownCell.col)
|
|
1496
|
+
) {
|
|
1497
|
+
this.fireEvent(
|
|
1498
|
+
"cellContextmenu",
|
|
1499
|
+
qx.ui.table.pane.CellEvent,
|
|
1500
|
+
[this, e, row, col],
|
|
1501
|
+
true
|
|
1502
|
+
);
|
|
1594
1503
|
|
|
1595
1504
|
// Now that the cellContextmenu handler has had a chance to build
|
|
1596
1505
|
// the menu for this cell, display it (if there is one).
|
|
1597
1506
|
var menu = this.getTable().getContextMenu();
|
|
1598
|
-
if (menu)
|
|
1599
|
-
{
|
|
1507
|
+
if (menu) {
|
|
1600
1508
|
// A menu with no children means don't display any context menu
|
|
1601
1509
|
// including the default context menu even if the default context
|
|
1602
1510
|
// menu is allowed to be displayed normally. There's no need to
|
|
1603
1511
|
// actually show an empty menu, though.
|
|
1604
1512
|
if (menu.getChildren().length > 0) {
|
|
1605
1513
|
menu.openAtPointer(e);
|
|
1606
|
-
}
|
|
1607
|
-
else
|
|
1608
|
-
{
|
|
1514
|
+
} else {
|
|
1609
1515
|
menu.exclude();
|
|
1610
1516
|
}
|
|
1611
1517
|
|
|
@@ -1615,10 +1521,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1615
1521
|
}
|
|
1616
1522
|
},
|
|
1617
1523
|
|
|
1618
|
-
|
|
1619
1524
|
// overridden
|
|
1620
|
-
_onContextMenuOpen
|
|
1621
|
-
{
|
|
1525
|
+
_onContextMenuOpen(e) {
|
|
1622
1526
|
// This is Widget's context menu handler which typically retrieves
|
|
1623
1527
|
// and displays the menu as soon as it receives a "contextmenu" event.
|
|
1624
1528
|
// We want to allow the cellContextmenu handler to create the menu,
|
|
@@ -1626,14 +1530,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1626
1530
|
// placement and display handling in our _onContextMenu method.
|
|
1627
1531
|
},
|
|
1628
1532
|
|
|
1629
|
-
|
|
1630
1533
|
/**
|
|
1631
1534
|
* Event handler. Called when the user double tapped a pointer button over the pane.
|
|
1632
1535
|
*
|
|
1633
1536
|
* @param e {Map} the event.
|
|
1634
1537
|
*/
|
|
1635
|
-
_onDbltapPane
|
|
1636
|
-
{
|
|
1538
|
+
_onDbltapPane(e) {
|
|
1637
1539
|
var pageX = e.getDocumentLeft();
|
|
1638
1540
|
var pageY = e.getDocumentTop();
|
|
1639
1541
|
var col = this._getColumnForPageX(pageX);
|
|
@@ -1644,19 +1546,22 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1644
1546
|
|
|
1645
1547
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
1646
1548
|
if (row != -1 && row != null) {
|
|
1647
|
-
this.fireEvent(
|
|
1549
|
+
this.fireEvent(
|
|
1550
|
+
"cellDbltap",
|
|
1551
|
+
qx.ui.table.pane.CellEvent,
|
|
1552
|
+
[this, e, row],
|
|
1553
|
+
true
|
|
1554
|
+
);
|
|
1648
1555
|
}
|
|
1649
1556
|
}
|
|
1650
1557
|
},
|
|
1651
1558
|
|
|
1652
|
-
|
|
1653
1559
|
/**
|
|
1654
1560
|
* Event handler. Called when the pointer moved out.
|
|
1655
1561
|
*
|
|
1656
1562
|
* @param e {Map} the event.
|
|
1657
1563
|
*/
|
|
1658
|
-
_onPointerout
|
|
1659
|
-
{
|
|
1564
|
+
_onPointerout(e) {
|
|
1660
1565
|
var table = this.getTable();
|
|
1661
1566
|
|
|
1662
1567
|
if (!table.getEnabled()) {
|
|
@@ -1666,8 +1571,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1666
1571
|
// Reset the resize cursor when the pointer leaves the header
|
|
1667
1572
|
// If currently a column is resized then do nothing
|
|
1668
1573
|
// (the cursor will be reset on pointerup)
|
|
1669
|
-
if (this.__resizeColumn == null)
|
|
1670
|
-
{
|
|
1574
|
+
if (this.__resizeColumn == null) {
|
|
1671
1575
|
this.setCursor(null);
|
|
1672
1576
|
this.getApplicationRoot().setGlobalCursor(null);
|
|
1673
1577
|
}
|
|
@@ -1680,41 +1584,39 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1680
1584
|
}
|
|
1681
1585
|
},
|
|
1682
1586
|
|
|
1683
|
-
|
|
1684
1587
|
/**
|
|
1685
1588
|
* Shows the resize line.
|
|
1686
1589
|
*
|
|
1687
1590
|
* @param x {Integer} the position where to show the line (in pixels, relative to
|
|
1688
1591
|
* the left side of the pane).
|
|
1689
1592
|
*/
|
|
1690
|
-
_showResizeLine
|
|
1691
|
-
{
|
|
1593
|
+
_showResizeLine(x) {
|
|
1692
1594
|
var resizeLine = this._showChildControl("resize-line");
|
|
1693
1595
|
|
|
1694
1596
|
var width = resizeLine.getWidth();
|
|
1695
1597
|
var paneBounds = this._paneClipper.getBounds();
|
|
1696
1598
|
resizeLine.setUserBounds(
|
|
1697
|
-
x - Math.round(width/2),
|
|
1599
|
+
x - Math.round(width / 2),
|
|
1600
|
+
0,
|
|
1601
|
+
width,
|
|
1602
|
+
paneBounds.height
|
|
1698
1603
|
);
|
|
1699
1604
|
},
|
|
1700
1605
|
|
|
1701
|
-
|
|
1702
1606
|
/**
|
|
1703
1607
|
* Hides the resize line.
|
|
1704
1608
|
*/
|
|
1705
|
-
_hideResizeLine
|
|
1609
|
+
_hideResizeLine() {
|
|
1706
1610
|
this._excludeChildControl("resize-line");
|
|
1707
1611
|
},
|
|
1708
1612
|
|
|
1709
|
-
|
|
1710
1613
|
/**
|
|
1711
1614
|
* Shows the feedback shown while a column is moved by the user.
|
|
1712
1615
|
*
|
|
1713
1616
|
* @param pageX {Integer} the x position of the pointer in the page (in pixels).
|
|
1714
1617
|
* @return {Integer} the visible x position of the column in the whole table.
|
|
1715
1618
|
*/
|
|
1716
|
-
showColumnMoveFeedback
|
|
1717
|
-
{
|
|
1619
|
+
showColumnMoveFeedback(pageX) {
|
|
1718
1620
|
var paneModel = this.getTablePaneModel();
|
|
1719
1621
|
var columnModel = this.getTable().getTableColumnModel();
|
|
1720
1622
|
var paneLeft = this.__tablePane.getContentLocation().left;
|
|
@@ -1724,8 +1626,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1724
1626
|
var targetX = 0;
|
|
1725
1627
|
var currX = paneLeft;
|
|
1726
1628
|
|
|
1727
|
-
for (var xPos=0; xPos<colCount; xPos++)
|
|
1728
|
-
{
|
|
1629
|
+
for (var xPos = 0; xPos < colCount; xPos++) {
|
|
1729
1630
|
var col = paneModel.getColumnAtX(xPos);
|
|
1730
1631
|
var colWidth = columnModel.getColumnWidth(col);
|
|
1731
1632
|
|
|
@@ -1744,7 +1645,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1744
1645
|
var scrollX = scrollerLeft - paneLeft;
|
|
1745
1646
|
|
|
1746
1647
|
// NOTE: +2/-1 because of feedback width
|
|
1747
|
-
targetX = qx.lang.Number.limit(
|
|
1648
|
+
targetX = qx.lang.Number.limit(
|
|
1649
|
+
targetX,
|
|
1650
|
+
scrollX + 2,
|
|
1651
|
+
scrollX + scrollerWidth - 1
|
|
1652
|
+
);
|
|
1748
1653
|
|
|
1749
1654
|
this._showResizeLine(targetX);
|
|
1750
1655
|
|
|
@@ -1752,15 +1657,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1752
1657
|
return paneModel.getFirstColumnX() + targetXPos;
|
|
1753
1658
|
},
|
|
1754
1659
|
|
|
1755
|
-
|
|
1756
1660
|
/**
|
|
1757
1661
|
* Hides the feedback shown while a column is moved by the user.
|
|
1758
1662
|
*/
|
|
1759
|
-
hideColumnMoveFeedback
|
|
1663
|
+
hideColumnMoveFeedback() {
|
|
1760
1664
|
this._hideResizeLine();
|
|
1761
1665
|
},
|
|
1762
1666
|
|
|
1763
|
-
|
|
1764
1667
|
/**
|
|
1765
1668
|
* Sets the focus to the cell that's located at the page position
|
|
1766
1669
|
* <code>pageX</code>/<code>pageY</code>. If there is no cell at that position,
|
|
@@ -1769,29 +1672,24 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1769
1672
|
* @param pageX {Integer} the x position in the page (in pixels).
|
|
1770
1673
|
* @param pageY {Integer} the y position in the page (in pixels).
|
|
1771
1674
|
*/
|
|
1772
|
-
_focusCellAtPagePos
|
|
1773
|
-
{
|
|
1675
|
+
_focusCellAtPagePos(pageX, pageY) {
|
|
1774
1676
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
1775
1677
|
|
|
1776
|
-
if (row != -1 && row != null)
|
|
1777
|
-
{
|
|
1678
|
+
if (row != -1 && row != null) {
|
|
1778
1679
|
// The pointer is over the data -> update the focus
|
|
1779
1680
|
var col = this._getColumnForPageX(pageX);
|
|
1780
1681
|
this.__table.setFocusedCell(col, row);
|
|
1781
1682
|
}
|
|
1782
1683
|
},
|
|
1783
1684
|
|
|
1784
|
-
|
|
1785
1685
|
/**
|
|
1786
1686
|
* Sets the currently focused cell.
|
|
1787
1687
|
*
|
|
1788
1688
|
* @param col {Integer} the model index of the focused cell's column.
|
|
1789
1689
|
* @param row {Integer} the model index of the focused cell's row.
|
|
1790
1690
|
*/
|
|
1791
|
-
setFocusedCell
|
|
1792
|
-
|
|
1793
|
-
if (!this.isEditing())
|
|
1794
|
-
{
|
|
1691
|
+
setFocusedCell(col, row) {
|
|
1692
|
+
if (!this.isEditing()) {
|
|
1795
1693
|
this.__tablePane.setFocusedCell(col, row, this.__updateContentPlanned);
|
|
1796
1694
|
|
|
1797
1695
|
this.__focusedCol = col;
|
|
@@ -1801,40 +1699,35 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1801
1699
|
}
|
|
1802
1700
|
},
|
|
1803
1701
|
|
|
1804
|
-
|
|
1805
1702
|
/**
|
|
1806
1703
|
* Returns the column of currently focused cell.
|
|
1807
1704
|
*
|
|
1808
1705
|
* @return {Integer} the model index of the focused cell's column.
|
|
1809
1706
|
*/
|
|
1810
|
-
getFocusedColumn
|
|
1707
|
+
getFocusedColumn() {
|
|
1811
1708
|
return this.__focusedCol;
|
|
1812
1709
|
},
|
|
1813
1710
|
|
|
1814
|
-
|
|
1815
1711
|
/**
|
|
1816
1712
|
* Returns the row of currently focused cell.
|
|
1817
1713
|
*
|
|
1818
1714
|
* @return {Integer} the model index of the focused cell's column.
|
|
1819
1715
|
*/
|
|
1820
|
-
getFocusedRow
|
|
1716
|
+
getFocusedRow() {
|
|
1821
1717
|
return this.__focusedRow;
|
|
1822
1718
|
},
|
|
1823
1719
|
|
|
1824
|
-
|
|
1825
1720
|
/**
|
|
1826
1721
|
* Scrolls a cell visible.
|
|
1827
1722
|
*
|
|
1828
1723
|
* @param col {Integer} the model index of the column the cell belongs to.
|
|
1829
1724
|
* @param row {Integer} the model index of the row the cell belongs to.
|
|
1830
1725
|
*/
|
|
1831
|
-
scrollCellVisible
|
|
1832
|
-
{
|
|
1726
|
+
scrollCellVisible(col, row) {
|
|
1833
1727
|
var paneModel = this.getTablePaneModel();
|
|
1834
1728
|
var xPos = paneModel.getX(col);
|
|
1835
1729
|
|
|
1836
|
-
if (xPos != -1)
|
|
1837
|
-
{
|
|
1730
|
+
if (xPos != -1) {
|
|
1838
1731
|
var clipperSize = this._paneClipper.getInnerSize();
|
|
1839
1732
|
if (!clipperSize) {
|
|
1840
1733
|
return;
|
|
@@ -1851,7 +1744,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1851
1744
|
var scrollY = this.getScrollY();
|
|
1852
1745
|
|
|
1853
1746
|
// NOTE: We don't use qx.lang.Number.limit, because min should win if max < min
|
|
1854
|
-
var minScrollX = Math.min(
|
|
1747
|
+
var minScrollX = Math.min(
|
|
1748
|
+
colLeft,
|
|
1749
|
+
colLeft + colWidth - clipperSize.width
|
|
1750
|
+
);
|
|
1751
|
+
|
|
1855
1752
|
var maxScrollX = colLeft;
|
|
1856
1753
|
this.setScrollX(Math.max(minScrollX, Math.min(maxScrollX, scrollX)));
|
|
1857
1754
|
|
|
@@ -1862,21 +1759,22 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1862
1759
|
}
|
|
1863
1760
|
|
|
1864
1761
|
var maxScrollY = rowTop;
|
|
1865
|
-
this.setScrollY(
|
|
1762
|
+
this.setScrollY(
|
|
1763
|
+
Math.max(minScrollY, Math.min(maxScrollY, scrollY)),
|
|
1764
|
+
true
|
|
1765
|
+
);
|
|
1866
1766
|
}
|
|
1867
1767
|
},
|
|
1868
1768
|
|
|
1869
|
-
|
|
1870
1769
|
/**
|
|
1871
1770
|
* Returns whether currently a cell is editing.
|
|
1872
1771
|
*
|
|
1873
1772
|
* @return {var} whether currently a cell is editing.
|
|
1874
1773
|
*/
|
|
1875
|
-
isEditing
|
|
1774
|
+
isEditing() {
|
|
1876
1775
|
return this._cellEditor != null;
|
|
1877
1776
|
},
|
|
1878
1777
|
|
|
1879
|
-
|
|
1880
1778
|
/**
|
|
1881
1779
|
* Starts editing the currently focused cell. Does nothing if already
|
|
1882
1780
|
* editing, if the column is not editable, or if the cell editor for the
|
|
@@ -1884,15 +1782,14 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1884
1782
|
*
|
|
1885
1783
|
* @return {Boolean} whether editing was started
|
|
1886
1784
|
*/
|
|
1887
|
-
startEditing
|
|
1888
|
-
{
|
|
1785
|
+
startEditing() {
|
|
1889
1786
|
var table = this.getTable();
|
|
1890
1787
|
var tableModel = table.getTableModel();
|
|
1891
1788
|
var col = this.__focusedCol;
|
|
1892
1789
|
|
|
1893
1790
|
if (
|
|
1894
1791
|
!this.isEditing() &&
|
|
1895
|
-
|
|
1792
|
+
col != null &&
|
|
1896
1793
|
tableModel.isColumnEditable(col)
|
|
1897
1794
|
) {
|
|
1898
1795
|
var row = this.__focusedRow;
|
|
@@ -1902,15 +1799,16 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1902
1799
|
// scroll cell into view
|
|
1903
1800
|
this.scrollCellVisible(col, row);
|
|
1904
1801
|
|
|
1905
|
-
this.__cellEditorFactory = table
|
|
1802
|
+
this.__cellEditorFactory = table
|
|
1803
|
+
.getTableColumnModel()
|
|
1804
|
+
.getCellEditorFactory(col);
|
|
1906
1805
|
|
|
1907
|
-
var cellInfo =
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
table : table
|
|
1806
|
+
var cellInfo = {
|
|
1807
|
+
col: col,
|
|
1808
|
+
row: row,
|
|
1809
|
+
xPos: xPos,
|
|
1810
|
+
value: value,
|
|
1811
|
+
table: table
|
|
1914
1812
|
};
|
|
1915
1813
|
|
|
1916
1814
|
// Get a cell editor
|
|
@@ -1922,13 +1820,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1922
1820
|
// editing takes place. Additionally, if the cell editor determines
|
|
1923
1821
|
// that it does not want to edit the particular cell being requested,
|
|
1924
1822
|
// it may return null to indicate that that cell is not editable.
|
|
1925
|
-
if (this._cellEditor === null)
|
|
1926
|
-
{
|
|
1823
|
+
if (this._cellEditor === null) {
|
|
1927
1824
|
// This cell is not editable even though its column is.
|
|
1928
1825
|
return false;
|
|
1929
|
-
}
|
|
1930
|
-
else if (this._cellEditor instanceof qx.ui.window.Window)
|
|
1931
|
-
{
|
|
1826
|
+
} else if (this._cellEditor instanceof qx.ui.window.Window) {
|
|
1932
1827
|
// It's a window. Ensure that it's modal.
|
|
1933
1828
|
this._cellEditor.setModal(true);
|
|
1934
1829
|
|
|
@@ -1943,7 +1838,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1943
1838
|
this._cellEditor.addListener(
|
|
1944
1839
|
"close",
|
|
1945
1840
|
this._onCellEditorModalWindowClose,
|
|
1946
|
-
this
|
|
1841
|
+
this
|
|
1842
|
+
);
|
|
1947
1843
|
|
|
1948
1844
|
// If there's a pre-open function defined for the table...
|
|
1949
1845
|
var f = table.getModalCellEditorPreOpenFunction();
|
|
@@ -1953,18 +1849,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1953
1849
|
|
|
1954
1850
|
// Open it now.
|
|
1955
1851
|
this._cellEditor.open();
|
|
1956
|
-
}
|
|
1957
|
-
else
|
|
1958
|
-
{
|
|
1852
|
+
} else {
|
|
1959
1853
|
// prevent tap event from bubbling up to the table
|
|
1960
|
-
this.__focusIndicatorPointerDownListener =
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1854
|
+
this.__focusIndicatorPointerDownListener =
|
|
1855
|
+
this.__focusIndicator.addListener(
|
|
1856
|
+
"pointerdown",
|
|
1857
|
+
function (e) {
|
|
1858
|
+
this.__lastPointerDownCell = {
|
|
1859
|
+
row: this.__focusedRow,
|
|
1860
|
+
col: this.__focusedCol
|
|
1861
|
+
};
|
|
1862
|
+
|
|
1863
|
+
e.stopPropagation();
|
|
1864
|
+
},
|
|
1865
|
+
this
|
|
1866
|
+
);
|
|
1968
1867
|
|
|
1969
1868
|
this._updateFocusIndicator(true);
|
|
1970
1869
|
this.__focusIndicator.add(this._cellEditor);
|
|
@@ -1984,15 +1883,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1984
1883
|
return false;
|
|
1985
1884
|
},
|
|
1986
1885
|
|
|
1987
|
-
|
|
1988
1886
|
/**
|
|
1989
1887
|
* Stops editing and writes the editor's value to the model.
|
|
1990
1888
|
*/
|
|
1991
|
-
stopEditing
|
|
1992
|
-
{
|
|
1889
|
+
stopEditing() {
|
|
1993
1890
|
// If the focus indicator is not being shown normally...
|
|
1994
|
-
if (!
|
|
1995
|
-
{
|
|
1891
|
+
if (!this.getShowCellFocusIndicator()) {
|
|
1996
1892
|
// ... then hide it again
|
|
1997
1893
|
this.__focusIndicator.setDecorator(null);
|
|
1998
1894
|
}
|
|
@@ -2000,56 +1896,58 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2000
1896
|
this.flushEditor(true);
|
|
2001
1897
|
},
|
|
2002
1898
|
|
|
2003
|
-
|
|
2004
1899
|
/**
|
|
2005
1900
|
* Writes the editor's value to the model
|
|
2006
1901
|
*
|
|
2007
1902
|
* @param cancel {Boolean ? false} Whether to also cancel
|
|
2008
1903
|
* editing before firing the 'dateEdited' event.
|
|
2009
1904
|
*/
|
|
2010
|
-
flushEditor
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
this.getTable()
|
|
1905
|
+
flushEditor(cancel) {
|
|
1906
|
+
if (this.isEditing()) {
|
|
1907
|
+
var value = this.__cellEditorFactory.getCellEditorValue(
|
|
1908
|
+
this._cellEditor
|
|
1909
|
+
);
|
|
1910
|
+
|
|
1911
|
+
var oldValue = this.getTable()
|
|
1912
|
+
.getTableModel()
|
|
1913
|
+
.getValue(this.__focusedCol, this.__focusedRow);
|
|
1914
|
+
this.getTable()
|
|
1915
|
+
.getTableModel()
|
|
1916
|
+
.setValue(this.__focusedCol, this.__focusedRow, value);
|
|
2017
1917
|
|
|
2018
1918
|
this.__table.focus();
|
|
2019
1919
|
|
|
2020
|
-
if(cancel) {
|
|
1920
|
+
if (cancel) {
|
|
2021
1921
|
this.cancelEditing();
|
|
2022
1922
|
}
|
|
2023
1923
|
|
|
2024
1924
|
// Fire an event containing the value change.
|
|
2025
|
-
this.__table.fireDataEvent("dataEdited",
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
});
|
|
1925
|
+
this.__table.fireDataEvent("dataEdited", {
|
|
1926
|
+
row: this.__focusedRow,
|
|
1927
|
+
col: this.__focusedCol,
|
|
1928
|
+
oldValue: oldValue,
|
|
1929
|
+
value: value
|
|
1930
|
+
});
|
|
2032
1931
|
}
|
|
2033
1932
|
},
|
|
2034
1933
|
|
|
2035
|
-
|
|
2036
1934
|
/**
|
|
2037
1935
|
* Stops editing without writing the editor's value to the model.
|
|
2038
1936
|
*/
|
|
2039
|
-
cancelEditing
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
{
|
|
2043
|
-
if (!(this._cellEditor instanceof qx.ui.window.Window))
|
|
2044
|
-
{
|
|
1937
|
+
cancelEditing() {
|
|
1938
|
+
if (this.isEditing()) {
|
|
1939
|
+
if (!(this._cellEditor instanceof qx.ui.window.Window)) {
|
|
2045
1940
|
this.__focusIndicator.removeState("editing");
|
|
2046
1941
|
this.__focusIndicator.setKeepActive(true);
|
|
2047
1942
|
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
1943
|
+
if (this.__focusIndicatorPointerDownListener !== null) {
|
|
1944
|
+
this.__focusIndicator.removeListenerById(
|
|
1945
|
+
this.__focusIndicatorPointerDownListener
|
|
1946
|
+
);
|
|
1947
|
+
|
|
1948
|
+
this.__focusIndicatorPointerDownListener = null;
|
|
1949
|
+
}
|
|
1950
|
+
this._updateFocusIndicator();
|
|
2053
1951
|
}
|
|
2054
1952
|
this._cellEditor.destroy();
|
|
2055
1953
|
this._cellEditor = null;
|
|
@@ -2057,17 +1955,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2057
1955
|
}
|
|
2058
1956
|
},
|
|
2059
1957
|
|
|
2060
|
-
|
|
2061
1958
|
/**
|
|
2062
1959
|
* Event handler. Called when the modal window of the cell editor closes.
|
|
2063
1960
|
*
|
|
2064
1961
|
* @param e {Map} the event.
|
|
2065
1962
|
*/
|
|
2066
|
-
_onCellEditorModalWindowClose
|
|
1963
|
+
_onCellEditorModalWindowClose(e) {
|
|
2067
1964
|
this.stopEditing();
|
|
2068
1965
|
},
|
|
2069
1966
|
|
|
2070
|
-
|
|
2071
1967
|
/**
|
|
2072
1968
|
* Returns the model index of the column the pointer is over or null if the pointer
|
|
2073
1969
|
* is not over a column.
|
|
@@ -2075,15 +1971,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2075
1971
|
* @param pageX {Integer} the x position of the pointer in the page (in pixels).
|
|
2076
1972
|
* @return {Integer} the model index of the column the pointer is over.
|
|
2077
1973
|
*/
|
|
2078
|
-
_getColumnForPageX
|
|
2079
|
-
{
|
|
1974
|
+
_getColumnForPageX(pageX) {
|
|
2080
1975
|
var columnModel = this.getTable().getTableColumnModel();
|
|
2081
1976
|
var paneModel = this.getTablePaneModel();
|
|
2082
1977
|
var colCount = paneModel.getColumnCount();
|
|
2083
1978
|
var currX = this.__tablePane.getContentLocation().left;
|
|
2084
1979
|
|
|
2085
|
-
for (var x=0; x<colCount; x++)
|
|
2086
|
-
{
|
|
1980
|
+
for (var x = 0; x < colCount; x++) {
|
|
2087
1981
|
var col = paneModel.getColumnAtX(x);
|
|
2088
1982
|
var colWidth = columnModel.getColumnWidth(col);
|
|
2089
1983
|
currX += colWidth;
|
|
@@ -2096,7 +1990,6 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2096
1990
|
return null;
|
|
2097
1991
|
},
|
|
2098
1992
|
|
|
2099
|
-
|
|
2100
1993
|
/**
|
|
2101
1994
|
* Returns the model index of the column that should be resized when dragging
|
|
2102
1995
|
* starts here. Returns -1 if the pointer is in no resize region of any column.
|
|
@@ -2104,9 +1997,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2104
1997
|
* @param pageX {Integer} the x position of the pointer in the page (in pixels).
|
|
2105
1998
|
* @return {Integer} the column index.
|
|
2106
1999
|
*/
|
|
2107
|
-
_getResizeColumnForPageX
|
|
2108
|
-
|
|
2109
|
-
|
|
2000
|
+
_getResizeColumnForPageX(pageX) {
|
|
2001
|
+
var contentLocation =
|
|
2002
|
+
this.__header.getContentLocation() ||
|
|
2003
|
+
this.__tablePane.getContentLocation();
|
|
2110
2004
|
if (contentLocation) {
|
|
2111
2005
|
var currX = contentLocation.left;
|
|
2112
2006
|
var columnModel = this.getTable().getTableColumnModel();
|
|
@@ -2119,7 +2013,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2119
2013
|
var colWidth = columnModel.getColumnWidth(col);
|
|
2120
2014
|
currX += colWidth;
|
|
2121
2015
|
|
|
2122
|
-
if (pageX >=
|
|
2016
|
+
if (pageX >= currX - regionRadius && pageX <= currX + regionRadius) {
|
|
2123
2017
|
return col;
|
|
2124
2018
|
}
|
|
2125
2019
|
}
|
|
@@ -2137,18 +2031,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2137
2031
|
* @param pageY {Integer} the pointer y position in the page.
|
|
2138
2032
|
* @return {Integer} the model index of the row the pointer is currently over.
|
|
2139
2033
|
*/
|
|
2140
|
-
_getRowForPagePos
|
|
2141
|
-
{
|
|
2034
|
+
_getRowForPagePos(pageX, pageY) {
|
|
2142
2035
|
var panePos = this.__tablePane.getContentLocation();
|
|
2143
2036
|
|
|
2144
|
-
if (panePos === null || pageX < panePos.left || pageX > panePos.right)
|
|
2145
|
-
{
|
|
2037
|
+
if (panePos === null || pageX < panePos.left || pageX > panePos.right) {
|
|
2146
2038
|
// There was no cell or header cell hit
|
|
2147
2039
|
return null;
|
|
2148
2040
|
}
|
|
2149
2041
|
|
|
2150
|
-
if (pageY >= panePos.top && pageY <= panePos.bottom)
|
|
2151
|
-
{
|
|
2042
|
+
if (pageY >= panePos.top && pageY <= panePos.bottom) {
|
|
2152
2043
|
// This event is in the pane -> Get the row
|
|
2153
2044
|
var rowHeight = this.getTable().getRowHeight();
|
|
2154
2045
|
|
|
@@ -2164,7 +2055,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2164
2055
|
var tableModel = this.getTable().getTableModel();
|
|
2165
2056
|
var rowCount = tableModel.getRowCount();
|
|
2166
2057
|
|
|
2167
|
-
return
|
|
2058
|
+
return row < rowCount ? row : null;
|
|
2168
2059
|
}
|
|
2169
2060
|
|
|
2170
2061
|
var headerPos = this.__header.getContentLocation();
|
|
@@ -2173,8 +2064,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2173
2064
|
headerPos !== null &&
|
|
2174
2065
|
pageY >= headerPos.top &&
|
|
2175
2066
|
pageY <= headerPos.bottom &&
|
|
2176
|
-
pageX <= headerPos.right
|
|
2177
|
-
{
|
|
2067
|
+
pageX <= headerPos.right
|
|
2068
|
+
) {
|
|
2178
2069
|
// This event is in the pane -> Return -1 for the header
|
|
2179
2070
|
return -1;
|
|
2180
2071
|
}
|
|
@@ -2182,7 +2073,6 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2182
2073
|
return null;
|
|
2183
2074
|
},
|
|
2184
2075
|
|
|
2185
|
-
|
|
2186
2076
|
/**
|
|
2187
2077
|
* Sets the widget that should be shown in the top right corner.
|
|
2188
2078
|
*
|
|
@@ -2191,8 +2081,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2191
2081
|
*
|
|
2192
2082
|
* @param widget {qx.ui.core.Widget} The widget to set. May be null.
|
|
2193
2083
|
*/
|
|
2194
|
-
setTopRightWidget
|
|
2195
|
-
{
|
|
2084
|
+
setTopRightWidget(widget) {
|
|
2196
2085
|
var oldWidget = this.__topRightWidget;
|
|
2197
2086
|
|
|
2198
2087
|
if (oldWidget != null) {
|
|
@@ -2206,37 +2095,33 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2206
2095
|
this.__topRightWidget = widget;
|
|
2207
2096
|
},
|
|
2208
2097
|
|
|
2209
|
-
|
|
2210
2098
|
/**
|
|
2211
2099
|
* Get the top right widget
|
|
2212
2100
|
*
|
|
2213
2101
|
* @return {qx.ui.core.Widget} The top right widget.
|
|
2214
2102
|
*/
|
|
2215
|
-
getTopRightWidget
|
|
2103
|
+
getTopRightWidget() {
|
|
2216
2104
|
return this.__topRightWidget;
|
|
2217
2105
|
},
|
|
2218
2106
|
|
|
2219
|
-
|
|
2220
2107
|
/**
|
|
2221
2108
|
* Returns the header.
|
|
2222
2109
|
*
|
|
2223
2110
|
* @return {qx.ui.table.pane.Header} the header.
|
|
2224
2111
|
*/
|
|
2225
|
-
getHeader
|
|
2112
|
+
getHeader() {
|
|
2226
2113
|
return this.__header;
|
|
2227
2114
|
},
|
|
2228
2115
|
|
|
2229
|
-
|
|
2230
2116
|
/**
|
|
2231
2117
|
* Returns the table pane.
|
|
2232
2118
|
*
|
|
2233
2119
|
* @return {qx.ui.table.pane.Pane} the table pane.
|
|
2234
2120
|
*/
|
|
2235
|
-
getTablePane
|
|
2121
|
+
getTablePane() {
|
|
2236
2122
|
return this.__tablePane;
|
|
2237
2123
|
},
|
|
2238
2124
|
|
|
2239
|
-
|
|
2240
2125
|
/**
|
|
2241
2126
|
* Get the rendered width of the vertical scroll bar. The return value is
|
|
2242
2127
|
* <code>0</code> if the scroll bar is invisible or not yet rendered.
|
|
@@ -2244,13 +2129,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2244
2129
|
* @internal
|
|
2245
2130
|
* @return {Integer} The width of the vertical scroll bar
|
|
2246
2131
|
*/
|
|
2247
|
-
getVerticalScrollBarWidth
|
|
2248
|
-
{
|
|
2132
|
+
getVerticalScrollBarWidth() {
|
|
2249
2133
|
var scrollBar = this.__verScrollBar;
|
|
2250
|
-
return scrollBar.isVisible() ?
|
|
2134
|
+
return scrollBar.isVisible() ? scrollBar.getSizeHint().width || 0 : 0;
|
|
2251
2135
|
},
|
|
2252
2136
|
|
|
2253
|
-
|
|
2254
2137
|
/**
|
|
2255
2138
|
* Returns which scrollbars are needed.
|
|
2256
2139
|
*
|
|
@@ -2262,15 +2145,18 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2262
2145
|
* {@link #HORIZONTAL_SCROLLBAR} or {@link #VERTICAL_SCROLLBAR}
|
|
2263
2146
|
* (combined by OR).
|
|
2264
2147
|
*/
|
|
2265
|
-
getNeededScrollBars
|
|
2266
|
-
{
|
|
2148
|
+
getNeededScrollBars(forceHorizontal, preventVertical) {
|
|
2267
2149
|
var verScrollBar = this.__verScrollBar;
|
|
2268
|
-
var verBarWidth =
|
|
2269
|
-
|
|
2150
|
+
var verBarWidth =
|
|
2151
|
+
verScrollBar.getSizeHint().width +
|
|
2152
|
+
verScrollBar.getMarginLeft() +
|
|
2153
|
+
verScrollBar.getMarginRight();
|
|
2270
2154
|
|
|
2271
2155
|
var horScrollBar = this.__horScrollBar;
|
|
2272
|
-
var horBarHeight =
|
|
2273
|
-
|
|
2156
|
+
var horBarHeight =
|
|
2157
|
+
horScrollBar.getSizeHint().height +
|
|
2158
|
+
horScrollBar.getMarginTop() +
|
|
2159
|
+
horScrollBar.getMarginBottom();
|
|
2274
2160
|
|
|
2275
2161
|
// Get the width and height of the view (without scroll bars)
|
|
2276
2162
|
var clipperSize = this._paneClipper.getInnerSize();
|
|
@@ -2306,7 +2192,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2306
2192
|
} else if (paneHeight > viewHeight) {
|
|
2307
2193
|
verNeeded = true;
|
|
2308
2194
|
|
|
2309
|
-
if (!preventVertical &&
|
|
2195
|
+
if (!preventVertical && paneWidth > viewWidth - verBarWidth) {
|
|
2310
2196
|
horNeeded = true;
|
|
2311
2197
|
}
|
|
2312
2198
|
}
|
|
@@ -2314,10 +2200,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2314
2200
|
// Create the mask
|
|
2315
2201
|
var horBar = qx.ui.table.pane.Scroller.HORIZONTAL_SCROLLBAR;
|
|
2316
2202
|
var verBar = qx.ui.table.pane.Scroller.VERTICAL_SCROLLBAR;
|
|
2317
|
-
return (
|
|
2203
|
+
return (
|
|
2204
|
+
(forceHorizontal || horNeeded ? horBar : 0) |
|
|
2205
|
+
(preventVertical || !verNeeded ? 0 : verBar)
|
|
2206
|
+
);
|
|
2318
2207
|
},
|
|
2319
2208
|
|
|
2320
|
-
|
|
2321
2209
|
/**
|
|
2322
2210
|
* Return the pane clipper. It is sometimes required for special activities
|
|
2323
2211
|
* such as tracking events for drag&drop.
|
|
@@ -2325,12 +2213,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2325
2213
|
* @return {qx.ui.table.pane.Clipper}
|
|
2326
2214
|
* The pane clipper for this scroller.
|
|
2327
2215
|
*/
|
|
2328
|
-
getPaneClipper
|
|
2329
|
-
{
|
|
2216
|
+
getPaneClipper() {
|
|
2330
2217
|
return this._paneClipper;
|
|
2331
2218
|
},
|
|
2332
2219
|
|
|
2333
|
-
|
|
2334
2220
|
/**
|
|
2335
2221
|
* Returns the scroll area container widget (which enables more precise
|
|
2336
2222
|
* operations e.g. bounds retrieval for drag session scrolling).
|
|
@@ -2339,50 +2225,42 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2339
2225
|
* @return {qx.ui.table.pane.Clipper}
|
|
2340
2226
|
* The pane clipper for this scroller.
|
|
2341
2227
|
*/
|
|
2342
|
-
getScrollAreaContainer
|
|
2228
|
+
getScrollAreaContainer() {
|
|
2343
2229
|
return this.getPaneClipper();
|
|
2344
2230
|
},
|
|
2345
2231
|
|
|
2346
|
-
|
|
2347
2232
|
// property apply method
|
|
2348
|
-
_applyScrollTimeout
|
|
2233
|
+
_applyScrollTimeout(value, old) {
|
|
2349
2234
|
this._startInterval(value);
|
|
2350
2235
|
},
|
|
2351
2236
|
|
|
2352
|
-
|
|
2353
2237
|
/**
|
|
2354
2238
|
* Starts the current running interval
|
|
2355
2239
|
*
|
|
2356
2240
|
* @param timeout {Integer} The timeout between two table updates
|
|
2357
2241
|
*/
|
|
2358
|
-
_startInterval
|
|
2359
|
-
{
|
|
2242
|
+
_startInterval(timeout) {
|
|
2360
2243
|
this.__timer.setInterval(timeout);
|
|
2361
2244
|
this.__timer.start();
|
|
2362
2245
|
},
|
|
2363
2246
|
|
|
2364
|
-
|
|
2365
2247
|
/**
|
|
2366
2248
|
* stops the current running interval
|
|
2367
2249
|
*/
|
|
2368
|
-
_stopInterval
|
|
2369
|
-
{
|
|
2250
|
+
_stopInterval() {
|
|
2370
2251
|
this.__timer.stop();
|
|
2371
2252
|
},
|
|
2372
2253
|
|
|
2373
|
-
|
|
2374
2254
|
/**
|
|
2375
2255
|
* Does a postponed update of the content.
|
|
2376
2256
|
*
|
|
2377
2257
|
* @see #_updateContent
|
|
2378
2258
|
*/
|
|
2379
|
-
_postponedUpdateContent
|
|
2380
|
-
{
|
|
2259
|
+
_postponedUpdateContent() {
|
|
2381
2260
|
//this.__updateContentPlanned = true;
|
|
2382
2261
|
this._updateContent();
|
|
2383
2262
|
},
|
|
2384
2263
|
|
|
2385
|
-
|
|
2386
2264
|
/**
|
|
2387
2265
|
* Timer event handler. Periodically checks whether a table update is
|
|
2388
2266
|
* required. The update interval is controlled by the {@link #scrollTimeout}
|
|
@@ -2390,22 +2268,18 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2390
2268
|
*
|
|
2391
2269
|
* @signature function()
|
|
2392
2270
|
*/
|
|
2393
|
-
_oninterval
|
|
2394
|
-
|
|
2395
|
-
if (this.__updateContentPlanned && !this.__tablePane._layoutPending)
|
|
2396
|
-
{
|
|
2271
|
+
_oninterval: qx.event.GlobalError.observeMethod(function () {
|
|
2272
|
+
if (this.__updateContentPlanned && !this.__tablePane._layoutPending) {
|
|
2397
2273
|
this.__updateContentPlanned = false;
|
|
2398
2274
|
this._updateContent();
|
|
2399
2275
|
}
|
|
2400
2276
|
}),
|
|
2401
2277
|
|
|
2402
|
-
|
|
2403
2278
|
/**
|
|
2404
2279
|
* Updates the content. Sets the right section the table pane should show and
|
|
2405
2280
|
* does the scrolling.
|
|
2406
2281
|
*/
|
|
2407
|
-
_updateContent
|
|
2408
|
-
{
|
|
2282
|
+
_updateContent() {
|
|
2409
2283
|
var paneSize = this._paneClipper.getInnerSize();
|
|
2410
2284
|
if (!paneSize) {
|
|
2411
2285
|
return;
|
|
@@ -2422,11 +2296,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2422
2296
|
|
|
2423
2297
|
var visibleRowCount = Math.ceil(paneHeight / rowHeight);
|
|
2424
2298
|
var paneOffset = 0;
|
|
2425
|
-
var firstVisibleRowComplete =
|
|
2426
|
-
|
|
2427
|
-
if (!firstVisibleRowComplete)
|
|
2428
|
-
{
|
|
2299
|
+
var firstVisibleRowComplete =
|
|
2300
|
+
this.getTable().getKeepFirstVisibleRowComplete();
|
|
2429
2301
|
|
|
2302
|
+
if (!firstVisibleRowComplete) {
|
|
2430
2303
|
// NOTE: We don't consider paneOffset, because this may cause alternating
|
|
2431
2304
|
// adding and deleting of one row when scrolling. Instead we add one row
|
|
2432
2305
|
// in every case.
|
|
@@ -2445,7 +2318,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2445
2318
|
|
|
2446
2319
|
// Avoid expensive calls to setScrollTop if
|
|
2447
2320
|
// scrolling is not needed
|
|
2448
|
-
if (!
|
|
2321
|
+
if (!firstVisibleRowComplete) {
|
|
2449
2322
|
this._paneClipper.scrollToY(paneOffset);
|
|
2450
2323
|
}
|
|
2451
2324
|
},
|
|
@@ -2455,42 +2328,48 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2455
2328
|
*
|
|
2456
2329
|
* @param editing {Boolean ? false} True if editing the cell
|
|
2457
2330
|
*/
|
|
2458
|
-
_updateFocusIndicator
|
|
2459
|
-
{
|
|
2331
|
+
_updateFocusIndicator(editing) {
|
|
2460
2332
|
var table = this.getTable();
|
|
2461
2333
|
|
|
2462
2334
|
if (!table.getEnabled()) {
|
|
2463
2335
|
return;
|
|
2464
2336
|
}
|
|
2465
2337
|
|
|
2466
|
-
this.__focusIndicator.moveToCell(
|
|
2338
|
+
this.__focusIndicator.moveToCell(
|
|
2339
|
+
this.__focusedCol,
|
|
2340
|
+
this.__focusedRow,
|
|
2341
|
+
editing
|
|
2342
|
+
);
|
|
2467
2343
|
}
|
|
2468
2344
|
},
|
|
2469
2345
|
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
2346
|
/*
|
|
2474
2347
|
*****************************************************************************
|
|
2475
2348
|
DESTRUCTOR
|
|
2476
2349
|
*****************************************************************************
|
|
2477
2350
|
*/
|
|
2478
2351
|
|
|
2479
|
-
destruct
|
|
2480
|
-
{
|
|
2352
|
+
destruct() {
|
|
2481
2353
|
this._stopInterval();
|
|
2482
2354
|
|
|
2483
2355
|
// this object was created by the table on init so we have to clean it up.
|
|
2484
2356
|
var tablePaneModel = this.getTablePaneModel();
|
|
2485
|
-
if (tablePaneModel)
|
|
2486
|
-
{
|
|
2357
|
+
if (tablePaneModel) {
|
|
2487
2358
|
tablePaneModel.dispose();
|
|
2488
2359
|
}
|
|
2489
2360
|
|
|
2490
2361
|
this.__lastPointerDownCell = this.__topRightWidget = this.__table = null;
|
|
2491
|
-
this._disposeObjects(
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2362
|
+
this._disposeObjects(
|
|
2363
|
+
"__horScrollBar",
|
|
2364
|
+
"__verScrollBar",
|
|
2365
|
+
"_headerClipper",
|
|
2366
|
+
"_paneClipper",
|
|
2367
|
+
"__focusIndicator",
|
|
2368
|
+
"__header",
|
|
2369
|
+
"__tablePane",
|
|
2370
|
+
"__top",
|
|
2371
|
+
"__timer",
|
|
2372
|
+
"__clipperContainer"
|
|
2373
|
+
);
|
|
2495
2374
|
}
|
|
2496
2375
|
});
|