@qooxdoo/framework 7.0.0-beta.5 → 7.0.0-beta.9
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 +3 -6
- package/Manifest.json +1 -1
- package/README.md +9 -3
- package/lib/compiler/compile-info.json +50 -48
- package/lib/compiler/index.js +6948 -4175
- package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
- package/lib/resource/qx/tool/loadsass.js +16 -13
- package/lib/resource/qx/tool/schema/compile-1-0-0.json +13 -13
- 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 +19 -4
- 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 +156 -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/io/exception/Protocol.js +25 -0
- 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 +418 -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 +27 -65
- 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 -66
- 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 -25
- 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 +103 -52
- 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 +15 -8
- 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 +18 -13
- package/source/class/qx/tool/cli/commands/Compile.js +633 -267
- 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 +75 -34
- package/source/class/qx/tool/cli/commands/Migrate.js +13 -7
- package/source/class/qx/tool/cli/commands/Package.js +67 -45
- 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 +220 -114
- 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 +427 -222
- 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 +215 -161
- 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 +40 -19
- 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 -103
- 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 +18 -5
- package/source/class/qx/tool/compiler/targets/meta/Uglify.js +54 -21
- 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 +88 -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 +35 -14
- 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 -121
- 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 +76 -119
- 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 +628 -983
- 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 +101 -125
- package/source/class/qx/ui/core/scroll/ScrollBar.js +86 -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 +65 -87
- package/source/class/qx/ui/form/Button.js +35 -73
- package/source/class/qx/ui/form/CheckBox.js +26 -48
- 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 +98 -121
- package/source/class/qx/ui/form/DateField.js +140 -181
- 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 +82 -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 +50 -77
- package/source/class/qx/ui/form/PasswordField.js +4 -6
- package/source/class/qx/ui/form/RadioButton.js +36 -72
- package/source/class/qx/ui/form/RadioButtonGroup.js +67 -82
- package/source/class/qx/ui/form/RadioGroup.js +92 -127
- 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 +62 -105
- package/source/class/qx/ui/form/Slider.js +202 -269
- package/source/class/qx/ui/form/Spinner.js +173 -217
- package/source/class/qx/ui/form/SplitButton.js +73 -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 +54 -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 +126 -131
- package/source/class/qx/ui/menu/Button.js +11 -25
- package/source/class/qx/ui/menu/ButtonLayout.js +49 -37
- package/source/class/qx/ui/menu/CheckBox.js +21 -46
- package/source/class/qx/ui/menu/Layout.js +45 -51
- package/source/class/qx/ui/menu/Manager.js +131 -209
- package/source/class/qx/ui/menu/Menu.js +180 -265
- package/source/class/qx/ui/menu/MenuSlideBar.js +13 -20
- package/source/class/qx/ui/menu/RadioButton.js +29 -51
- package/source/class/qx/ui/menu/Separator.js +9 -16
- package/source/class/qx/ui/menubar/Button.js +23 -41
- package/source/class/qx/ui/menubar/MenuBar.js +9 -13
- 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 +20 -30
- package/source/class/qx/ui/splitpane/HLayout.js +53 -49
- package/source/class/qx/ui/splitpane/Pane.js +112 -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 +556 -748
- 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 +78 -73
- package/source/class/qx/ui/table/cellrenderer/AbstractImage.js +65 -84
- 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 +36 -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 +45 -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 -659
- package/source/class/qx/ui/table/rowrenderer/Default.js +75 -86
- 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 +48 -79
- package/source/class/qx/ui/tabview/TabButton.js +45 -72
- package/source/class/qx/ui/tabview/TabView.js +94 -141
- package/source/class/qx/ui/toolbar/Button.js +13 -18
- package/source/class/qx/ui/toolbar/CheckBox.js +13 -17
- 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 +12 -19
- package/source/class/qx/ui/toolbar/Separator.js +15 -25
- package/source/class/qx/ui/toolbar/SplitButton.js +19 -28
- package/source/class/qx/ui/toolbar/ToolBar.js +182 -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 +250 -351
- 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 +102 -69
- 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/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/loadsass.js +16 -13
- package/source/resource/qx/tool/schema/compile-1-0-0.json +13 -13
- 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/translation/hr.po +297 -0
- package/lib/resource/qx/static/blank.gif +0 -0
- 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/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
|
@@ -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,18 +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
660
|
|
|
701
|
-
if (rowCount != this.__lastRowCount)
|
|
702
|
-
{
|
|
661
|
+
if (rowCount != this.__lastRowCount) {
|
|
703
662
|
this.updateVerScrollBarMaximum();
|
|
704
|
-
|
|
663
|
+
|
|
705
664
|
const focusedRow = this.getFocusedRow();
|
|
706
|
-
if (focusedRow !== null && focusedRow >= rowCount)
|
|
707
|
-
{
|
|
665
|
+
if (focusedRow !== null && focusedRow >= rowCount) {
|
|
708
666
|
if (rowCount == 0) {
|
|
709
667
|
this.setFocusedCell(null, null);
|
|
710
668
|
} else {
|
|
@@ -715,49 +673,41 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
715
673
|
}
|
|
716
674
|
},
|
|
717
675
|
|
|
718
|
-
|
|
719
676
|
/**
|
|
720
677
|
* Event handler. Called when the selection has changed.
|
|
721
678
|
*/
|
|
722
|
-
onSelectionChanged
|
|
679
|
+
onSelectionChanged() {
|
|
723
680
|
this.__tablePane.onSelectionChanged();
|
|
724
681
|
},
|
|
725
682
|
|
|
726
|
-
|
|
727
683
|
/**
|
|
728
684
|
* Event handler. Called when the table gets or looses the focus.
|
|
729
685
|
*/
|
|
730
|
-
onFocusChanged
|
|
686
|
+
onFocusChanged() {
|
|
731
687
|
this.__tablePane.onFocusChanged();
|
|
732
688
|
},
|
|
733
689
|
|
|
734
|
-
|
|
735
690
|
/**
|
|
736
691
|
* Event handler. Called when the table model meta data has changed.
|
|
737
692
|
*
|
|
738
693
|
*/
|
|
739
|
-
onTableModelMetaDataChanged
|
|
740
|
-
{
|
|
694
|
+
onTableModelMetaDataChanged() {
|
|
741
695
|
this.__header.onTableModelMetaDataChanged();
|
|
742
696
|
this.__tablePane.onTableModelMetaDataChanged();
|
|
743
697
|
},
|
|
744
698
|
|
|
745
|
-
|
|
746
699
|
/**
|
|
747
700
|
* Event handler. Called when the pane model has changed.
|
|
748
701
|
*/
|
|
749
|
-
_onPaneModelChanged
|
|
750
|
-
{
|
|
702
|
+
_onPaneModelChanged() {
|
|
751
703
|
this.__header.onPaneModelChanged();
|
|
752
704
|
this.__tablePane.onPaneModelChanged();
|
|
753
705
|
},
|
|
754
706
|
|
|
755
|
-
|
|
756
707
|
/**
|
|
757
708
|
* Event listener for the pane clipper's resize event
|
|
758
709
|
*/
|
|
759
|
-
_onResizePane
|
|
760
|
-
{
|
|
710
|
+
_onResizePane() {
|
|
761
711
|
this.updateHorScrollBarMaximum();
|
|
762
712
|
this.updateVerScrollBarMaximum();
|
|
763
713
|
|
|
@@ -767,13 +717,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
767
717
|
this.__table._updateScrollBarVisibility();
|
|
768
718
|
},
|
|
769
719
|
|
|
770
|
-
|
|
771
720
|
/**
|
|
772
721
|
* Updates the maximum of the horizontal scroll bar, so it corresponds to the
|
|
773
722
|
* total width of the columns in the table pane.
|
|
774
723
|
*/
|
|
775
|
-
updateHorScrollBarMaximum
|
|
776
|
-
{
|
|
724
|
+
updateHorScrollBarMaximum() {
|
|
777
725
|
var paneSize = this._paneClipper.getInnerSize();
|
|
778
726
|
if (!paneSize) {
|
|
779
727
|
// will be called on the next resize event again
|
|
@@ -783,8 +731,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
783
731
|
|
|
784
732
|
var scrollBar = this.__horScrollBar;
|
|
785
733
|
|
|
786
|
-
if (paneSize.width < scrollSize)
|
|
787
|
-
{
|
|
734
|
+
if (paneSize.width < scrollSize) {
|
|
788
735
|
var max = Math.max(0, scrollSize - paneSize.width);
|
|
789
736
|
|
|
790
737
|
scrollBar.setMaximum(max);
|
|
@@ -792,22 +739,18 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
792
739
|
|
|
793
740
|
var pos = scrollBar.getPosition();
|
|
794
741
|
scrollBar.setPosition(Math.min(pos, max));
|
|
795
|
-
}
|
|
796
|
-
else
|
|
797
|
-
{
|
|
742
|
+
} else {
|
|
798
743
|
scrollBar.setMaximum(0);
|
|
799
744
|
scrollBar.setKnobFactor(1);
|
|
800
745
|
scrollBar.setPosition(0);
|
|
801
746
|
}
|
|
802
747
|
},
|
|
803
748
|
|
|
804
|
-
|
|
805
749
|
/**
|
|
806
750
|
* Updates the maximum of the vertical scroll bar, so it corresponds to the
|
|
807
751
|
* number of rows in the table.
|
|
808
752
|
*/
|
|
809
|
-
updateVerScrollBarMaximum
|
|
810
|
-
{
|
|
753
|
+
updateVerScrollBarMaximum() {
|
|
811
754
|
var paneSize = this._paneClipper.getInnerSize();
|
|
812
755
|
if (!paneSize) {
|
|
813
756
|
// will be called on the next resize event again
|
|
@@ -825,8 +768,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
825
768
|
var scrollSize = rowCount * rowHeight;
|
|
826
769
|
var scrollBar = this.__verScrollBar;
|
|
827
770
|
|
|
828
|
-
if (paneSize.height < scrollSize)
|
|
829
|
-
{
|
|
771
|
+
if (paneSize.height < scrollSize) {
|
|
830
772
|
var max = Math.max(0, scrollSize - paneSize.height);
|
|
831
773
|
|
|
832
774
|
scrollBar.setMaximum(max);
|
|
@@ -834,53 +776,44 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
834
776
|
|
|
835
777
|
var pos = scrollBar.getPosition();
|
|
836
778
|
scrollBar.setPosition(Math.min(pos, max));
|
|
837
|
-
}
|
|
838
|
-
else
|
|
839
|
-
{
|
|
779
|
+
} else {
|
|
840
780
|
scrollBar.setMaximum(0);
|
|
841
781
|
scrollBar.setKnobFactor(1);
|
|
842
782
|
scrollBar.setPosition(0);
|
|
843
783
|
}
|
|
844
784
|
},
|
|
845
785
|
|
|
846
|
-
|
|
847
786
|
/**
|
|
848
787
|
* Event handler. Called when the table property "keepFirstVisibleRowComplete"
|
|
849
788
|
* changed.
|
|
850
789
|
*/
|
|
851
|
-
onKeepFirstVisibleRowCompleteChanged
|
|
852
|
-
{
|
|
790
|
+
onKeepFirstVisibleRowCompleteChanged() {
|
|
853
791
|
this.updateVerScrollBarMaximum();
|
|
854
792
|
this._updateContent();
|
|
855
793
|
},
|
|
856
794
|
|
|
857
|
-
|
|
858
795
|
/**
|
|
859
796
|
* Event handler for the scroller's appear event
|
|
860
797
|
*/
|
|
861
|
-
_onAppear
|
|
798
|
+
_onAppear() {
|
|
862
799
|
// after the Scroller appears we start the interval again
|
|
863
800
|
this._startInterval(this.getScrollTimeout());
|
|
864
801
|
},
|
|
865
802
|
|
|
866
|
-
|
|
867
803
|
/**
|
|
868
804
|
* Event handler for the disappear event
|
|
869
805
|
*/
|
|
870
|
-
_onDisappear
|
|
871
|
-
{
|
|
806
|
+
_onDisappear() {
|
|
872
807
|
// before the scroller disappears we need to stop it
|
|
873
808
|
this._stopInterval();
|
|
874
809
|
},
|
|
875
810
|
|
|
876
|
-
|
|
877
811
|
/**
|
|
878
812
|
* Event handler. Called when the horizontal scroll bar moved.
|
|
879
813
|
*
|
|
880
814
|
* @param e {Map} the event.
|
|
881
815
|
*/
|
|
882
|
-
_onScrollX
|
|
883
|
-
{
|
|
816
|
+
_onScrollX(e) {
|
|
884
817
|
var scrollLeft = e.getData();
|
|
885
818
|
|
|
886
819
|
this.fireDataEvent("changeScrollX", scrollLeft, e.getOldData());
|
|
@@ -888,15 +821,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
888
821
|
this._paneClipper.scrollToX(scrollLeft);
|
|
889
822
|
},
|
|
890
823
|
|
|
891
|
-
|
|
892
824
|
/**
|
|
893
825
|
* Event handler. Called when the vertical scroll bar moved.
|
|
894
826
|
*
|
|
895
827
|
* @param e {Map} the event.
|
|
896
828
|
*/
|
|
897
|
-
__inOnScrollY
|
|
898
|
-
_onScrollY
|
|
899
|
-
{
|
|
829
|
+
__inOnScrollY: false,
|
|
830
|
+
_onScrollY(e) {
|
|
900
831
|
if (this.__inOnScrollY) {
|
|
901
832
|
return;
|
|
902
833
|
}
|
|
@@ -905,26 +836,29 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
905
836
|
// calculate delta so that one row is scrolled at an minimum
|
|
906
837
|
var rowHeight = this.getTable().getRowHeight();
|
|
907
838
|
var delta = e.getData() - e.getOldData();
|
|
908
|
-
if (
|
|
909
|
-
delta =
|
|
910
|
-
|
|
911
|
-
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()) {
|
|
912
843
|
scrollbar.setPosition(delta);
|
|
913
844
|
}
|
|
914
845
|
}
|
|
915
846
|
this.__inOnScrollY = false;
|
|
916
|
-
this.fireDataEvent(
|
|
847
|
+
this.fireDataEvent(
|
|
848
|
+
"changeScrollY",
|
|
849
|
+
scrollbar.getPosition(),
|
|
850
|
+
e.getOldData()
|
|
851
|
+
);
|
|
852
|
+
|
|
917
853
|
this._postponedUpdateContent();
|
|
918
854
|
},
|
|
919
855
|
|
|
920
|
-
|
|
921
856
|
/**
|
|
922
857
|
* Event handler. Called when the user moved the mouse wheel.
|
|
923
858
|
*
|
|
924
859
|
* @param e {qx.event.type.Roll} the event.
|
|
925
860
|
*/
|
|
926
|
-
_onRoll
|
|
927
|
-
{
|
|
861
|
+
_onRoll(e) {
|
|
928
862
|
var table = this.getTable();
|
|
929
863
|
|
|
930
864
|
if (e.getPointerType() == "mouse" || !table.getEnabled()) {
|
|
@@ -941,7 +875,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
941
875
|
}
|
|
942
876
|
this.__verScrollBar.scrollBy(parseInt(delta.y, 10));
|
|
943
877
|
|
|
944
|
-
var scrolled =
|
|
878
|
+
var scrolled =
|
|
879
|
+
delta.y != 0 && !this.__isAtEdge(this.__verScrollBar, delta.y);
|
|
945
880
|
|
|
946
881
|
// horizontal scrolling
|
|
947
882
|
// normalize that at least one step is scrolled at a time
|
|
@@ -954,10 +889,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
954
889
|
|
|
955
890
|
// Update the focus
|
|
956
891
|
if (this.__lastPointerPageX && this.getFocusCellOnPointerMove()) {
|
|
957
|
-
this._focusCellAtPagePos(
|
|
892
|
+
this._focusCellAtPagePos(
|
|
893
|
+
this.__lastPointerPageX,
|
|
894
|
+
this.__lastPointerPageY
|
|
895
|
+
);
|
|
958
896
|
}
|
|
959
897
|
|
|
960
|
-
scrolled =
|
|
898
|
+
scrolled =
|
|
899
|
+
scrolled ||
|
|
900
|
+
(delta.x != 0 && !this.__isAtEdge(this.__horScrollBar, delta.x));
|
|
961
901
|
|
|
962
902
|
// pass the event to the parent if the scrollbar is at an edge
|
|
963
903
|
if (scrolled) {
|
|
@@ -967,71 +907,84 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
967
907
|
}
|
|
968
908
|
},
|
|
969
909
|
|
|
970
|
-
|
|
971
910
|
/**
|
|
972
911
|
* Checks if the table has been scrolled.
|
|
973
912
|
* @param scrollBar {qx.ui.core.scroll.IScrollBar} The scrollbar to check
|
|
974
913
|
* @param delta {Number} The scroll delta.
|
|
975
914
|
* @return {Boolean} <code>true</code>, if the scrolling is a the edge
|
|
976
915
|
*/
|
|
977
|
-
__isAtEdge
|
|
916
|
+
__isAtEdge(scrollBar, delta) {
|
|
978
917
|
var position = scrollBar.getPosition();
|
|
979
|
-
return (
|
|
918
|
+
return (
|
|
919
|
+
(delta < 0 && position <= 0) ||
|
|
920
|
+
(delta > 0 && position >= scrollBar.getMaximum())
|
|
921
|
+
);
|
|
980
922
|
},
|
|
981
923
|
|
|
982
|
-
|
|
983
924
|
/**
|
|
984
925
|
* Common column resize logic.
|
|
985
926
|
*
|
|
986
927
|
* @param pageX {Integer} the current pointer x position.
|
|
987
928
|
*/
|
|
988
|
-
__handleResizeColumn
|
|
989
|
-
{
|
|
929
|
+
__handleResizeColumn(pageX) {
|
|
990
930
|
var table = this.getTable();
|
|
991
931
|
// We are currently resizing -> Update the position
|
|
992
|
-
var headerCell = this.__header.getHeaderWidgetAtColumn(
|
|
932
|
+
var headerCell = this.__header.getHeaderWidgetAtColumn(
|
|
933
|
+
this.__resizeColumn
|
|
934
|
+
);
|
|
935
|
+
|
|
993
936
|
var minColumnWidth = headerCell.getSizeHint().minWidth;
|
|
994
937
|
|
|
995
|
-
var newWidth = Math.max(
|
|
938
|
+
var newWidth = Math.max(
|
|
939
|
+
minColumnWidth,
|
|
940
|
+
this.__lastResizeWidth + pageX - this.__lastResizePointerPageX
|
|
941
|
+
);
|
|
996
942
|
|
|
997
943
|
if (this.getLiveResize()) {
|
|
998
944
|
var columnModel = table.getTableColumnModel();
|
|
999
945
|
columnModel.setColumnWidth(this.__resizeColumn, newWidth, true);
|
|
1000
946
|
} else {
|
|
1001
947
|
var paneModel = this.getTablePaneModel();
|
|
1002
|
-
this._showResizeLine(
|
|
948
|
+
this._showResizeLine(
|
|
949
|
+
paneModel.getColumnLeft(this.__resizeColumn) + newWidth
|
|
950
|
+
);
|
|
1003
951
|
}
|
|
1004
952
|
|
|
1005
953
|
this.__lastResizePointerPageX += newWidth - this.__lastResizeWidth;
|
|
1006
954
|
this.__lastResizeWidth = newWidth;
|
|
1007
955
|
},
|
|
1008
956
|
|
|
1009
|
-
|
|
1010
957
|
/**
|
|
1011
958
|
* Common column move logic.
|
|
1012
959
|
*
|
|
1013
960
|
* @param pageX {Integer} the current pointer x position.
|
|
1014
961
|
*
|
|
1015
962
|
*/
|
|
1016
|
-
__handleMoveColumn
|
|
1017
|
-
{
|
|
963
|
+
__handleMoveColumn(pageX) {
|
|
1018
964
|
// We are moving a column
|
|
1019
965
|
|
|
1020
966
|
// Check whether we moved outside the tap tolerance so we can start
|
|
1021
967
|
// showing the column move feedback
|
|
1022
968
|
// (showing the column move feedback prevents the ontap event)
|
|
1023
969
|
var tapTolerance = qx.ui.table.pane.Scroller.TAP_TOLERANCE;
|
|
1024
|
-
if (
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
970
|
+
if (
|
|
971
|
+
this.__header.isShowingColumnMoveFeedback() ||
|
|
972
|
+
pageX > this.__lastMovePointerPageX + tapTolerance ||
|
|
973
|
+
pageX < this.__lastMovePointerPageX - tapTolerance
|
|
974
|
+
) {
|
|
1028
975
|
this.__lastMoveColPos += pageX - this.__lastMovePointerPageX;
|
|
1029
976
|
|
|
1030
|
-
this.__header.showColumnMoveFeedback(
|
|
977
|
+
this.__header.showColumnMoveFeedback(
|
|
978
|
+
this._moveColumn,
|
|
979
|
+
this.__lastMoveColPos
|
|
980
|
+
);
|
|
1031
981
|
|
|
1032
982
|
// Get the responsible scroller
|
|
1033
983
|
var targetScroller = this.__table.getTablePaneScrollerAtPageX(pageX);
|
|
1034
|
-
if (
|
|
984
|
+
if (
|
|
985
|
+
this._lastMoveTargetScroller &&
|
|
986
|
+
this._lastMoveTargetScroller != targetScroller
|
|
987
|
+
) {
|
|
1035
988
|
this._lastMoveTargetScroller.hideColumnMoveFeedback();
|
|
1036
989
|
}
|
|
1037
990
|
if (targetScroller != null) {
|
|
@@ -1045,17 +998,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1045
998
|
}
|
|
1046
999
|
},
|
|
1047
1000
|
|
|
1048
|
-
|
|
1049
1001
|
/**
|
|
1050
1002
|
* Event handler. Called when the user moved the pointer over the header.
|
|
1051
1003
|
*
|
|
1052
1004
|
* @param e {Map} the event.
|
|
1053
1005
|
*/
|
|
1054
|
-
_onPointermoveHeader
|
|
1055
|
-
{
|
|
1006
|
+
_onPointermoveHeader(e) {
|
|
1056
1007
|
var table = this.getTable();
|
|
1057
1008
|
|
|
1058
|
-
if (!
|
|
1009
|
+
if (!table.getEnabled()) {
|
|
1059
1010
|
return;
|
|
1060
1011
|
}
|
|
1061
1012
|
|
|
@@ -1070,29 +1021,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1070
1021
|
this.__lastPointerPageX = pageX;
|
|
1071
1022
|
this.__lastPointerPageY = pageY;
|
|
1072
1023
|
|
|
1073
|
-
if (this.__resizeColumn != null)
|
|
1074
|
-
{
|
|
1024
|
+
if (this.__resizeColumn != null) {
|
|
1075
1025
|
// We are currently resizing -> Update the position
|
|
1076
1026
|
this.__handleResizeColumn(pageX);
|
|
1077
1027
|
useResizeCursor = true;
|
|
1078
1028
|
e.stopPropagation();
|
|
1079
|
-
}
|
|
1080
|
-
else if (this._moveColumn != null)
|
|
1081
|
-
{
|
|
1029
|
+
} else if (this._moveColumn != null) {
|
|
1082
1030
|
// We are moving a column
|
|
1083
1031
|
this.__handleMoveColumn(pageX);
|
|
1084
1032
|
e.stopPropagation();
|
|
1085
|
-
}
|
|
1086
|
-
else
|
|
1087
|
-
{
|
|
1033
|
+
} else {
|
|
1088
1034
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1089
|
-
if (resizeCol != -1)
|
|
1090
|
-
{
|
|
1035
|
+
if (resizeCol != -1) {
|
|
1091
1036
|
// The pointer is over a resize region -> Show the right cursor
|
|
1092
1037
|
useResizeCursor = true;
|
|
1093
|
-
}
|
|
1094
|
-
else
|
|
1095
|
-
{
|
|
1038
|
+
} else {
|
|
1096
1039
|
var tableModel = table.getTableModel();
|
|
1097
1040
|
var col = this._getColumnForPageX(pageX);
|
|
1098
1041
|
if (col != null && tableModel.isColumnSortable(col)) {
|
|
@@ -1107,17 +1050,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1107
1050
|
this.__header.setPointerOverColumn(pointerOverColumn);
|
|
1108
1051
|
},
|
|
1109
1052
|
|
|
1110
|
-
|
|
1111
1053
|
/**
|
|
1112
1054
|
* Event handler. Called when the user moved the pointer over the pane.
|
|
1113
1055
|
*
|
|
1114
1056
|
* @param e {Map} the event.
|
|
1115
1057
|
*/
|
|
1116
|
-
_onPointermovePane
|
|
1117
|
-
{
|
|
1058
|
+
_onPointermovePane(e) {
|
|
1118
1059
|
var table = this.getTable();
|
|
1119
1060
|
|
|
1120
|
-
if (!
|
|
1061
|
+
if (!table.getEnabled()) {
|
|
1121
1062
|
return;
|
|
1122
1063
|
}
|
|
1123
1064
|
|
|
@@ -1131,11 +1072,9 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1131
1072
|
this.__lastPointerPageX = pageX;
|
|
1132
1073
|
this.__lastPointerPageY = pageY;
|
|
1133
1074
|
|
|
1134
|
-
|
|
1135
1075
|
var useResizeCursor = false;
|
|
1136
1076
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1137
|
-
if (resizeCol != -1)
|
|
1138
|
-
{
|
|
1077
|
+
if (resizeCol != -1) {
|
|
1139
1078
|
// The pointer is over a resize region -> Show the right cursor
|
|
1140
1079
|
useResizeCursor = true;
|
|
1141
1080
|
}
|
|
@@ -1143,7 +1082,6 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1143
1082
|
this.getApplicationRoot().setGlobalCursor(cursor);
|
|
1144
1083
|
this.setCursor(cursor);
|
|
1145
1084
|
|
|
1146
|
-
|
|
1147
1085
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
1148
1086
|
if (row != null && this._getColumnForPageX(pageX) != null) {
|
|
1149
1087
|
// The pointer is over the data -> update the focus
|
|
@@ -1154,15 +1092,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1154
1092
|
this.__header.setPointerOverColumn(null);
|
|
1155
1093
|
},
|
|
1156
1094
|
|
|
1157
|
-
|
|
1158
1095
|
/**
|
|
1159
1096
|
* Event handler. Called when the user pressed a pointer button over the header.
|
|
1160
1097
|
*
|
|
1161
1098
|
* @param e {Map} the event.
|
|
1162
1099
|
*/
|
|
1163
|
-
_onPointerdownHeader
|
|
1164
|
-
|
|
1165
|
-
if (! this.getTable().getEnabled()) {
|
|
1100
|
+
_onPointerdownHeader(e) {
|
|
1101
|
+
if (!this.getTable().getEnabled()) {
|
|
1166
1102
|
return;
|
|
1167
1103
|
}
|
|
1168
1104
|
|
|
@@ -1170,33 +1106,27 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1170
1106
|
|
|
1171
1107
|
// pointer is in header
|
|
1172
1108
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1173
|
-
if (resizeCol != -1)
|
|
1174
|
-
{
|
|
1109
|
+
if (resizeCol != -1) {
|
|
1175
1110
|
// The pointer is over a resize region -> Start resizing
|
|
1176
1111
|
this._startResizeHeader(resizeCol, pageX);
|
|
1177
1112
|
e.stop();
|
|
1178
|
-
}
|
|
1179
|
-
else
|
|
1180
|
-
{
|
|
1113
|
+
} else {
|
|
1181
1114
|
// The pointer is not in a resize region
|
|
1182
1115
|
var moveCol = this._getColumnForPageX(pageX);
|
|
1183
|
-
if (moveCol != null)
|
|
1184
|
-
{
|
|
1116
|
+
if (moveCol != null) {
|
|
1185
1117
|
this._startMoveHeader(moveCol, pageX);
|
|
1186
1118
|
e.stop();
|
|
1187
1119
|
}
|
|
1188
1120
|
}
|
|
1189
1121
|
},
|
|
1190
1122
|
|
|
1191
|
-
|
|
1192
1123
|
/**
|
|
1193
1124
|
* Start a resize session of the header.
|
|
1194
1125
|
*
|
|
1195
1126
|
* @param resizeCol {Integer} the column index
|
|
1196
1127
|
* @param pageX {Integer} x coordinate of the pointer event
|
|
1197
1128
|
*/
|
|
1198
|
-
_startResizeHeader
|
|
1199
|
-
{
|
|
1129
|
+
_startResizeHeader(resizeCol, pageX) {
|
|
1200
1130
|
var columnModel = this.getTable().getTableColumnModel();
|
|
1201
1131
|
|
|
1202
1132
|
// The pointer is over a resize region -> Start resizing
|
|
@@ -1206,15 +1136,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1206
1136
|
this._headerClipper.capture();
|
|
1207
1137
|
},
|
|
1208
1138
|
|
|
1209
|
-
|
|
1210
1139
|
/**
|
|
1211
1140
|
* Start a move session of the header.
|
|
1212
1141
|
*
|
|
1213
1142
|
* @param moveCol {Integer} the column index
|
|
1214
1143
|
* @param pageX {Integer} x coordinate of the pointer event
|
|
1215
1144
|
*/
|
|
1216
|
-
_startMoveHeader
|
|
1217
|
-
{
|
|
1145
|
+
_startMoveHeader(moveCol, pageX) {
|
|
1218
1146
|
// Prepare column moving
|
|
1219
1147
|
this._moveColumn = moveCol;
|
|
1220
1148
|
this.__lastMovePointerPageX = pageX;
|
|
@@ -1222,15 +1150,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1222
1150
|
this._headerClipper.capture();
|
|
1223
1151
|
},
|
|
1224
1152
|
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
1153
|
/**
|
|
1228
1154
|
* Event handler. Called when the user pressed a pointer button over the pane.
|
|
1229
1155
|
*
|
|
1230
1156
|
* @param e {Map} the event.
|
|
1231
1157
|
*/
|
|
1232
|
-
_onPointerdownPane
|
|
1233
|
-
{
|
|
1158
|
+
_onPointerdownPane(e) {
|
|
1234
1159
|
var table = this.getTable();
|
|
1235
1160
|
|
|
1236
1161
|
if (!table.getEnabled()) {
|
|
@@ -1245,8 +1170,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1245
1170
|
|
|
1246
1171
|
// pointer is in header
|
|
1247
1172
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1248
|
-
if (resizeCol != -1)
|
|
1249
|
-
{
|
|
1173
|
+
if (resizeCol != -1) {
|
|
1250
1174
|
// The pointer is over a resize region -> Start resizing
|
|
1251
1175
|
this._startResizeHeader(resizeCol, pageX);
|
|
1252
1176
|
e.stop();
|
|
@@ -1257,8 +1181,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1257
1181
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
1258
1182
|
var col = this._getColumnForPageX(pageX);
|
|
1259
1183
|
|
|
1260
|
-
if (row !== null)
|
|
1261
|
-
{
|
|
1184
|
+
if (row !== null) {
|
|
1262
1185
|
// The focus indicator blocks the tap event on the scroller so we
|
|
1263
1186
|
// store the current cell and listen for the pointerup event on the
|
|
1264
1187
|
// focus indicator
|
|
@@ -1273,8 +1196,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1273
1196
|
// Windows issues it late) so no one may clear these values.
|
|
1274
1197
|
//
|
|
1275
1198
|
this.__lastPointerDownCell = {
|
|
1276
|
-
row
|
|
1277
|
-
col
|
|
1199
|
+
row: row,
|
|
1200
|
+
col: col
|
|
1278
1201
|
};
|
|
1279
1202
|
|
|
1280
1203
|
// On the other hand, we need to know if we've issued the tap event
|
|
@@ -1285,29 +1208,32 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1285
1208
|
}
|
|
1286
1209
|
},
|
|
1287
1210
|
|
|
1288
|
-
|
|
1289
1211
|
/**
|
|
1290
1212
|
* Event handler for the focus indicator's pointerup event
|
|
1291
1213
|
*
|
|
1292
1214
|
* @param e {qx.event.type.Pointer} The pointer event
|
|
1293
1215
|
*/
|
|
1294
|
-
_onPointerupFocusIndicator
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
{
|
|
1302
|
-
this.fireEvent(
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
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
|
+
|
|
1311
1237
|
this.__firedTapEvent = true;
|
|
1312
1238
|
} else if (!this.isEditing()) {
|
|
1313
1239
|
// if no cellTap event should be fired, act like a pointerdown which
|
|
@@ -1316,7 +1242,6 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1316
1242
|
}
|
|
1317
1243
|
},
|
|
1318
1244
|
|
|
1319
|
-
|
|
1320
1245
|
/**
|
|
1321
1246
|
* Event handler. Called when the event capturing of the header changed.
|
|
1322
1247
|
* Stops/finishes an active header resize/move session if it lost capturing
|
|
@@ -1324,8 +1249,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1324
1249
|
*
|
|
1325
1250
|
* @param e {qx.event.type.Data} The data event
|
|
1326
1251
|
*/
|
|
1327
|
-
_onChangeCaptureHeader
|
|
1328
|
-
{
|
|
1252
|
+
_onChangeCaptureHeader(e) {
|
|
1329
1253
|
if (this.__resizeColumn != null) {
|
|
1330
1254
|
this._stopResizeHeader();
|
|
1331
1255
|
}
|
|
@@ -1335,21 +1259,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1335
1259
|
}
|
|
1336
1260
|
},
|
|
1337
1261
|
|
|
1338
|
-
|
|
1339
1262
|
/**
|
|
1340
1263
|
* Stop a resize session of the header.
|
|
1341
1264
|
*
|
|
1342
1265
|
*/
|
|
1343
|
-
_stopResizeHeader
|
|
1344
|
-
{
|
|
1266
|
+
_stopResizeHeader() {
|
|
1345
1267
|
var columnModel = this.getTable().getTableColumnModel();
|
|
1346
1268
|
|
|
1347
1269
|
// We are currently resizing -> Finish resizing
|
|
1348
|
-
if (!
|
|
1270
|
+
if (!this.getLiveResize()) {
|
|
1349
1271
|
this._hideResizeLine();
|
|
1350
|
-
columnModel.setColumnWidth(
|
|
1351
|
-
|
|
1352
|
-
|
|
1272
|
+
columnModel.setColumnWidth(
|
|
1273
|
+
this.__resizeColumn,
|
|
1274
|
+
this.__lastResizeWidth,
|
|
1275
|
+
true
|
|
1276
|
+
);
|
|
1353
1277
|
}
|
|
1354
1278
|
|
|
1355
1279
|
this.__resizeColumn = null;
|
|
@@ -1359,13 +1283,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1359
1283
|
this.setCursor(null);
|
|
1360
1284
|
},
|
|
1361
1285
|
|
|
1362
|
-
|
|
1363
1286
|
/**
|
|
1364
1287
|
* Stop a move session of the header.
|
|
1365
1288
|
*
|
|
1366
1289
|
*/
|
|
1367
|
-
_stopMoveHeader
|
|
1368
|
-
{
|
|
1290
|
+
_stopMoveHeader() {
|
|
1369
1291
|
var columnModel = this.getTable().getTableColumnModel();
|
|
1370
1292
|
var paneModel = this.getTablePaneModel();
|
|
1371
1293
|
|
|
@@ -1375,20 +1297,22 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1375
1297
|
this._lastMoveTargetScroller.hideColumnMoveFeedback();
|
|
1376
1298
|
}
|
|
1377
1299
|
|
|
1378
|
-
if (this._lastMoveTargetX != null)
|
|
1379
|
-
|
|
1380
|
-
|
|
1300
|
+
if (this._lastMoveTargetX != null) {
|
|
1301
|
+
var fromVisXPos =
|
|
1302
|
+
paneModel.getFirstColumnX() + paneModel.getX(this._moveColumn);
|
|
1381
1303
|
var toVisXPos = this._lastMoveTargetX;
|
|
1382
|
-
if (toVisXPos != fromVisXPos && toVisXPos != fromVisXPos + 1)
|
|
1383
|
-
{
|
|
1304
|
+
if (toVisXPos != fromVisXPos && toVisXPos != fromVisXPos + 1) {
|
|
1384
1305
|
// The column was really moved to another position
|
|
1385
1306
|
// (and not moved before or after itself, which is a noop)
|
|
1386
1307
|
|
|
1387
1308
|
// Translate visible positions to overall positions
|
|
1388
1309
|
var fromCol = columnModel.getVisibleColumnAtX(fromVisXPos);
|
|
1389
|
-
var toCol
|
|
1310
|
+
var toCol = columnModel.getVisibleColumnAtX(toVisXPos);
|
|
1390
1311
|
var fromOverXPos = columnModel.getOverallX(fromCol);
|
|
1391
|
-
var toOverXPos =
|
|
1312
|
+
var toOverXPos =
|
|
1313
|
+
toCol != null
|
|
1314
|
+
? columnModel.getOverallX(toCol)
|
|
1315
|
+
: columnModel.getOverallColumnCount();
|
|
1392
1316
|
|
|
1393
1317
|
if (toOverXPos > fromOverXPos) {
|
|
1394
1318
|
// Don't count the column itself
|
|
@@ -1408,43 +1332,35 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1408
1332
|
this._headerClipper.releaseCapture();
|
|
1409
1333
|
},
|
|
1410
1334
|
|
|
1411
|
-
|
|
1412
1335
|
/**
|
|
1413
1336
|
* Event handler. Called when the user released a pointer button over the header.
|
|
1414
1337
|
*
|
|
1415
1338
|
* @param e {Map} the event.
|
|
1416
1339
|
*/
|
|
1417
|
-
_onPointerupHeader
|
|
1418
|
-
{
|
|
1340
|
+
_onPointerupHeader(e) {
|
|
1419
1341
|
var table = this.getTable();
|
|
1420
1342
|
|
|
1421
|
-
if (!
|
|
1343
|
+
if (!table.getEnabled()) {
|
|
1422
1344
|
return;
|
|
1423
1345
|
}
|
|
1424
1346
|
|
|
1425
|
-
if (this.__resizeColumn != null)
|
|
1426
|
-
{
|
|
1347
|
+
if (this.__resizeColumn != null) {
|
|
1427
1348
|
this._stopResizeHeader();
|
|
1428
1349
|
this.__ignoreTap = true;
|
|
1429
1350
|
e.stop();
|
|
1430
|
-
}
|
|
1431
|
-
else if (this._moveColumn != null)
|
|
1432
|
-
{
|
|
1351
|
+
} else if (this._moveColumn != null) {
|
|
1433
1352
|
this._stopMoveHeader();
|
|
1434
1353
|
e.stop();
|
|
1435
1354
|
}
|
|
1436
1355
|
},
|
|
1437
1356
|
|
|
1438
|
-
|
|
1439
1357
|
/**
|
|
1440
1358
|
* Event handler. Called when the user tapped a pointer button over the header.
|
|
1441
1359
|
*
|
|
1442
1360
|
* @param e {Map} the event.
|
|
1443
1361
|
*/
|
|
1444
|
-
_onTapHeader
|
|
1445
|
-
|
|
1446
|
-
if (this.__ignoreTap)
|
|
1447
|
-
{
|
|
1362
|
+
_onTapHeader(e) {
|
|
1363
|
+
if (this.__ignoreTap) {
|
|
1448
1364
|
this.__ignoreTap = false;
|
|
1449
1365
|
return;
|
|
1450
1366
|
}
|
|
@@ -1461,34 +1377,29 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1461
1377
|
|
|
1462
1378
|
var resizeCol = this._getResizeColumnForPageX(pageX);
|
|
1463
1379
|
|
|
1464
|
-
if (resizeCol == -1)
|
|
1465
|
-
{
|
|
1380
|
+
if (resizeCol == -1) {
|
|
1466
1381
|
// pointer is not in a resize region
|
|
1467
1382
|
var col = this._getColumnForPageX(pageX);
|
|
1468
1383
|
|
|
1469
|
-
if (col != null && tableModel.isColumnSortable(col))
|
|
1470
|
-
{
|
|
1384
|
+
if (col != null && tableModel.isColumnSortable(col)) {
|
|
1471
1385
|
// Sort that column
|
|
1472
1386
|
var sortCol = tableModel.getSortColumnIndex();
|
|
1473
|
-
var ascending =
|
|
1387
|
+
var ascending = col != sortCol ? true : !tableModel.isSortAscending();
|
|
1474
1388
|
|
|
1475
|
-
var data =
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
};
|
|
1389
|
+
var data = {
|
|
1390
|
+
column: col,
|
|
1391
|
+
ascending: ascending,
|
|
1392
|
+
tapEvent: e
|
|
1393
|
+
};
|
|
1481
1394
|
|
|
1482
|
-
if (this.fireDataEvent("beforeSort", data, null, true))
|
|
1483
|
-
{
|
|
1395
|
+
if (this.fireDataEvent("beforeSort", data, null, true)) {
|
|
1484
1396
|
// Stop cell editing
|
|
1485
1397
|
if (table.isEditing()) {
|
|
1486
1398
|
table.stopEditing();
|
|
1487
1399
|
}
|
|
1488
1400
|
|
|
1489
1401
|
tableModel.sortByColumn(col, ascending);
|
|
1490
|
-
if (this.getResetSelectionOnHeaderTap())
|
|
1491
|
-
{
|
|
1402
|
+
if (this.getResetSelectionOnHeaderTap()) {
|
|
1492
1403
|
table.getSelectionModel().resetSelection();
|
|
1493
1404
|
}
|
|
1494
1405
|
}
|
|
@@ -1498,14 +1409,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1498
1409
|
e.stop();
|
|
1499
1410
|
},
|
|
1500
1411
|
|
|
1501
|
-
|
|
1502
1412
|
/**
|
|
1503
1413
|
* Event handler. Called when the user tapped a pointer button over the pane.
|
|
1504
1414
|
*
|
|
1505
1415
|
* @param e {Map} the event.
|
|
1506
1416
|
*/
|
|
1507
|
-
_onTapPane
|
|
1508
|
-
{
|
|
1417
|
+
_onTapPane(e) {
|
|
1509
1418
|
var table = this.getTable();
|
|
1510
1419
|
|
|
1511
1420
|
if (!table.getEnabled()) {
|
|
@@ -1533,17 +1442,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1533
1442
|
table.getSelectionManager().handleTap(row, e);
|
|
1534
1443
|
}
|
|
1535
1444
|
|
|
1536
|
-
if (
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
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
|
+
|
|
1547
1460
|
this.__firedTapEvent = true;
|
|
1548
1461
|
}
|
|
1549
1462
|
} else {
|
|
@@ -1553,14 +1466,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1553
1466
|
}
|
|
1554
1467
|
},
|
|
1555
1468
|
|
|
1556
|
-
|
|
1557
1469
|
/**
|
|
1558
1470
|
* Event handler. Called when a context menu is invoked in a cell.
|
|
1559
1471
|
*
|
|
1560
1472
|
* @param e {qx.event.type.Pointer} the event.
|
|
1561
1473
|
*/
|
|
1562
|
-
_onContextMenu
|
|
1563
|
-
{
|
|
1474
|
+
_onContextMenu(e) {
|
|
1564
1475
|
var pageX = e.getDocumentLeft();
|
|
1565
1476
|
var pageY = e.getDocumentTop();
|
|
1566
1477
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
@@ -1572,36 +1483,35 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1572
1483
|
* the context menu event anyway, and can set the property value of
|
|
1573
1484
|
* contextMenuFromDataCellsOnly to false to achieve that.
|
|
1574
1485
|
*/
|
|
1575
|
-
if (row === null && this.getContextMenuFromDataCellsOnly())
|
|
1576
|
-
{
|
|
1486
|
+
if (row === null && this.getContextMenuFromDataCellsOnly()) {
|
|
1577
1487
|
return;
|
|
1578
1488
|
}
|
|
1579
1489
|
|
|
1580
|
-
if (
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
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
|
+
);
|
|
1590
1503
|
|
|
1591
1504
|
// Now that the cellContextmenu handler has had a chance to build
|
|
1592
1505
|
// the menu for this cell, display it (if there is one).
|
|
1593
1506
|
var menu = this.getTable().getContextMenu();
|
|
1594
|
-
if (menu)
|
|
1595
|
-
{
|
|
1507
|
+
if (menu) {
|
|
1596
1508
|
// A menu with no children means don't display any context menu
|
|
1597
1509
|
// including the default context menu even if the default context
|
|
1598
1510
|
// menu is allowed to be displayed normally. There's no need to
|
|
1599
1511
|
// actually show an empty menu, though.
|
|
1600
1512
|
if (menu.getChildren().length > 0) {
|
|
1601
1513
|
menu.openAtPointer(e);
|
|
1602
|
-
}
|
|
1603
|
-
else
|
|
1604
|
-
{
|
|
1514
|
+
} else {
|
|
1605
1515
|
menu.exclude();
|
|
1606
1516
|
}
|
|
1607
1517
|
|
|
@@ -1611,10 +1521,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1611
1521
|
}
|
|
1612
1522
|
},
|
|
1613
1523
|
|
|
1614
|
-
|
|
1615
1524
|
// overridden
|
|
1616
|
-
_onContextMenuOpen
|
|
1617
|
-
{
|
|
1525
|
+
_onContextMenuOpen(e) {
|
|
1618
1526
|
// This is Widget's context menu handler which typically retrieves
|
|
1619
1527
|
// and displays the menu as soon as it receives a "contextmenu" event.
|
|
1620
1528
|
// We want to allow the cellContextmenu handler to create the menu,
|
|
@@ -1622,14 +1530,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1622
1530
|
// placement and display handling in our _onContextMenu method.
|
|
1623
1531
|
},
|
|
1624
1532
|
|
|
1625
|
-
|
|
1626
1533
|
/**
|
|
1627
1534
|
* Event handler. Called when the user double tapped a pointer button over the pane.
|
|
1628
1535
|
*
|
|
1629
1536
|
* @param e {Map} the event.
|
|
1630
1537
|
*/
|
|
1631
|
-
_onDbltapPane
|
|
1632
|
-
{
|
|
1538
|
+
_onDbltapPane(e) {
|
|
1633
1539
|
var pageX = e.getDocumentLeft();
|
|
1634
1540
|
var pageY = e.getDocumentTop();
|
|
1635
1541
|
var col = this._getColumnForPageX(pageX);
|
|
@@ -1640,19 +1546,22 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1640
1546
|
|
|
1641
1547
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
1642
1548
|
if (row != -1 && row != null) {
|
|
1643
|
-
this.fireEvent(
|
|
1549
|
+
this.fireEvent(
|
|
1550
|
+
"cellDbltap",
|
|
1551
|
+
qx.ui.table.pane.CellEvent,
|
|
1552
|
+
[this, e, row],
|
|
1553
|
+
true
|
|
1554
|
+
);
|
|
1644
1555
|
}
|
|
1645
1556
|
}
|
|
1646
1557
|
},
|
|
1647
1558
|
|
|
1648
|
-
|
|
1649
1559
|
/**
|
|
1650
1560
|
* Event handler. Called when the pointer moved out.
|
|
1651
1561
|
*
|
|
1652
1562
|
* @param e {Map} the event.
|
|
1653
1563
|
*/
|
|
1654
|
-
_onPointerout
|
|
1655
|
-
{
|
|
1564
|
+
_onPointerout(e) {
|
|
1656
1565
|
var table = this.getTable();
|
|
1657
1566
|
|
|
1658
1567
|
if (!table.getEnabled()) {
|
|
@@ -1662,8 +1571,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1662
1571
|
// Reset the resize cursor when the pointer leaves the header
|
|
1663
1572
|
// If currently a column is resized then do nothing
|
|
1664
1573
|
// (the cursor will be reset on pointerup)
|
|
1665
|
-
if (this.__resizeColumn == null)
|
|
1666
|
-
{
|
|
1574
|
+
if (this.__resizeColumn == null) {
|
|
1667
1575
|
this.setCursor(null);
|
|
1668
1576
|
this.getApplicationRoot().setGlobalCursor(null);
|
|
1669
1577
|
}
|
|
@@ -1676,41 +1584,39 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1676
1584
|
}
|
|
1677
1585
|
},
|
|
1678
1586
|
|
|
1679
|
-
|
|
1680
1587
|
/**
|
|
1681
1588
|
* Shows the resize line.
|
|
1682
1589
|
*
|
|
1683
1590
|
* @param x {Integer} the position where to show the line (in pixels, relative to
|
|
1684
1591
|
* the left side of the pane).
|
|
1685
1592
|
*/
|
|
1686
|
-
_showResizeLine
|
|
1687
|
-
{
|
|
1593
|
+
_showResizeLine(x) {
|
|
1688
1594
|
var resizeLine = this._showChildControl("resize-line");
|
|
1689
1595
|
|
|
1690
1596
|
var width = resizeLine.getWidth();
|
|
1691
1597
|
var paneBounds = this._paneClipper.getBounds();
|
|
1692
1598
|
resizeLine.setUserBounds(
|
|
1693
|
-
x - Math.round(width/2),
|
|
1599
|
+
x - Math.round(width / 2),
|
|
1600
|
+
0,
|
|
1601
|
+
width,
|
|
1602
|
+
paneBounds.height
|
|
1694
1603
|
);
|
|
1695
1604
|
},
|
|
1696
1605
|
|
|
1697
|
-
|
|
1698
1606
|
/**
|
|
1699
1607
|
* Hides the resize line.
|
|
1700
1608
|
*/
|
|
1701
|
-
_hideResizeLine
|
|
1609
|
+
_hideResizeLine() {
|
|
1702
1610
|
this._excludeChildControl("resize-line");
|
|
1703
1611
|
},
|
|
1704
1612
|
|
|
1705
|
-
|
|
1706
1613
|
/**
|
|
1707
1614
|
* Shows the feedback shown while a column is moved by the user.
|
|
1708
1615
|
*
|
|
1709
1616
|
* @param pageX {Integer} the x position of the pointer in the page (in pixels).
|
|
1710
1617
|
* @return {Integer} the visible x position of the column in the whole table.
|
|
1711
1618
|
*/
|
|
1712
|
-
showColumnMoveFeedback
|
|
1713
|
-
{
|
|
1619
|
+
showColumnMoveFeedback(pageX) {
|
|
1714
1620
|
var paneModel = this.getTablePaneModel();
|
|
1715
1621
|
var columnModel = this.getTable().getTableColumnModel();
|
|
1716
1622
|
var paneLeft = this.__tablePane.getContentLocation().left;
|
|
@@ -1720,8 +1626,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1720
1626
|
var targetX = 0;
|
|
1721
1627
|
var currX = paneLeft;
|
|
1722
1628
|
|
|
1723
|
-
for (var xPos=0; xPos<colCount; xPos++)
|
|
1724
|
-
{
|
|
1629
|
+
for (var xPos = 0; xPos < colCount; xPos++) {
|
|
1725
1630
|
var col = paneModel.getColumnAtX(xPos);
|
|
1726
1631
|
var colWidth = columnModel.getColumnWidth(col);
|
|
1727
1632
|
|
|
@@ -1740,7 +1645,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1740
1645
|
var scrollX = scrollerLeft - paneLeft;
|
|
1741
1646
|
|
|
1742
1647
|
// NOTE: +2/-1 because of feedback width
|
|
1743
|
-
targetX = qx.lang.Number.limit(
|
|
1648
|
+
targetX = qx.lang.Number.limit(
|
|
1649
|
+
targetX,
|
|
1650
|
+
scrollX + 2,
|
|
1651
|
+
scrollX + scrollerWidth - 1
|
|
1652
|
+
);
|
|
1744
1653
|
|
|
1745
1654
|
this._showResizeLine(targetX);
|
|
1746
1655
|
|
|
@@ -1748,15 +1657,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1748
1657
|
return paneModel.getFirstColumnX() + targetXPos;
|
|
1749
1658
|
},
|
|
1750
1659
|
|
|
1751
|
-
|
|
1752
1660
|
/**
|
|
1753
1661
|
* Hides the feedback shown while a column is moved by the user.
|
|
1754
1662
|
*/
|
|
1755
|
-
hideColumnMoveFeedback
|
|
1663
|
+
hideColumnMoveFeedback() {
|
|
1756
1664
|
this._hideResizeLine();
|
|
1757
1665
|
},
|
|
1758
1666
|
|
|
1759
|
-
|
|
1760
1667
|
/**
|
|
1761
1668
|
* Sets the focus to the cell that's located at the page position
|
|
1762
1669
|
* <code>pageX</code>/<code>pageY</code>. If there is no cell at that position,
|
|
@@ -1765,29 +1672,24 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1765
1672
|
* @param pageX {Integer} the x position in the page (in pixels).
|
|
1766
1673
|
* @param pageY {Integer} the y position in the page (in pixels).
|
|
1767
1674
|
*/
|
|
1768
|
-
_focusCellAtPagePos
|
|
1769
|
-
{
|
|
1675
|
+
_focusCellAtPagePos(pageX, pageY) {
|
|
1770
1676
|
var row = this._getRowForPagePos(pageX, pageY);
|
|
1771
1677
|
|
|
1772
|
-
if (row != -1 && row != null)
|
|
1773
|
-
{
|
|
1678
|
+
if (row != -1 && row != null) {
|
|
1774
1679
|
// The pointer is over the data -> update the focus
|
|
1775
1680
|
var col = this._getColumnForPageX(pageX);
|
|
1776
1681
|
this.__table.setFocusedCell(col, row);
|
|
1777
1682
|
}
|
|
1778
1683
|
},
|
|
1779
1684
|
|
|
1780
|
-
|
|
1781
1685
|
/**
|
|
1782
1686
|
* Sets the currently focused cell.
|
|
1783
1687
|
*
|
|
1784
1688
|
* @param col {Integer} the model index of the focused cell's column.
|
|
1785
1689
|
* @param row {Integer} the model index of the focused cell's row.
|
|
1786
1690
|
*/
|
|
1787
|
-
setFocusedCell
|
|
1788
|
-
|
|
1789
|
-
if (!this.isEditing())
|
|
1790
|
-
{
|
|
1691
|
+
setFocusedCell(col, row) {
|
|
1692
|
+
if (!this.isEditing()) {
|
|
1791
1693
|
this.__tablePane.setFocusedCell(col, row, this.__updateContentPlanned);
|
|
1792
1694
|
|
|
1793
1695
|
this.__focusedCol = col;
|
|
@@ -1797,40 +1699,35 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1797
1699
|
}
|
|
1798
1700
|
},
|
|
1799
1701
|
|
|
1800
|
-
|
|
1801
1702
|
/**
|
|
1802
1703
|
* Returns the column of currently focused cell.
|
|
1803
1704
|
*
|
|
1804
1705
|
* @return {Integer} the model index of the focused cell's column.
|
|
1805
1706
|
*/
|
|
1806
|
-
getFocusedColumn
|
|
1707
|
+
getFocusedColumn() {
|
|
1807
1708
|
return this.__focusedCol;
|
|
1808
1709
|
},
|
|
1809
1710
|
|
|
1810
|
-
|
|
1811
1711
|
/**
|
|
1812
1712
|
* Returns the row of currently focused cell.
|
|
1813
1713
|
*
|
|
1814
1714
|
* @return {Integer} the model index of the focused cell's column.
|
|
1815
1715
|
*/
|
|
1816
|
-
getFocusedRow
|
|
1716
|
+
getFocusedRow() {
|
|
1817
1717
|
return this.__focusedRow;
|
|
1818
1718
|
},
|
|
1819
1719
|
|
|
1820
|
-
|
|
1821
1720
|
/**
|
|
1822
1721
|
* Scrolls a cell visible.
|
|
1823
1722
|
*
|
|
1824
1723
|
* @param col {Integer} the model index of the column the cell belongs to.
|
|
1825
1724
|
* @param row {Integer} the model index of the row the cell belongs to.
|
|
1826
1725
|
*/
|
|
1827
|
-
scrollCellVisible
|
|
1828
|
-
{
|
|
1726
|
+
scrollCellVisible(col, row) {
|
|
1829
1727
|
var paneModel = this.getTablePaneModel();
|
|
1830
1728
|
var xPos = paneModel.getX(col);
|
|
1831
1729
|
|
|
1832
|
-
if (xPos != -1)
|
|
1833
|
-
{
|
|
1730
|
+
if (xPos != -1) {
|
|
1834
1731
|
var clipperSize = this._paneClipper.getInnerSize();
|
|
1835
1732
|
if (!clipperSize) {
|
|
1836
1733
|
return;
|
|
@@ -1847,7 +1744,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1847
1744
|
var scrollY = this.getScrollY();
|
|
1848
1745
|
|
|
1849
1746
|
// NOTE: We don't use qx.lang.Number.limit, because min should win if max < min
|
|
1850
|
-
var minScrollX = Math.min(
|
|
1747
|
+
var minScrollX = Math.min(
|
|
1748
|
+
colLeft,
|
|
1749
|
+
colLeft + colWidth - clipperSize.width
|
|
1750
|
+
);
|
|
1751
|
+
|
|
1851
1752
|
var maxScrollX = colLeft;
|
|
1852
1753
|
this.setScrollX(Math.max(minScrollX, Math.min(maxScrollX, scrollX)));
|
|
1853
1754
|
|
|
@@ -1858,21 +1759,22 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1858
1759
|
}
|
|
1859
1760
|
|
|
1860
1761
|
var maxScrollY = rowTop;
|
|
1861
|
-
this.setScrollY(
|
|
1762
|
+
this.setScrollY(
|
|
1763
|
+
Math.max(minScrollY, Math.min(maxScrollY, scrollY)),
|
|
1764
|
+
true
|
|
1765
|
+
);
|
|
1862
1766
|
}
|
|
1863
1767
|
},
|
|
1864
1768
|
|
|
1865
|
-
|
|
1866
1769
|
/**
|
|
1867
1770
|
* Returns whether currently a cell is editing.
|
|
1868
1771
|
*
|
|
1869
1772
|
* @return {var} whether currently a cell is editing.
|
|
1870
1773
|
*/
|
|
1871
|
-
isEditing
|
|
1774
|
+
isEditing() {
|
|
1872
1775
|
return this._cellEditor != null;
|
|
1873
1776
|
},
|
|
1874
1777
|
|
|
1875
|
-
|
|
1876
1778
|
/**
|
|
1877
1779
|
* Starts editing the currently focused cell. Does nothing if already
|
|
1878
1780
|
* editing, if the column is not editable, or if the cell editor for the
|
|
@@ -1880,15 +1782,14 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1880
1782
|
*
|
|
1881
1783
|
* @return {Boolean} whether editing was started
|
|
1882
1784
|
*/
|
|
1883
|
-
startEditing
|
|
1884
|
-
{
|
|
1785
|
+
startEditing() {
|
|
1885
1786
|
var table = this.getTable();
|
|
1886
1787
|
var tableModel = table.getTableModel();
|
|
1887
1788
|
var col = this.__focusedCol;
|
|
1888
1789
|
|
|
1889
1790
|
if (
|
|
1890
1791
|
!this.isEditing() &&
|
|
1891
|
-
|
|
1792
|
+
col != null &&
|
|
1892
1793
|
tableModel.isColumnEditable(col)
|
|
1893
1794
|
) {
|
|
1894
1795
|
var row = this.__focusedRow;
|
|
@@ -1898,15 +1799,16 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1898
1799
|
// scroll cell into view
|
|
1899
1800
|
this.scrollCellVisible(col, row);
|
|
1900
1801
|
|
|
1901
|
-
this.__cellEditorFactory = table
|
|
1802
|
+
this.__cellEditorFactory = table
|
|
1803
|
+
.getTableColumnModel()
|
|
1804
|
+
.getCellEditorFactory(col);
|
|
1902
1805
|
|
|
1903
|
-
var cellInfo =
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
table : table
|
|
1806
|
+
var cellInfo = {
|
|
1807
|
+
col: col,
|
|
1808
|
+
row: row,
|
|
1809
|
+
xPos: xPos,
|
|
1810
|
+
value: value,
|
|
1811
|
+
table: table
|
|
1910
1812
|
};
|
|
1911
1813
|
|
|
1912
1814
|
// Get a cell editor
|
|
@@ -1918,13 +1820,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1918
1820
|
// editing takes place. Additionally, if the cell editor determines
|
|
1919
1821
|
// that it does not want to edit the particular cell being requested,
|
|
1920
1822
|
// it may return null to indicate that that cell is not editable.
|
|
1921
|
-
if (this._cellEditor === null)
|
|
1922
|
-
{
|
|
1823
|
+
if (this._cellEditor === null) {
|
|
1923
1824
|
// This cell is not editable even though its column is.
|
|
1924
1825
|
return false;
|
|
1925
|
-
}
|
|
1926
|
-
else if (this._cellEditor instanceof qx.ui.window.Window)
|
|
1927
|
-
{
|
|
1826
|
+
} else if (this._cellEditor instanceof qx.ui.window.Window) {
|
|
1928
1827
|
// It's a window. Ensure that it's modal.
|
|
1929
1828
|
this._cellEditor.setModal(true);
|
|
1930
1829
|
|
|
@@ -1939,7 +1838,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1939
1838
|
this._cellEditor.addListener(
|
|
1940
1839
|
"close",
|
|
1941
1840
|
this._onCellEditorModalWindowClose,
|
|
1942
|
-
this
|
|
1841
|
+
this
|
|
1842
|
+
);
|
|
1943
1843
|
|
|
1944
1844
|
// If there's a pre-open function defined for the table...
|
|
1945
1845
|
var f = table.getModalCellEditorPreOpenFunction();
|
|
@@ -1949,18 +1849,21 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1949
1849
|
|
|
1950
1850
|
// Open it now.
|
|
1951
1851
|
this._cellEditor.open();
|
|
1952
|
-
}
|
|
1953
|
-
else
|
|
1954
|
-
{
|
|
1852
|
+
} else {
|
|
1955
1853
|
// prevent tap event from bubbling up to the table
|
|
1956
|
-
this.__focusIndicatorPointerDownListener =
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
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
|
+
);
|
|
1964
1867
|
|
|
1965
1868
|
this._updateFocusIndicator(true);
|
|
1966
1869
|
this.__focusIndicator.add(this._cellEditor);
|
|
@@ -1980,15 +1883,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1980
1883
|
return false;
|
|
1981
1884
|
},
|
|
1982
1885
|
|
|
1983
|
-
|
|
1984
1886
|
/**
|
|
1985
1887
|
* Stops editing and writes the editor's value to the model.
|
|
1986
1888
|
*/
|
|
1987
|
-
stopEditing
|
|
1988
|
-
{
|
|
1889
|
+
stopEditing() {
|
|
1989
1890
|
// If the focus indicator is not being shown normally...
|
|
1990
|
-
if (!
|
|
1991
|
-
{
|
|
1891
|
+
if (!this.getShowCellFocusIndicator()) {
|
|
1992
1892
|
// ... then hide it again
|
|
1993
1893
|
this.__focusIndicator.setDecorator(null);
|
|
1994
1894
|
}
|
|
@@ -1996,56 +1896,58 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
1996
1896
|
this.flushEditor(true);
|
|
1997
1897
|
},
|
|
1998
1898
|
|
|
1999
|
-
|
|
2000
1899
|
/**
|
|
2001
1900
|
* Writes the editor's value to the model
|
|
2002
1901
|
*
|
|
2003
1902
|
* @param cancel {Boolean ? false} Whether to also cancel
|
|
2004
1903
|
* editing before firing the 'dateEdited' event.
|
|
2005
1904
|
*/
|
|
2006
|
-
flushEditor
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
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);
|
|
2013
1917
|
|
|
2014
1918
|
this.__table.focus();
|
|
2015
1919
|
|
|
2016
|
-
if(cancel) {
|
|
1920
|
+
if (cancel) {
|
|
2017
1921
|
this.cancelEditing();
|
|
2018
1922
|
}
|
|
2019
1923
|
|
|
2020
1924
|
// Fire an event containing the value change.
|
|
2021
|
-
this.__table.fireDataEvent("dataEdited",
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
});
|
|
1925
|
+
this.__table.fireDataEvent("dataEdited", {
|
|
1926
|
+
row: this.__focusedRow,
|
|
1927
|
+
col: this.__focusedCol,
|
|
1928
|
+
oldValue: oldValue,
|
|
1929
|
+
value: value
|
|
1930
|
+
});
|
|
2028
1931
|
}
|
|
2029
1932
|
},
|
|
2030
1933
|
|
|
2031
|
-
|
|
2032
1934
|
/**
|
|
2033
1935
|
* Stops editing without writing the editor's value to the model.
|
|
2034
1936
|
*/
|
|
2035
|
-
cancelEditing
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
{
|
|
2039
|
-
if (!(this._cellEditor instanceof qx.ui.window.Window))
|
|
2040
|
-
{
|
|
1937
|
+
cancelEditing() {
|
|
1938
|
+
if (this.isEditing()) {
|
|
1939
|
+
if (!(this._cellEditor instanceof qx.ui.window.Window)) {
|
|
2041
1940
|
this.__focusIndicator.removeState("editing");
|
|
2042
1941
|
this.__focusIndicator.setKeepActive(true);
|
|
2043
1942
|
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
1943
|
+
if (this.__focusIndicatorPointerDownListener !== null) {
|
|
1944
|
+
this.__focusIndicator.removeListenerById(
|
|
1945
|
+
this.__focusIndicatorPointerDownListener
|
|
1946
|
+
);
|
|
1947
|
+
|
|
1948
|
+
this.__focusIndicatorPointerDownListener = null;
|
|
1949
|
+
}
|
|
1950
|
+
this._updateFocusIndicator();
|
|
2049
1951
|
}
|
|
2050
1952
|
this._cellEditor.destroy();
|
|
2051
1953
|
this._cellEditor = null;
|
|
@@ -2053,17 +1955,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2053
1955
|
}
|
|
2054
1956
|
},
|
|
2055
1957
|
|
|
2056
|
-
|
|
2057
1958
|
/**
|
|
2058
1959
|
* Event handler. Called when the modal window of the cell editor closes.
|
|
2059
1960
|
*
|
|
2060
1961
|
* @param e {Map} the event.
|
|
2061
1962
|
*/
|
|
2062
|
-
_onCellEditorModalWindowClose
|
|
1963
|
+
_onCellEditorModalWindowClose(e) {
|
|
2063
1964
|
this.stopEditing();
|
|
2064
1965
|
},
|
|
2065
1966
|
|
|
2066
|
-
|
|
2067
1967
|
/**
|
|
2068
1968
|
* Returns the model index of the column the pointer is over or null if the pointer
|
|
2069
1969
|
* is not over a column.
|
|
@@ -2071,15 +1971,13 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2071
1971
|
* @param pageX {Integer} the x position of the pointer in the page (in pixels).
|
|
2072
1972
|
* @return {Integer} the model index of the column the pointer is over.
|
|
2073
1973
|
*/
|
|
2074
|
-
_getColumnForPageX
|
|
2075
|
-
{
|
|
1974
|
+
_getColumnForPageX(pageX) {
|
|
2076
1975
|
var columnModel = this.getTable().getTableColumnModel();
|
|
2077
1976
|
var paneModel = this.getTablePaneModel();
|
|
2078
1977
|
var colCount = paneModel.getColumnCount();
|
|
2079
1978
|
var currX = this.__tablePane.getContentLocation().left;
|
|
2080
1979
|
|
|
2081
|
-
for (var x=0; x<colCount; x++)
|
|
2082
|
-
{
|
|
1980
|
+
for (var x = 0; x < colCount; x++) {
|
|
2083
1981
|
var col = paneModel.getColumnAtX(x);
|
|
2084
1982
|
var colWidth = columnModel.getColumnWidth(col);
|
|
2085
1983
|
currX += colWidth;
|
|
@@ -2092,7 +1990,6 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2092
1990
|
return null;
|
|
2093
1991
|
},
|
|
2094
1992
|
|
|
2095
|
-
|
|
2096
1993
|
/**
|
|
2097
1994
|
* Returns the model index of the column that should be resized when dragging
|
|
2098
1995
|
* starts here. Returns -1 if the pointer is in no resize region of any column.
|
|
@@ -2100,9 +1997,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2100
1997
|
* @param pageX {Integer} the x position of the pointer in the page (in pixels).
|
|
2101
1998
|
* @return {Integer} the column index.
|
|
2102
1999
|
*/
|
|
2103
|
-
_getResizeColumnForPageX
|
|
2104
|
-
|
|
2105
|
-
|
|
2000
|
+
_getResizeColumnForPageX(pageX) {
|
|
2001
|
+
var contentLocation =
|
|
2002
|
+
this.__header.getContentLocation() ||
|
|
2003
|
+
this.__tablePane.getContentLocation();
|
|
2106
2004
|
if (contentLocation) {
|
|
2107
2005
|
var currX = contentLocation.left;
|
|
2108
2006
|
var columnModel = this.getTable().getTableColumnModel();
|
|
@@ -2115,7 +2013,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2115
2013
|
var colWidth = columnModel.getColumnWidth(col);
|
|
2116
2014
|
currX += colWidth;
|
|
2117
2015
|
|
|
2118
|
-
if (pageX >=
|
|
2016
|
+
if (pageX >= currX - regionRadius && pageX <= currX + regionRadius) {
|
|
2119
2017
|
return col;
|
|
2120
2018
|
}
|
|
2121
2019
|
}
|
|
@@ -2133,18 +2031,15 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2133
2031
|
* @param pageY {Integer} the pointer y position in the page.
|
|
2134
2032
|
* @return {Integer} the model index of the row the pointer is currently over.
|
|
2135
2033
|
*/
|
|
2136
|
-
_getRowForPagePos
|
|
2137
|
-
{
|
|
2034
|
+
_getRowForPagePos(pageX, pageY) {
|
|
2138
2035
|
var panePos = this.__tablePane.getContentLocation();
|
|
2139
2036
|
|
|
2140
|
-
if (panePos === null || pageX < panePos.left || pageX > panePos.right)
|
|
2141
|
-
{
|
|
2037
|
+
if (panePos === null || pageX < panePos.left || pageX > panePos.right) {
|
|
2142
2038
|
// There was no cell or header cell hit
|
|
2143
2039
|
return null;
|
|
2144
2040
|
}
|
|
2145
2041
|
|
|
2146
|
-
if (pageY >= panePos.top && pageY <= panePos.bottom)
|
|
2147
|
-
{
|
|
2042
|
+
if (pageY >= panePos.top && pageY <= panePos.bottom) {
|
|
2148
2043
|
// This event is in the pane -> Get the row
|
|
2149
2044
|
var rowHeight = this.getTable().getRowHeight();
|
|
2150
2045
|
|
|
@@ -2160,7 +2055,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2160
2055
|
var tableModel = this.getTable().getTableModel();
|
|
2161
2056
|
var rowCount = tableModel.getRowCount();
|
|
2162
2057
|
|
|
2163
|
-
return
|
|
2058
|
+
return row < rowCount ? row : null;
|
|
2164
2059
|
}
|
|
2165
2060
|
|
|
2166
2061
|
var headerPos = this.__header.getContentLocation();
|
|
@@ -2169,8 +2064,8 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2169
2064
|
headerPos !== null &&
|
|
2170
2065
|
pageY >= headerPos.top &&
|
|
2171
2066
|
pageY <= headerPos.bottom &&
|
|
2172
|
-
pageX <= headerPos.right
|
|
2173
|
-
{
|
|
2067
|
+
pageX <= headerPos.right
|
|
2068
|
+
) {
|
|
2174
2069
|
// This event is in the pane -> Return -1 for the header
|
|
2175
2070
|
return -1;
|
|
2176
2071
|
}
|
|
@@ -2178,7 +2073,6 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2178
2073
|
return null;
|
|
2179
2074
|
},
|
|
2180
2075
|
|
|
2181
|
-
|
|
2182
2076
|
/**
|
|
2183
2077
|
* Sets the widget that should be shown in the top right corner.
|
|
2184
2078
|
*
|
|
@@ -2187,8 +2081,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2187
2081
|
*
|
|
2188
2082
|
* @param widget {qx.ui.core.Widget} The widget to set. May be null.
|
|
2189
2083
|
*/
|
|
2190
|
-
setTopRightWidget
|
|
2191
|
-
{
|
|
2084
|
+
setTopRightWidget(widget) {
|
|
2192
2085
|
var oldWidget = this.__topRightWidget;
|
|
2193
2086
|
|
|
2194
2087
|
if (oldWidget != null) {
|
|
@@ -2202,37 +2095,33 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2202
2095
|
this.__topRightWidget = widget;
|
|
2203
2096
|
},
|
|
2204
2097
|
|
|
2205
|
-
|
|
2206
2098
|
/**
|
|
2207
2099
|
* Get the top right widget
|
|
2208
2100
|
*
|
|
2209
2101
|
* @return {qx.ui.core.Widget} The top right widget.
|
|
2210
2102
|
*/
|
|
2211
|
-
getTopRightWidget
|
|
2103
|
+
getTopRightWidget() {
|
|
2212
2104
|
return this.__topRightWidget;
|
|
2213
2105
|
},
|
|
2214
2106
|
|
|
2215
|
-
|
|
2216
2107
|
/**
|
|
2217
2108
|
* Returns the header.
|
|
2218
2109
|
*
|
|
2219
2110
|
* @return {qx.ui.table.pane.Header} the header.
|
|
2220
2111
|
*/
|
|
2221
|
-
getHeader
|
|
2112
|
+
getHeader() {
|
|
2222
2113
|
return this.__header;
|
|
2223
2114
|
},
|
|
2224
2115
|
|
|
2225
|
-
|
|
2226
2116
|
/**
|
|
2227
2117
|
* Returns the table pane.
|
|
2228
2118
|
*
|
|
2229
2119
|
* @return {qx.ui.table.pane.Pane} the table pane.
|
|
2230
2120
|
*/
|
|
2231
|
-
getTablePane
|
|
2121
|
+
getTablePane() {
|
|
2232
2122
|
return this.__tablePane;
|
|
2233
2123
|
},
|
|
2234
2124
|
|
|
2235
|
-
|
|
2236
2125
|
/**
|
|
2237
2126
|
* Get the rendered width of the vertical scroll bar. The return value is
|
|
2238
2127
|
* <code>0</code> if the scroll bar is invisible or not yet rendered.
|
|
@@ -2240,13 +2129,11 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2240
2129
|
* @internal
|
|
2241
2130
|
* @return {Integer} The width of the vertical scroll bar
|
|
2242
2131
|
*/
|
|
2243
|
-
getVerticalScrollBarWidth
|
|
2244
|
-
{
|
|
2132
|
+
getVerticalScrollBarWidth() {
|
|
2245
2133
|
var scrollBar = this.__verScrollBar;
|
|
2246
|
-
return scrollBar.isVisible() ?
|
|
2134
|
+
return scrollBar.isVisible() ? scrollBar.getSizeHint().width || 0 : 0;
|
|
2247
2135
|
},
|
|
2248
2136
|
|
|
2249
|
-
|
|
2250
2137
|
/**
|
|
2251
2138
|
* Returns which scrollbars are needed.
|
|
2252
2139
|
*
|
|
@@ -2258,15 +2145,18 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2258
2145
|
* {@link #HORIZONTAL_SCROLLBAR} or {@link #VERTICAL_SCROLLBAR}
|
|
2259
2146
|
* (combined by OR).
|
|
2260
2147
|
*/
|
|
2261
|
-
getNeededScrollBars
|
|
2262
|
-
{
|
|
2148
|
+
getNeededScrollBars(forceHorizontal, preventVertical) {
|
|
2263
2149
|
var verScrollBar = this.__verScrollBar;
|
|
2264
|
-
var verBarWidth =
|
|
2265
|
-
|
|
2150
|
+
var verBarWidth =
|
|
2151
|
+
verScrollBar.getSizeHint().width +
|
|
2152
|
+
verScrollBar.getMarginLeft() +
|
|
2153
|
+
verScrollBar.getMarginRight();
|
|
2266
2154
|
|
|
2267
2155
|
var horScrollBar = this.__horScrollBar;
|
|
2268
|
-
var horBarHeight =
|
|
2269
|
-
|
|
2156
|
+
var horBarHeight =
|
|
2157
|
+
horScrollBar.getSizeHint().height +
|
|
2158
|
+
horScrollBar.getMarginTop() +
|
|
2159
|
+
horScrollBar.getMarginBottom();
|
|
2270
2160
|
|
|
2271
2161
|
// Get the width and height of the view (without scroll bars)
|
|
2272
2162
|
var clipperSize = this._paneClipper.getInnerSize();
|
|
@@ -2302,7 +2192,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2302
2192
|
} else if (paneHeight > viewHeight) {
|
|
2303
2193
|
verNeeded = true;
|
|
2304
2194
|
|
|
2305
|
-
if (!preventVertical &&
|
|
2195
|
+
if (!preventVertical && paneWidth > viewWidth - verBarWidth) {
|
|
2306
2196
|
horNeeded = true;
|
|
2307
2197
|
}
|
|
2308
2198
|
}
|
|
@@ -2310,10 +2200,12 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2310
2200
|
// Create the mask
|
|
2311
2201
|
var horBar = qx.ui.table.pane.Scroller.HORIZONTAL_SCROLLBAR;
|
|
2312
2202
|
var verBar = qx.ui.table.pane.Scroller.VERTICAL_SCROLLBAR;
|
|
2313
|
-
return (
|
|
2203
|
+
return (
|
|
2204
|
+
(forceHorizontal || horNeeded ? horBar : 0) |
|
|
2205
|
+
(preventVertical || !verNeeded ? 0 : verBar)
|
|
2206
|
+
);
|
|
2314
2207
|
},
|
|
2315
2208
|
|
|
2316
|
-
|
|
2317
2209
|
/**
|
|
2318
2210
|
* Return the pane clipper. It is sometimes required for special activities
|
|
2319
2211
|
* such as tracking events for drag&drop.
|
|
@@ -2321,12 +2213,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2321
2213
|
* @return {qx.ui.table.pane.Clipper}
|
|
2322
2214
|
* The pane clipper for this scroller.
|
|
2323
2215
|
*/
|
|
2324
|
-
getPaneClipper
|
|
2325
|
-
{
|
|
2216
|
+
getPaneClipper() {
|
|
2326
2217
|
return this._paneClipper;
|
|
2327
2218
|
},
|
|
2328
2219
|
|
|
2329
|
-
|
|
2330
2220
|
/**
|
|
2331
2221
|
* Returns the scroll area container widget (which enables more precise
|
|
2332
2222
|
* operations e.g. bounds retrieval for drag session scrolling).
|
|
@@ -2335,50 +2225,42 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2335
2225
|
* @return {qx.ui.table.pane.Clipper}
|
|
2336
2226
|
* The pane clipper for this scroller.
|
|
2337
2227
|
*/
|
|
2338
|
-
getScrollAreaContainer
|
|
2228
|
+
getScrollAreaContainer() {
|
|
2339
2229
|
return this.getPaneClipper();
|
|
2340
2230
|
},
|
|
2341
2231
|
|
|
2342
|
-
|
|
2343
2232
|
// property apply method
|
|
2344
|
-
_applyScrollTimeout
|
|
2233
|
+
_applyScrollTimeout(value, old) {
|
|
2345
2234
|
this._startInterval(value);
|
|
2346
2235
|
},
|
|
2347
2236
|
|
|
2348
|
-
|
|
2349
2237
|
/**
|
|
2350
2238
|
* Starts the current running interval
|
|
2351
2239
|
*
|
|
2352
2240
|
* @param timeout {Integer} The timeout between two table updates
|
|
2353
2241
|
*/
|
|
2354
|
-
_startInterval
|
|
2355
|
-
{
|
|
2242
|
+
_startInterval(timeout) {
|
|
2356
2243
|
this.__timer.setInterval(timeout);
|
|
2357
2244
|
this.__timer.start();
|
|
2358
2245
|
},
|
|
2359
2246
|
|
|
2360
|
-
|
|
2361
2247
|
/**
|
|
2362
2248
|
* stops the current running interval
|
|
2363
2249
|
*/
|
|
2364
|
-
_stopInterval
|
|
2365
|
-
{
|
|
2250
|
+
_stopInterval() {
|
|
2366
2251
|
this.__timer.stop();
|
|
2367
2252
|
},
|
|
2368
2253
|
|
|
2369
|
-
|
|
2370
2254
|
/**
|
|
2371
2255
|
* Does a postponed update of the content.
|
|
2372
2256
|
*
|
|
2373
2257
|
* @see #_updateContent
|
|
2374
2258
|
*/
|
|
2375
|
-
_postponedUpdateContent
|
|
2376
|
-
{
|
|
2259
|
+
_postponedUpdateContent() {
|
|
2377
2260
|
//this.__updateContentPlanned = true;
|
|
2378
2261
|
this._updateContent();
|
|
2379
2262
|
},
|
|
2380
2263
|
|
|
2381
|
-
|
|
2382
2264
|
/**
|
|
2383
2265
|
* Timer event handler. Periodically checks whether a table update is
|
|
2384
2266
|
* required. The update interval is controlled by the {@link #scrollTimeout}
|
|
@@ -2386,22 +2268,18 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2386
2268
|
*
|
|
2387
2269
|
* @signature function()
|
|
2388
2270
|
*/
|
|
2389
|
-
_oninterval
|
|
2390
|
-
|
|
2391
|
-
if (this.__updateContentPlanned && !this.__tablePane._layoutPending)
|
|
2392
|
-
{
|
|
2271
|
+
_oninterval: qx.event.GlobalError.observeMethod(function () {
|
|
2272
|
+
if (this.__updateContentPlanned && !this.__tablePane._layoutPending) {
|
|
2393
2273
|
this.__updateContentPlanned = false;
|
|
2394
2274
|
this._updateContent();
|
|
2395
2275
|
}
|
|
2396
2276
|
}),
|
|
2397
2277
|
|
|
2398
|
-
|
|
2399
2278
|
/**
|
|
2400
2279
|
* Updates the content. Sets the right section the table pane should show and
|
|
2401
2280
|
* does the scrolling.
|
|
2402
2281
|
*/
|
|
2403
|
-
_updateContent
|
|
2404
|
-
{
|
|
2282
|
+
_updateContent() {
|
|
2405
2283
|
var paneSize = this._paneClipper.getInnerSize();
|
|
2406
2284
|
if (!paneSize) {
|
|
2407
2285
|
return;
|
|
@@ -2418,11 +2296,10 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2418
2296
|
|
|
2419
2297
|
var visibleRowCount = Math.ceil(paneHeight / rowHeight);
|
|
2420
2298
|
var paneOffset = 0;
|
|
2421
|
-
var firstVisibleRowComplete =
|
|
2422
|
-
|
|
2423
|
-
if (!firstVisibleRowComplete)
|
|
2424
|
-
{
|
|
2299
|
+
var firstVisibleRowComplete =
|
|
2300
|
+
this.getTable().getKeepFirstVisibleRowComplete();
|
|
2425
2301
|
|
|
2302
|
+
if (!firstVisibleRowComplete) {
|
|
2426
2303
|
// NOTE: We don't consider paneOffset, because this may cause alternating
|
|
2427
2304
|
// adding and deleting of one row when scrolling. Instead we add one row
|
|
2428
2305
|
// in every case.
|
|
@@ -2441,7 +2318,7 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2441
2318
|
|
|
2442
2319
|
// Avoid expensive calls to setScrollTop if
|
|
2443
2320
|
// scrolling is not needed
|
|
2444
|
-
if (!
|
|
2321
|
+
if (!firstVisibleRowComplete) {
|
|
2445
2322
|
this._paneClipper.scrollToY(paneOffset);
|
|
2446
2323
|
}
|
|
2447
2324
|
},
|
|
@@ -2451,42 +2328,48 @@ qx.Class.define("qx.ui.table.pane.Scroller",
|
|
|
2451
2328
|
*
|
|
2452
2329
|
* @param editing {Boolean ? false} True if editing the cell
|
|
2453
2330
|
*/
|
|
2454
|
-
_updateFocusIndicator
|
|
2455
|
-
{
|
|
2331
|
+
_updateFocusIndicator(editing) {
|
|
2456
2332
|
var table = this.getTable();
|
|
2457
2333
|
|
|
2458
2334
|
if (!table.getEnabled()) {
|
|
2459
2335
|
return;
|
|
2460
2336
|
}
|
|
2461
2337
|
|
|
2462
|
-
this.__focusIndicator.moveToCell(
|
|
2338
|
+
this.__focusIndicator.moveToCell(
|
|
2339
|
+
this.__focusedCol,
|
|
2340
|
+
this.__focusedRow,
|
|
2341
|
+
editing
|
|
2342
|
+
);
|
|
2463
2343
|
}
|
|
2464
2344
|
},
|
|
2465
2345
|
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
2346
|
/*
|
|
2470
2347
|
*****************************************************************************
|
|
2471
2348
|
DESTRUCTOR
|
|
2472
2349
|
*****************************************************************************
|
|
2473
2350
|
*/
|
|
2474
2351
|
|
|
2475
|
-
destruct
|
|
2476
|
-
{
|
|
2352
|
+
destruct() {
|
|
2477
2353
|
this._stopInterval();
|
|
2478
2354
|
|
|
2479
2355
|
// this object was created by the table on init so we have to clean it up.
|
|
2480
2356
|
var tablePaneModel = this.getTablePaneModel();
|
|
2481
|
-
if (tablePaneModel)
|
|
2482
|
-
{
|
|
2357
|
+
if (tablePaneModel) {
|
|
2483
2358
|
tablePaneModel.dispose();
|
|
2484
2359
|
}
|
|
2485
2360
|
|
|
2486
2361
|
this.__lastPointerDownCell = this.__topRightWidget = this.__table = null;
|
|
2487
|
-
this._disposeObjects(
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2362
|
+
this._disposeObjects(
|
|
2363
|
+
"__horScrollBar",
|
|
2364
|
+
"__verScrollBar",
|
|
2365
|
+
"_headerClipper",
|
|
2366
|
+
"_paneClipper",
|
|
2367
|
+
"__focusIndicator",
|
|
2368
|
+
"__header",
|
|
2369
|
+
"__tablePane",
|
|
2370
|
+
"__top",
|
|
2371
|
+
"__timer",
|
|
2372
|
+
"__clipperContainer"
|
|
2373
|
+
);
|
|
2491
2374
|
}
|
|
2492
2375
|
});
|