@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
|
@@ -19,17 +19,13 @@
|
|
|
19
19
|
/**
|
|
20
20
|
* Single-value binding is a core component of the data binding package.
|
|
21
21
|
*/
|
|
22
|
-
qx.Class.define("qx.data.SingleValueBinding",
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
statics :
|
|
26
|
-
{
|
|
22
|
+
qx.Class.define("qx.data.SingleValueBinding", {
|
|
23
|
+
statics: {
|
|
27
24
|
/** internal reference for all bindings indexed by source object */
|
|
28
25
|
__bindings: {},
|
|
29
26
|
|
|
30
27
|
/** internal reference for all bindings indexed by target object */
|
|
31
|
-
__bindingsByTarget
|
|
32
|
-
|
|
28
|
+
__bindingsByTarget: {},
|
|
33
29
|
|
|
34
30
|
/**
|
|
35
31
|
* The function is responsible for binding a source objects property to
|
|
@@ -115,10 +111,13 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
115
111
|
* there is no property definition for object and property (source and
|
|
116
112
|
* target).
|
|
117
113
|
*/
|
|
118
|
-
bind
|
|
119
|
-
sourceObject,
|
|
120
|
-
|
|
121
|
-
|
|
114
|
+
bind(
|
|
115
|
+
sourceObject,
|
|
116
|
+
sourcePropertyChain,
|
|
117
|
+
targetObject,
|
|
118
|
+
targetPropertyChain,
|
|
119
|
+
options
|
|
120
|
+
) {
|
|
122
121
|
// check for the arguments
|
|
123
122
|
if (qx.core.Environment.get("qx.debug")) {
|
|
124
123
|
qx.core.Assert.assertObject(sourceObject, "sourceObject");
|
|
@@ -129,15 +128,18 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
129
128
|
|
|
130
129
|
// set up the target binding
|
|
131
130
|
var targetListenerMap = this.__setUpTargetBinding(
|
|
132
|
-
sourceObject,
|
|
131
|
+
sourceObject,
|
|
132
|
+
sourcePropertyChain,
|
|
133
|
+
targetObject,
|
|
134
|
+
targetPropertyChain,
|
|
135
|
+
options
|
|
133
136
|
);
|
|
134
137
|
|
|
135
138
|
// get the property names
|
|
136
139
|
var propertyNames = sourcePropertyChain.split(".");
|
|
137
140
|
|
|
138
141
|
// stuff that's needed to store for the listener function
|
|
139
|
-
var arrayIndexValues =
|
|
140
|
-
this.__checkForArrayInPropertyChain(propertyNames);
|
|
142
|
+
var arrayIndexValues = this.__checkForArrayInPropertyChain(propertyNames);
|
|
141
143
|
var sources = [];
|
|
142
144
|
var listeners = [];
|
|
143
145
|
var listenerIds = [];
|
|
@@ -157,24 +159,47 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
157
159
|
// push the array change event
|
|
158
160
|
eventNames.push("change");
|
|
159
161
|
} else {
|
|
160
|
-
var eventName = this.__getEventNameForProperty(
|
|
162
|
+
var eventName = this.__getEventNameForProperty(
|
|
163
|
+
source,
|
|
164
|
+
propertyName
|
|
165
|
+
);
|
|
166
|
+
|
|
161
167
|
if (!eventName) {
|
|
162
|
-
if (i == 0) {
|
|
168
|
+
if (i == 0) {
|
|
169
|
+
// the root property can not change --> error
|
|
163
170
|
throw new qx.core.AssertionError(
|
|
164
|
-
"Binding property " +
|
|
165
|
-
|
|
171
|
+
"Binding property " +
|
|
172
|
+
propertyName +
|
|
173
|
+
" of object " +
|
|
174
|
+
source +
|
|
175
|
+
" not possible: No event available. Full property chain: " +
|
|
176
|
+
sourcePropertyChain
|
|
166
177
|
);
|
|
167
178
|
}
|
|
168
179
|
|
|
169
|
-
if (
|
|
180
|
+
if (
|
|
181
|
+
source instanceof qx.core.Object &&
|
|
182
|
+
qx.Class.hasProperty(source.constructor, propertyName)
|
|
183
|
+
) {
|
|
170
184
|
qx.log.Logger.warn(
|
|
171
|
-
"Binding property " +
|
|
172
|
-
|
|
185
|
+
"Binding property " +
|
|
186
|
+
propertyName +
|
|
187
|
+
" of object " +
|
|
188
|
+
source +
|
|
189
|
+
" not possible: No event available. Full property chain: " +
|
|
190
|
+
sourcePropertyChain
|
|
173
191
|
);
|
|
174
192
|
}
|
|
175
193
|
|
|
176
194
|
// call the converter if no event could be found on binding creation
|
|
177
|
-
initialPromise = this.__setInitialValue(
|
|
195
|
+
initialPromise = this.__setInitialValue(
|
|
196
|
+
undefined,
|
|
197
|
+
targetObject,
|
|
198
|
+
targetPropertyChain,
|
|
199
|
+
options,
|
|
200
|
+
sourceObject
|
|
201
|
+
);
|
|
202
|
+
|
|
178
203
|
break;
|
|
179
204
|
}
|
|
180
205
|
eventNames.push(eventName);
|
|
@@ -184,36 +209,62 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
184
209
|
sources[i] = source;
|
|
185
210
|
|
|
186
211
|
// check for the last property
|
|
187
|
-
if (i == propertyNames.length -1) {
|
|
212
|
+
if (i == propertyNames.length - 1) {
|
|
188
213
|
// if it is an array, set the initial value and bind the event
|
|
189
214
|
if (arrayIndexValues[i] !== "") {
|
|
190
215
|
// get the current value
|
|
191
|
-
var itemIndex =
|
|
192
|
-
|
|
216
|
+
var itemIndex =
|
|
217
|
+
arrayIndexValues[i] === "last"
|
|
218
|
+
? source.length - 1
|
|
219
|
+
: arrayIndexValues[i];
|
|
193
220
|
var currentValue = source.getItem(itemIndex);
|
|
194
221
|
|
|
195
222
|
// set the initial value
|
|
196
|
-
initialPromise = this.__setInitialValue(
|
|
223
|
+
initialPromise = this.__setInitialValue(
|
|
224
|
+
currentValue,
|
|
225
|
+
targetObject,
|
|
226
|
+
targetPropertyChain,
|
|
227
|
+
options,
|
|
228
|
+
sourceObject
|
|
229
|
+
);
|
|
197
230
|
|
|
198
231
|
// bind the event
|
|
199
232
|
listenerIds[i] = this.__bindEventToProperty(
|
|
200
|
-
source,
|
|
233
|
+
source,
|
|
234
|
+
eventNames[i],
|
|
235
|
+
targetObject,
|
|
236
|
+
targetPropertyChain,
|
|
237
|
+
options,
|
|
238
|
+
arrayIndexValues[i]
|
|
201
239
|
);
|
|
202
240
|
} else {
|
|
203
241
|
// try to set the initial value
|
|
204
|
-
if (
|
|
205
|
-
|
|
206
|
-
|
|
242
|
+
if (
|
|
243
|
+
propertyNames[i] != null &&
|
|
244
|
+
source["get" + qx.lang.String.firstUp(propertyNames[i])] != null
|
|
245
|
+
) {
|
|
246
|
+
var currentValue =
|
|
247
|
+
source["get" + qx.lang.String.firstUp(propertyNames[i])]();
|
|
248
|
+
initialPromise = this.__setInitialValue(
|
|
249
|
+
currentValue,
|
|
250
|
+
targetObject,
|
|
251
|
+
targetPropertyChain,
|
|
252
|
+
options,
|
|
253
|
+
sourceObject
|
|
254
|
+
);
|
|
207
255
|
}
|
|
208
256
|
// bind the property
|
|
209
257
|
listenerIds[i] = this.__bindEventToProperty(
|
|
210
|
-
source,
|
|
258
|
+
source,
|
|
259
|
+
eventNames[i],
|
|
260
|
+
targetObject,
|
|
261
|
+
targetPropertyChain,
|
|
262
|
+
options
|
|
211
263
|
);
|
|
212
264
|
}
|
|
213
265
|
|
|
214
|
-
|
|
266
|
+
// if its not the last property
|
|
215
267
|
} else {
|
|
216
|
-
|
|
217
268
|
// create the context for the listener
|
|
218
269
|
var context = {
|
|
219
270
|
index: i,
|
|
@@ -228,7 +279,11 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
228
279
|
};
|
|
229
280
|
|
|
230
281
|
// create a listener
|
|
231
|
-
var listener = qx.lang.Function.bind(
|
|
282
|
+
var listener = qx.lang.Function.bind(
|
|
283
|
+
this.__chainListener,
|
|
284
|
+
this,
|
|
285
|
+
context
|
|
286
|
+
);
|
|
232
287
|
|
|
233
288
|
// store the listener for further processing
|
|
234
289
|
listeners.push(listener);
|
|
@@ -238,26 +293,39 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
238
293
|
}
|
|
239
294
|
|
|
240
295
|
// get and store the next source
|
|
241
|
-
if (
|
|
296
|
+
if (
|
|
297
|
+
source["get" + qx.lang.String.firstUp(propertyNames[i])] == null
|
|
298
|
+
) {
|
|
242
299
|
source = undefined;
|
|
243
300
|
} else if (arrayIndexValues[i] !== "") {
|
|
244
|
-
var itemIndex =
|
|
245
|
-
|
|
246
|
-
|
|
301
|
+
var itemIndex =
|
|
302
|
+
arrayIndexValues[i] === "last"
|
|
303
|
+
? source.length - 1
|
|
304
|
+
: arrayIndexValues[i];
|
|
305
|
+
source =
|
|
306
|
+
source["get" + qx.lang.String.firstUp(propertyNames[i])](
|
|
307
|
+
itemIndex
|
|
308
|
+
);
|
|
247
309
|
} else {
|
|
248
310
|
source = source["get" + qx.lang.String.firstUp(propertyNames[i])]();
|
|
249
311
|
// the value should be undefined if we can not find the last part of the property chain
|
|
250
|
-
if (source === null &&
|
|
312
|
+
if (source === null && propertyNames.length - 1 != i) {
|
|
251
313
|
source = undefined;
|
|
252
314
|
}
|
|
253
315
|
}
|
|
254
316
|
if (!source) {
|
|
255
317
|
// call the converter if no source could be found on binding creation
|
|
256
|
-
this.__setInitialValue(
|
|
318
|
+
this.__setInitialValue(
|
|
319
|
+
source,
|
|
320
|
+
targetObject,
|
|
321
|
+
targetPropertyChain,
|
|
322
|
+
options,
|
|
323
|
+
sourceObject
|
|
324
|
+
);
|
|
325
|
+
|
|
257
326
|
break;
|
|
258
327
|
}
|
|
259
328
|
}
|
|
260
|
-
|
|
261
329
|
} catch (ex) {
|
|
262
330
|
// remove the already added listener
|
|
263
331
|
// go through all added listeners (source)
|
|
@@ -290,26 +358,30 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
290
358
|
targets: targetListenerMap.targets,
|
|
291
359
|
initialPromise: initialPromise
|
|
292
360
|
};
|
|
361
|
+
|
|
293
362
|
// store the bindings
|
|
294
363
|
this.__storeBinding(
|
|
295
|
-
id,
|
|
364
|
+
id,
|
|
365
|
+
sourceObject,
|
|
366
|
+
sourcePropertyChain,
|
|
367
|
+
targetObject,
|
|
368
|
+
targetPropertyChain
|
|
296
369
|
);
|
|
297
370
|
|
|
298
371
|
return id;
|
|
299
372
|
},
|
|
300
373
|
|
|
301
|
-
|
|
302
374
|
/**
|
|
303
375
|
* Event listener for the chaining of the properties.
|
|
304
376
|
*
|
|
305
377
|
* @param context {Map} The current context for the listener.
|
|
306
378
|
*/
|
|
307
|
-
__chainListener
|
|
308
|
-
{
|
|
379
|
+
__chainListener(context) {
|
|
309
380
|
// invoke the onUpdate method
|
|
310
381
|
if (context.options && context.options.onUpdate) {
|
|
311
382
|
context.options.onUpdate(
|
|
312
|
-
context.sources[context.index],
|
|
383
|
+
context.sources[context.index],
|
|
384
|
+
context.targetObject
|
|
313
385
|
);
|
|
314
386
|
}
|
|
315
387
|
|
|
@@ -332,25 +404,32 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
332
404
|
for (var j = context.index + 1; j < context.propertyNames.length; j++) {
|
|
333
405
|
// get and store the new source
|
|
334
406
|
if (context.arrayIndexValues[j - 1] !== "") {
|
|
335
|
-
source = source[
|
|
407
|
+
source = source[
|
|
408
|
+
"get" + qx.lang.String.firstUp(context.propertyNames[j - 1])
|
|
409
|
+
](context.arrayIndexValues[j - 1]);
|
|
336
410
|
} else {
|
|
337
|
-
source =
|
|
411
|
+
source =
|
|
412
|
+
source[
|
|
413
|
+
"get" + qx.lang.String.firstUp(context.propertyNames[j - 1])
|
|
414
|
+
]();
|
|
338
415
|
}
|
|
339
416
|
context.sources[j] = source;
|
|
340
417
|
// reset the target object if no new source could be found
|
|
341
418
|
if (!source) {
|
|
342
419
|
// use the converter if the property chain breaks [BUG# 6880]
|
|
343
420
|
if (context.options && context.options.converter) {
|
|
344
|
-
|
|
345
421
|
var ignoreConverter = false;
|
|
346
422
|
// take care of the ignore pattern used for the controller
|
|
347
423
|
if (context.options.ignoreConverter) {
|
|
348
424
|
// the current property chain as string
|
|
349
|
-
var currentSourceChain = context.propertyNames
|
|
425
|
+
var currentSourceChain = context.propertyNames
|
|
426
|
+
.slice(0, j)
|
|
427
|
+
.join(".");
|
|
350
428
|
// match for the current pattern given in the options
|
|
351
429
|
var match = currentSourceChain.match(
|
|
352
430
|
new RegExp("^" + context.options.ignoreConverter)
|
|
353
431
|
);
|
|
432
|
+
|
|
354
433
|
ignoreConverter = match ? match.length > 0 : false;
|
|
355
434
|
}
|
|
356
435
|
|
|
@@ -361,10 +440,16 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
361
440
|
context.options.converter()
|
|
362
441
|
);
|
|
363
442
|
} else {
|
|
364
|
-
this.__resetTargetValue(
|
|
443
|
+
this.__resetTargetValue(
|
|
444
|
+
context.targetObject,
|
|
445
|
+
context.targetPropertyChain
|
|
446
|
+
);
|
|
365
447
|
}
|
|
366
448
|
} else {
|
|
367
|
-
this.__resetTargetValue(
|
|
449
|
+
this.__resetTargetValue(
|
|
450
|
+
context.targetObject,
|
|
451
|
+
context.targetPropertyChain
|
|
452
|
+
);
|
|
368
453
|
}
|
|
369
454
|
|
|
370
455
|
break;
|
|
@@ -373,40 +458,85 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
373
458
|
// if its the last property
|
|
374
459
|
if (j == context.propertyNames.length - 1) {
|
|
375
460
|
// if its an array
|
|
376
|
-
if (
|
|
461
|
+
if (
|
|
462
|
+
qx.Class.implementsInterface(source, qx.data.IListData) &&
|
|
463
|
+
context.arrayIndexValues[j] !== ""
|
|
464
|
+
) {
|
|
377
465
|
// set the initial value
|
|
378
|
-
var itemIndex =
|
|
379
|
-
|
|
466
|
+
var itemIndex =
|
|
467
|
+
context.arrayIndexValues[j] === "last"
|
|
468
|
+
? source.length - 1
|
|
469
|
+
: context.arrayIndexValues[j];
|
|
380
470
|
var currentValue = source.getItem(itemIndex);
|
|
381
471
|
this.__setInitialValue(
|
|
382
|
-
currentValue,
|
|
472
|
+
currentValue,
|
|
473
|
+
context.targetObject,
|
|
474
|
+
context.targetPropertyChain,
|
|
475
|
+
context.options,
|
|
476
|
+
context.sources[context.index]
|
|
383
477
|
);
|
|
384
478
|
|
|
385
479
|
// bind the item event to the new target
|
|
386
480
|
context.listenerIds[j] = this.__bindEventToProperty(
|
|
387
|
-
source,
|
|
481
|
+
source,
|
|
482
|
+
"change",
|
|
483
|
+
context.targetObject,
|
|
484
|
+
context.targetPropertyChain,
|
|
485
|
+
context.options,
|
|
486
|
+
context.arrayIndexValues[j]
|
|
388
487
|
);
|
|
389
|
-
|
|
390
488
|
} else {
|
|
391
|
-
if (
|
|
392
|
-
|
|
393
|
-
|
|
489
|
+
if (
|
|
490
|
+
context.propertyNames[j] != null &&
|
|
491
|
+
source[
|
|
492
|
+
"get" + qx.lang.String.firstUp(context.propertyNames[j])
|
|
493
|
+
] != null
|
|
494
|
+
) {
|
|
495
|
+
var currentValue =
|
|
496
|
+
source[
|
|
497
|
+
"get" + qx.lang.String.firstUp(context.propertyNames[j])
|
|
498
|
+
]();
|
|
499
|
+
|
|
500
|
+
this.__setInitialValue(
|
|
501
|
+
currentValue,
|
|
502
|
+
context.targetObject,
|
|
503
|
+
context.targetPropertyChain,
|
|
504
|
+
context.options,
|
|
505
|
+
context.sources[context.index]
|
|
506
|
+
);
|
|
394
507
|
}
|
|
395
|
-
var eventName = this.__getEventNameForProperty(
|
|
508
|
+
var eventName = this.__getEventNameForProperty(
|
|
509
|
+
source,
|
|
510
|
+
context.propertyNames[j]
|
|
511
|
+
);
|
|
512
|
+
|
|
396
513
|
if (!eventName) {
|
|
397
514
|
context.sources[j] = null;
|
|
398
|
-
this.__resetTargetValue(
|
|
515
|
+
this.__resetTargetValue(
|
|
516
|
+
context.targetObject,
|
|
517
|
+
context.targetPropertyChain
|
|
518
|
+
);
|
|
519
|
+
|
|
399
520
|
return;
|
|
400
521
|
}
|
|
401
522
|
// bind the last property to the new target
|
|
402
523
|
context.listenerIds[j] = this.__bindEventToProperty(
|
|
403
|
-
source,
|
|
524
|
+
source,
|
|
525
|
+
eventName,
|
|
526
|
+
context.targetObject,
|
|
527
|
+
context.targetPropertyChain,
|
|
528
|
+
context.options
|
|
404
529
|
);
|
|
405
530
|
}
|
|
406
531
|
} else {
|
|
407
532
|
// check if a listener already created
|
|
408
533
|
if (context.listeners[j] == null) {
|
|
409
|
-
var listener = qx.lang.Function.bind(
|
|
534
|
+
var listener = qx.lang.Function.bind(
|
|
535
|
+
this.__chainListener,
|
|
536
|
+
this,
|
|
537
|
+
context
|
|
538
|
+
);
|
|
539
|
+
|
|
410
540
|
// store the listener for further processing
|
|
411
541
|
context.listeners.push(listener);
|
|
412
542
|
}
|
|
@@ -414,20 +544,29 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
414
544
|
if (qx.Class.implementsInterface(source, qx.data.IListData)) {
|
|
415
545
|
var eventName = "change";
|
|
416
546
|
} else {
|
|
417
|
-
var eventName = this.__getEventNameForProperty(
|
|
547
|
+
var eventName = this.__getEventNameForProperty(
|
|
548
|
+
source,
|
|
549
|
+
context.propertyNames[j]
|
|
550
|
+
);
|
|
418
551
|
}
|
|
419
552
|
|
|
420
553
|
if (!eventName) {
|
|
421
554
|
context.sources[j] = null;
|
|
422
|
-
this.__resetTargetValue(
|
|
555
|
+
this.__resetTargetValue(
|
|
556
|
+
context.targetObject,
|
|
557
|
+
context.targetPropertyChain
|
|
558
|
+
);
|
|
559
|
+
|
|
423
560
|
return;
|
|
424
561
|
}
|
|
425
|
-
context.listenerIds[j] = source.addListener(
|
|
562
|
+
context.listenerIds[j] = source.addListener(
|
|
563
|
+
eventName,
|
|
564
|
+
context.listeners[j]
|
|
565
|
+
);
|
|
426
566
|
}
|
|
427
567
|
}
|
|
428
568
|
},
|
|
429
569
|
|
|
430
|
-
|
|
431
570
|
/**
|
|
432
571
|
* Internal helper for setting up the listening to the changes on the
|
|
433
572
|
* target side of the binding. Only works if the target property is a
|
|
@@ -444,14 +583,17 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
444
583
|
* converter.
|
|
445
584
|
* @return {var} A map containing the listener ids and the targets.
|
|
446
585
|
*/
|
|
447
|
-
__setUpTargetBinding
|
|
448
|
-
sourceObject,
|
|
586
|
+
__setUpTargetBinding(
|
|
587
|
+
sourceObject,
|
|
588
|
+
sourcePropertyChain,
|
|
589
|
+
targetObject,
|
|
590
|
+
targetPropertyChain,
|
|
591
|
+
options
|
|
449
592
|
) {
|
|
450
593
|
// get the property names
|
|
451
594
|
var propertyNames = targetPropertyChain.split(".");
|
|
452
595
|
|
|
453
|
-
var arrayIndexValues =
|
|
454
|
-
this.__checkForArrayInPropertyChain(propertyNames);
|
|
596
|
+
var arrayIndexValues = this.__checkForArrayInPropertyChain(propertyNames);
|
|
455
597
|
var targets = [];
|
|
456
598
|
var listeners = [];
|
|
457
599
|
var listenerIds = [];
|
|
@@ -465,7 +607,11 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
465
607
|
// push the array change event
|
|
466
608
|
eventNames.push("change");
|
|
467
609
|
} else {
|
|
468
|
-
var eventName = this.__getEventNameForProperty(
|
|
610
|
+
var eventName = this.__getEventNameForProperty(
|
|
611
|
+
target,
|
|
612
|
+
propertyNames[i]
|
|
613
|
+
);
|
|
614
|
+
|
|
469
615
|
if (!eventName) {
|
|
470
616
|
// if the event names could not be terminated,
|
|
471
617
|
// just ignore the target chain listening
|
|
@@ -478,7 +624,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
478
624
|
targets[i] = target;
|
|
479
625
|
|
|
480
626
|
// create a listener
|
|
481
|
-
var listener = function() {
|
|
627
|
+
var listener = function () {
|
|
482
628
|
// delete all listener after the current one
|
|
483
629
|
for (var j = i + 1; j < propertyNames.length - 1; j++) {
|
|
484
630
|
// remove the old sources
|
|
@@ -496,12 +642,13 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
496
642
|
var target = targets[i];
|
|
497
643
|
// add new once after the current one
|
|
498
644
|
for (var j = i + 1; j < propertyNames.length - 1; j++) {
|
|
499
|
-
|
|
500
645
|
var firstUpPropName = qx.lang.String.firstUp(propertyNames[j - 1]);
|
|
501
646
|
// get and store the new target
|
|
502
647
|
if (arrayIndexValues[j - 1] !== "") {
|
|
503
|
-
var currentIndex =
|
|
504
|
-
|
|
648
|
+
var currentIndex =
|
|
649
|
+
arrayIndexValues[j - 1] === "last"
|
|
650
|
+
? target.getLength() - 1
|
|
651
|
+
: arrayIndexValues[j - 1];
|
|
505
652
|
target = target["get" + firstUpPropName](currentIndex);
|
|
506
653
|
} else {
|
|
507
654
|
target = target["get" + firstUpPropName]();
|
|
@@ -523,8 +670,10 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
523
670
|
} else {
|
|
524
671
|
var eventName =
|
|
525
672
|
qx.data.SingleValueBinding.__getEventNameForProperty(
|
|
526
|
-
target,
|
|
673
|
+
target,
|
|
674
|
+
propertyNames[j]
|
|
527
675
|
);
|
|
676
|
+
|
|
528
677
|
if (!eventName) {
|
|
529
678
|
// if the event name could not be terminated,
|
|
530
679
|
// ignore the rest
|
|
@@ -533,10 +682,14 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
533
682
|
}
|
|
534
683
|
|
|
535
684
|
listenerIds[j] = target.addListener(eventName, listeners[j]);
|
|
536
|
-
|
|
685
|
+
}
|
|
537
686
|
|
|
538
687
|
qx.data.SingleValueBinding.updateTarget(
|
|
539
|
-
sourceObject,
|
|
688
|
+
sourceObject,
|
|
689
|
+
sourcePropertyChain,
|
|
690
|
+
targetObject,
|
|
691
|
+
targetPropertyChain,
|
|
692
|
+
options
|
|
540
693
|
);
|
|
541
694
|
};
|
|
542
695
|
|
|
@@ -560,10 +713,9 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
560
713
|
}
|
|
561
714
|
}
|
|
562
715
|
|
|
563
|
-
return {listenerIds: listenerIds, targets: targets};
|
|
716
|
+
return { listenerIds: listenerIds, targets: targets };
|
|
564
717
|
},
|
|
565
718
|
|
|
566
|
-
|
|
567
719
|
/**
|
|
568
720
|
* Helper for updating the target. Gets the current set data from the source
|
|
569
721
|
* and set that on the target.
|
|
@@ -580,21 +732,27 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
580
732
|
*
|
|
581
733
|
* @internal
|
|
582
734
|
*/
|
|
583
|
-
updateTarget
|
|
584
|
-
sourceObject,
|
|
585
|
-
|
|
586
|
-
|
|
735
|
+
updateTarget(
|
|
736
|
+
sourceObject,
|
|
737
|
+
sourcePropertyChain,
|
|
738
|
+
targetObject,
|
|
739
|
+
targetPropertyChain,
|
|
740
|
+
options
|
|
741
|
+
) {
|
|
587
742
|
var value = this.resolvePropertyChain(sourceObject, sourcePropertyChain);
|
|
588
743
|
|
|
589
744
|
// convert the data before setting
|
|
590
745
|
value = qx.data.SingleValueBinding.__convertValue(
|
|
591
|
-
value,
|
|
746
|
+
value,
|
|
747
|
+
targetObject,
|
|
748
|
+
targetPropertyChain,
|
|
749
|
+
options,
|
|
750
|
+
sourceObject
|
|
592
751
|
);
|
|
593
752
|
|
|
594
753
|
this.__setTargetValue(targetObject, targetPropertyChain, value);
|
|
595
754
|
},
|
|
596
755
|
|
|
597
|
-
|
|
598
756
|
/**
|
|
599
757
|
* Internal helper for getting the current set value at the property chain.
|
|
600
758
|
*
|
|
@@ -603,12 +761,11 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
603
761
|
* the source property.
|
|
604
762
|
* @return {var?undefined} Returns the set value if defined.
|
|
605
763
|
*/
|
|
606
|
-
resolvePropertyChain
|
|
764
|
+
resolvePropertyChain(o, propertyChain) {
|
|
607
765
|
var properties = this.__getPropertyChainArray(propertyChain);
|
|
608
766
|
return this.__getTargetFromChain(o, properties, properties.length);
|
|
609
767
|
},
|
|
610
768
|
|
|
611
|
-
|
|
612
769
|
/**
|
|
613
770
|
* Tries to return a fitting event name to the given source object and
|
|
614
771
|
* property name. First, it assumes that the property name is a real property
|
|
@@ -622,8 +779,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
622
779
|
* @param propertyName {String} The name of the property.
|
|
623
780
|
* @return {String|null} The name of the corresponding event or null.
|
|
624
781
|
*/
|
|
625
|
-
__getEventNameForProperty
|
|
626
|
-
{
|
|
782
|
+
__getEventNameForProperty(source, propertyName) {
|
|
627
783
|
// get the current event name from the property definition
|
|
628
784
|
var eventName = this.__getEventForProperty(source, propertyName);
|
|
629
785
|
// if no event name could be found
|
|
@@ -631,9 +787,12 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
631
787
|
// check if the propertyName is the event name
|
|
632
788
|
if (qx.Class.supportsEvent(source.constructor, propertyName)) {
|
|
633
789
|
eventName = propertyName;
|
|
634
|
-
|
|
635
|
-
} else if (
|
|
636
|
-
|
|
790
|
+
// check if the change + propertyName is the event name
|
|
791
|
+
} else if (
|
|
792
|
+
qx.Class.supportsEvent(
|
|
793
|
+
source.constructor,
|
|
794
|
+
"change" + qx.lang.String.firstUp(propertyName)
|
|
795
|
+
)
|
|
637
796
|
) {
|
|
638
797
|
eventName = "change" + qx.lang.String.firstUp(propertyName);
|
|
639
798
|
} else {
|
|
@@ -643,7 +802,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
643
802
|
return eventName;
|
|
644
803
|
},
|
|
645
804
|
|
|
646
|
-
|
|
647
805
|
/**
|
|
648
806
|
* Resets the value of the given target after resolving the target property
|
|
649
807
|
* chain.
|
|
@@ -653,8 +811,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
653
811
|
* @param targetPropertyChain {String} The names of the properties,
|
|
654
812
|
* separated with a dot.
|
|
655
813
|
*/
|
|
656
|
-
__resetTargetValue
|
|
657
|
-
{
|
|
814
|
+
__resetTargetValue(targetObject, targetPropertyChain) {
|
|
658
815
|
// get the last target object of the chain
|
|
659
816
|
var properties = this.__getPropertyChainArray(targetPropertyChain);
|
|
660
817
|
var target = this.__getTargetFromChain(targetObject, properties);
|
|
@@ -669,19 +826,25 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
669
826
|
}
|
|
670
827
|
|
|
671
828
|
// try to reset the property
|
|
672
|
-
if (
|
|
829
|
+
if (
|
|
830
|
+
target["reset" + qx.lang.String.firstUp(lastProperty)] != undefined
|
|
831
|
+
) {
|
|
673
832
|
target["reset" + qx.lang.String.firstUp(lastProperty)]();
|
|
674
833
|
} else {
|
|
675
834
|
// fallback if no resetter is given (see bug #2456)
|
|
676
|
-
if
|
|
677
|
-
|
|
835
|
+
if (
|
|
836
|
+
typeof target["set" + qx.lang.String.firstUp(lastProperty)] !=
|
|
837
|
+
"function"
|
|
838
|
+
) {
|
|
839
|
+
throw new qx.core.AssertionError(
|
|
840
|
+
"No setter for '" + lastProperty + "' on target " + target + "."
|
|
841
|
+
);
|
|
678
842
|
}
|
|
679
843
|
target["set" + qx.lang.String.firstUp(lastProperty)](null);
|
|
680
844
|
}
|
|
681
845
|
}
|
|
682
846
|
},
|
|
683
847
|
|
|
684
|
-
|
|
685
848
|
/**
|
|
686
849
|
* Sets the given value to the given target after resolving the
|
|
687
850
|
* target property chain.
|
|
@@ -692,8 +855,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
692
855
|
* separated with a dot.
|
|
693
856
|
* @param value {var} The value to set.
|
|
694
857
|
*/
|
|
695
|
-
__setTargetValue
|
|
696
|
-
{
|
|
858
|
+
__setTargetValue(targetObject, targetPropertyChain, value) {
|
|
697
859
|
// get the last target object of the chain
|
|
698
860
|
var properties = this.__getPropertyChainArray(targetPropertyChain);
|
|
699
861
|
var target = this.__getTargetFromChain(targetObject, properties);
|
|
@@ -710,15 +872,19 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
710
872
|
}
|
|
711
873
|
target.setItem(index, value);
|
|
712
874
|
} else {
|
|
713
|
-
if
|
|
714
|
-
|
|
875
|
+
if (
|
|
876
|
+
typeof target["set" + qx.lang.String.firstUp(lastProperty)] !=
|
|
877
|
+
"function"
|
|
878
|
+
) {
|
|
879
|
+
throw new qx.core.AssertionError(
|
|
880
|
+
"No setter for '" + lastProperty + "' on target " + target + "."
|
|
881
|
+
);
|
|
715
882
|
}
|
|
716
883
|
return target["set" + qx.lang.String.firstUp(lastProperty)](value);
|
|
717
884
|
}
|
|
718
885
|
}
|
|
719
886
|
},
|
|
720
887
|
|
|
721
|
-
|
|
722
888
|
/**
|
|
723
889
|
* Returns the index from a property using bracket notation, e.g.
|
|
724
890
|
* "[42]" returns "42", "[last]" returns "last"
|
|
@@ -727,31 +893,31 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
727
893
|
* @return {String|null} Array index or null if the property name does
|
|
728
894
|
* not use bracket notation
|
|
729
895
|
*/
|
|
730
|
-
__getArrayIndex
|
|
896
|
+
__getArrayIndex(propertyName) {
|
|
731
897
|
var arrayExp = /^\[(\d+|last)\]$/;
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
898
|
+
var arrayMatch = propertyName.match(arrayExp);
|
|
899
|
+
if (arrayMatch) {
|
|
900
|
+
return arrayMatch[1];
|
|
901
|
+
}
|
|
902
|
+
return null;
|
|
737
903
|
},
|
|
738
904
|
|
|
739
|
-
|
|
740
905
|
/**
|
|
741
906
|
* Converts a property chain string into a list of properties and/or
|
|
742
907
|
* array indexes
|
|
743
908
|
* @param targetPropertyChain {String} property chain
|
|
744
909
|
* @return {String[]} Array of property names
|
|
745
910
|
*/
|
|
746
|
-
__getPropertyChainArray
|
|
911
|
+
__getPropertyChainArray(targetPropertyChain) {
|
|
747
912
|
// split properties (dot notation) and array indexes (bracket notation)
|
|
748
|
-
return targetPropertyChain
|
|
749
|
-
.
|
|
913
|
+
return targetPropertyChain
|
|
914
|
+
.replace(/\[/g, ".[")
|
|
915
|
+
.split(".")
|
|
916
|
+
.filter(function (prop) {
|
|
750
917
|
return prop !== "";
|
|
751
918
|
});
|
|
752
919
|
},
|
|
753
920
|
|
|
754
|
-
|
|
755
921
|
/**
|
|
756
922
|
* Helper-Function resolving the object on which the last property of the
|
|
757
923
|
* chain should be set.
|
|
@@ -764,8 +930,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
764
930
|
* @return {qx.core.Object | null} The object on which the last property
|
|
765
931
|
* should be set.
|
|
766
932
|
*/
|
|
767
|
-
__getTargetFromChain
|
|
768
|
-
{
|
|
933
|
+
__getTargetFromChain(targetObject, targetProperties, index) {
|
|
769
934
|
index = index || targetProperties.length - 1;
|
|
770
935
|
var target = targetObject;
|
|
771
936
|
|
|
@@ -781,8 +946,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
781
946
|
arrIndex = target.length - 1;
|
|
782
947
|
}
|
|
783
948
|
target = target.getItem(arrIndex);
|
|
784
|
-
}
|
|
785
|
-
else {
|
|
949
|
+
} else {
|
|
786
950
|
target = target["get" + qx.lang.String.firstUp(property)]();
|
|
787
951
|
}
|
|
788
952
|
} catch (ex) {
|
|
@@ -792,7 +956,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
792
956
|
return target;
|
|
793
957
|
},
|
|
794
958
|
|
|
795
|
-
|
|
796
959
|
/**
|
|
797
960
|
* Set the given value to the target property. This method is used for
|
|
798
961
|
* initially set the value.
|
|
@@ -807,12 +970,22 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
807
970
|
* @param sourceObject {qx.core.Object} The source object of the binding (
|
|
808
971
|
* used for the onUpdate callback).
|
|
809
972
|
*/
|
|
810
|
-
__setInitialValue
|
|
811
|
-
|
|
973
|
+
__setInitialValue(
|
|
974
|
+
value,
|
|
975
|
+
targetObject,
|
|
976
|
+
targetPropertyChain,
|
|
977
|
+
options,
|
|
978
|
+
sourceObject
|
|
979
|
+
) {
|
|
812
980
|
// first convert the initial value
|
|
813
981
|
value = this.__convertValue(
|
|
814
|
-
value,
|
|
982
|
+
value,
|
|
983
|
+
targetObject,
|
|
984
|
+
targetPropertyChain,
|
|
985
|
+
options,
|
|
986
|
+
sourceObject
|
|
815
987
|
);
|
|
988
|
+
|
|
816
989
|
// check if the converted value is undefined
|
|
817
990
|
if (value === undefined) {
|
|
818
991
|
this.__resetTargetValue(targetObject, targetPropertyChain);
|
|
@@ -820,7 +993,11 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
820
993
|
// only set the initial value if one is given (may be null)
|
|
821
994
|
if (value !== undefined) {
|
|
822
995
|
try {
|
|
823
|
-
var result = this.__setTargetValue(
|
|
996
|
+
var result = this.__setTargetValue(
|
|
997
|
+
targetObject,
|
|
998
|
+
targetPropertyChain,
|
|
999
|
+
value
|
|
1000
|
+
);
|
|
824
1001
|
|
|
825
1002
|
// tell the user that the setter was invoked probably
|
|
826
1003
|
if (options && options.onUpdate) {
|
|
@@ -828,7 +1005,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
828
1005
|
}
|
|
829
1006
|
return result;
|
|
830
1007
|
} catch (e) {
|
|
831
|
-
if (!
|
|
1008
|
+
if (!(e instanceof qx.core.ValidationError)) {
|
|
832
1009
|
throw e;
|
|
833
1010
|
}
|
|
834
1011
|
|
|
@@ -836,15 +1013,18 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
836
1013
|
options.onSetFail(e);
|
|
837
1014
|
} else {
|
|
838
1015
|
qx.log.Logger.warn(
|
|
839
|
-
"Failed so set value " +
|
|
840
|
-
|
|
1016
|
+
"Failed so set value " +
|
|
1017
|
+
value +
|
|
1018
|
+
" on " +
|
|
1019
|
+
targetObject +
|
|
1020
|
+
". Error message: " +
|
|
1021
|
+
e
|
|
841
1022
|
);
|
|
842
1023
|
}
|
|
843
1024
|
}
|
|
844
1025
|
}
|
|
845
1026
|
},
|
|
846
1027
|
|
|
847
|
-
|
|
848
1028
|
/**
|
|
849
1029
|
* Checks for an array element in the given property names and adapts the
|
|
850
1030
|
* arrays to fit the algorithm.
|
|
@@ -854,7 +1034,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
854
1034
|
* @return {Array} An array containing the values of the array properties
|
|
855
1035
|
* corresponding to the property names.
|
|
856
1036
|
*/
|
|
857
|
-
__checkForArrayInPropertyChain
|
|
1037
|
+
__checkForArrayInPropertyChain(propertyNames) {
|
|
858
1038
|
// array for the values of the array properties
|
|
859
1039
|
var arrayIndexValues = [];
|
|
860
1040
|
|
|
@@ -864,17 +1044,25 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
864
1044
|
// if its an array property in the chain
|
|
865
1045
|
if (name.endsWith("]")) {
|
|
866
1046
|
// get the inner value of the array notation
|
|
867
|
-
var arrayIndex = name.substring(
|
|
1047
|
+
var arrayIndex = name.substring(
|
|
1048
|
+
name.indexOf("[") + 1,
|
|
1049
|
+
name.indexOf("]")
|
|
1050
|
+
);
|
|
868
1051
|
|
|
869
1052
|
// check the arrayIndex
|
|
870
1053
|
if (name.indexOf("]") != name.length - 1) {
|
|
871
|
-
throw new Error(
|
|
872
|
-
+ name + " does not work."
|
|
1054
|
+
throw new Error(
|
|
1055
|
+
"Please use only one array at a time: " + name + " does not work."
|
|
1056
|
+
);
|
|
873
1057
|
}
|
|
874
1058
|
if (arrayIndex !== "last") {
|
|
875
1059
|
if (arrayIndex == "" || isNaN(parseInt(arrayIndex, 10))) {
|
|
876
|
-
throw new Error(
|
|
877
|
-
|
|
1060
|
+
throw new Error(
|
|
1061
|
+
"No number or 'last' value has been given" +
|
|
1062
|
+
" in an array binding: " +
|
|
1063
|
+
name +
|
|
1064
|
+
" does not work."
|
|
1065
|
+
);
|
|
878
1066
|
}
|
|
879
1067
|
}
|
|
880
1068
|
|
|
@@ -889,13 +1077,12 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
889
1077
|
propertyNames.splice(i + 1, 0, "item");
|
|
890
1078
|
// skip the next iteration. its the array item and its already set
|
|
891
1079
|
i++;
|
|
892
|
-
|
|
1080
|
+
// it the array notation is the beginning
|
|
893
1081
|
} else {
|
|
894
1082
|
// store the array index and override the entry in the property names
|
|
895
1083
|
arrayIndexValues[i] = arrayIndex;
|
|
896
1084
|
propertyNames.splice(i, 1, "item");
|
|
897
1085
|
}
|
|
898
|
-
|
|
899
1086
|
} else {
|
|
900
1087
|
arrayIndexValues[i] = "";
|
|
901
1088
|
}
|
|
@@ -904,7 +1091,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
904
1091
|
return arrayIndexValues;
|
|
905
1092
|
},
|
|
906
1093
|
|
|
907
|
-
|
|
908
1094
|
/**
|
|
909
1095
|
* Internal helper method which is actually doing all bindings. That means
|
|
910
1096
|
* that an event listener will be added to the source object which listens
|
|
@@ -934,23 +1120,33 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
934
1120
|
* there is no property definition for the target object and target
|
|
935
1121
|
* property.
|
|
936
1122
|
*/
|
|
937
|
-
__bindEventToProperty
|
|
938
|
-
|
|
939
|
-
|
|
1123
|
+
__bindEventToProperty(
|
|
1124
|
+
sourceObject,
|
|
1125
|
+
sourceEvent,
|
|
1126
|
+
targetObject,
|
|
1127
|
+
targetProperty,
|
|
1128
|
+
options,
|
|
1129
|
+
arrayIndex
|
|
1130
|
+
) {
|
|
940
1131
|
// checks
|
|
941
1132
|
if (qx.core.Environment.get("qx.debug")) {
|
|
942
1133
|
// check for the data event
|
|
943
1134
|
var eventType = qx.Class.getEventType(
|
|
944
|
-
sourceObject.constructor,
|
|
1135
|
+
sourceObject.constructor,
|
|
1136
|
+
sourceEvent
|
|
945
1137
|
);
|
|
1138
|
+
|
|
946
1139
|
qx.core.Assert.assertEquals(
|
|
947
|
-
"qx.event.type.Data",
|
|
948
|
-
|
|
949
|
-
|
|
1140
|
+
"qx.event.type.Data",
|
|
1141
|
+
eventType,
|
|
1142
|
+
sourceEvent +
|
|
1143
|
+
" is not an data (qx.event.type.Data) event on " +
|
|
1144
|
+
sourceObject +
|
|
1145
|
+
"."
|
|
950
1146
|
);
|
|
951
1147
|
}
|
|
952
1148
|
|
|
953
|
-
var bindListener = function(arrayIndex, e) {
|
|
1149
|
+
var bindListener = function (arrayIndex, e) {
|
|
954
1150
|
// if an array value is given
|
|
955
1151
|
if (arrayIndex !== "") {
|
|
956
1152
|
//check if its the "last" value
|
|
@@ -963,7 +1159,10 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
963
1159
|
|
|
964
1160
|
// reset the target if the data is not set
|
|
965
1161
|
if (data === undefined) {
|
|
966
|
-
qx.data.SingleValueBinding.__resetTargetValue(
|
|
1162
|
+
qx.data.SingleValueBinding.__resetTargetValue(
|
|
1163
|
+
targetObject,
|
|
1164
|
+
targetProperty
|
|
1165
|
+
);
|
|
967
1166
|
}
|
|
968
1167
|
|
|
969
1168
|
// only do something if the current array has been changed
|
|
@@ -979,14 +1178,28 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
979
1178
|
|
|
980
1179
|
// debug message
|
|
981
1180
|
if (qx.core.Environment.get("qx.debug.databinding")) {
|
|
982
|
-
qx.log.Logger.debug(
|
|
983
|
-
|
|
1181
|
+
qx.log.Logger.debug(
|
|
1182
|
+
"Binding executed from " +
|
|
1183
|
+
sourceObject +
|
|
1184
|
+
" by " +
|
|
1185
|
+
sourceEvent +
|
|
1186
|
+
" to " +
|
|
1187
|
+
targetObject +
|
|
1188
|
+
" (" +
|
|
1189
|
+
targetProperty +
|
|
1190
|
+
")"
|
|
1191
|
+
);
|
|
1192
|
+
|
|
984
1193
|
qx.log.Logger.debug("Data before conversion: " + data);
|
|
985
1194
|
}
|
|
986
1195
|
|
|
987
1196
|
// convert the data
|
|
988
1197
|
data = qx.data.SingleValueBinding.__convertValue(
|
|
989
|
-
data,
|
|
1198
|
+
data,
|
|
1199
|
+
targetObject,
|
|
1200
|
+
targetProperty,
|
|
1201
|
+
options,
|
|
1202
|
+
sourceObject
|
|
990
1203
|
);
|
|
991
1204
|
|
|
992
1205
|
// debug message
|
|
@@ -998,18 +1211,24 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
998
1211
|
var result;
|
|
999
1212
|
try {
|
|
1000
1213
|
if (data !== undefined) {
|
|
1001
|
-
result = qx.data.SingleValueBinding.__setTargetValue(
|
|
1214
|
+
result = qx.data.SingleValueBinding.__setTargetValue(
|
|
1215
|
+
targetObject,
|
|
1216
|
+
targetProperty,
|
|
1217
|
+
data
|
|
1218
|
+
);
|
|
1002
1219
|
} else {
|
|
1003
|
-
|
|
1220
|
+
result = qx.data.SingleValueBinding.__resetTargetValue(
|
|
1221
|
+
targetObject,
|
|
1222
|
+
targetProperty
|
|
1223
|
+
);
|
|
1004
1224
|
}
|
|
1005
1225
|
|
|
1006
1226
|
// tell the user that the setter was invoked probably
|
|
1007
1227
|
if (options && options.onUpdate) {
|
|
1008
1228
|
options.onUpdate(sourceObject, targetObject, data);
|
|
1009
1229
|
}
|
|
1010
|
-
|
|
1011
1230
|
} catch (ex) {
|
|
1012
|
-
if (!
|
|
1231
|
+
if (!(ex instanceof qx.core.ValidationError)) {
|
|
1013
1232
|
throw ex;
|
|
1014
1233
|
}
|
|
1015
1234
|
|
|
@@ -1017,8 +1236,12 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1017
1236
|
options.onSetFail(ex);
|
|
1018
1237
|
} else {
|
|
1019
1238
|
qx.log.Logger.warn(
|
|
1020
|
-
"Failed so set value " +
|
|
1021
|
-
|
|
1239
|
+
"Failed so set value " +
|
|
1240
|
+
data +
|
|
1241
|
+
" on " +
|
|
1242
|
+
targetObject +
|
|
1243
|
+
". Error message: " +
|
|
1244
|
+
ex
|
|
1022
1245
|
);
|
|
1023
1246
|
}
|
|
1024
1247
|
}
|
|
@@ -1031,7 +1254,11 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1031
1254
|
arrayIndex = "";
|
|
1032
1255
|
}
|
|
1033
1256
|
// bind the listener function (make the array index in the listener available)
|
|
1034
|
-
bindListener = qx.lang.Function.bind(
|
|
1257
|
+
bindListener = qx.lang.Function.bind(
|
|
1258
|
+
bindListener,
|
|
1259
|
+
sourceObject,
|
|
1260
|
+
arrayIndex
|
|
1261
|
+
);
|
|
1035
1262
|
|
|
1036
1263
|
// add the listener
|
|
1037
1264
|
var id = sourceObject.addListener(sourceEvent, bindListener);
|
|
@@ -1039,7 +1266,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1039
1266
|
return id;
|
|
1040
1267
|
},
|
|
1041
1268
|
|
|
1042
|
-
|
|
1043
1269
|
/**
|
|
1044
1270
|
* This method stores the given value as a binding in the internal structure
|
|
1045
1271
|
* of all bindings.
|
|
@@ -1051,10 +1277,13 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1051
1277
|
* @param targetProperty {String} The name of the property on the target
|
|
1052
1278
|
* object.
|
|
1053
1279
|
*/
|
|
1054
|
-
__storeBinding
|
|
1055
|
-
id,
|
|
1056
|
-
|
|
1057
|
-
|
|
1280
|
+
__storeBinding(
|
|
1281
|
+
id,
|
|
1282
|
+
sourceObject,
|
|
1283
|
+
sourceEvent,
|
|
1284
|
+
targetObject,
|
|
1285
|
+
targetProperty
|
|
1286
|
+
) {
|
|
1058
1287
|
var hash;
|
|
1059
1288
|
|
|
1060
1289
|
// add the listener id to the internal registry
|
|
@@ -1063,9 +1292,15 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1063
1292
|
this.__bindings[hash] = [];
|
|
1064
1293
|
}
|
|
1065
1294
|
|
|
1066
|
-
var binding = [
|
|
1067
|
-
|
|
1295
|
+
var binding = [
|
|
1296
|
+
id,
|
|
1297
|
+
sourceObject,
|
|
1298
|
+
sourceEvent,
|
|
1299
|
+
targetObject,
|
|
1300
|
+
targetProperty
|
|
1301
|
+
];
|
|
1068
1302
|
|
|
1303
|
+
this.__bindings[hash].push(binding);
|
|
1069
1304
|
|
|
1070
1305
|
// add same binding data indexed by target object
|
|
1071
1306
|
hash = targetObject.toHashCode();
|
|
@@ -1075,7 +1310,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1075
1310
|
this.__bindingsByTarget[hash].push(binding);
|
|
1076
1311
|
},
|
|
1077
1312
|
|
|
1078
|
-
|
|
1079
1313
|
/**
|
|
1080
1314
|
* This method takes the given value, checks if the user has given a
|
|
1081
1315
|
* converter and converts the value to its target type. If no converter is
|
|
@@ -1095,8 +1329,12 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1095
1329
|
* @throws {qx.core.AssertionError} If there is no property definition
|
|
1096
1330
|
* of the given target object and target property.
|
|
1097
1331
|
*/
|
|
1098
|
-
__convertValue
|
|
1099
|
-
value,
|
|
1332
|
+
__convertValue(
|
|
1333
|
+
value,
|
|
1334
|
+
targetObject,
|
|
1335
|
+
targetPropertyChain,
|
|
1336
|
+
options,
|
|
1337
|
+
sourceObject
|
|
1100
1338
|
) {
|
|
1101
1339
|
// do the conversion given by the user
|
|
1102
1340
|
if (options && options.converter) {
|
|
@@ -1105,27 +1343,31 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1105
1343
|
model = targetObject.getModel();
|
|
1106
1344
|
}
|
|
1107
1345
|
return options.converter(value, model, sourceObject, targetObject);
|
|
1108
|
-
|
|
1346
|
+
// try default conversion
|
|
1109
1347
|
} else {
|
|
1110
1348
|
var properties = this.__getPropertyChainArray(targetPropertyChain);
|
|
1111
1349
|
var target = this.__getTargetFromChain(targetObject, properties);
|
|
1112
1350
|
var lastProperty = targetPropertyChain.substring(
|
|
1113
|
-
targetPropertyChain.lastIndexOf(".") + 1,
|
|
1351
|
+
targetPropertyChain.lastIndexOf(".") + 1,
|
|
1352
|
+
targetPropertyChain.length
|
|
1114
1353
|
);
|
|
1354
|
+
|
|
1115
1355
|
// if no target is currently available, return the original value
|
|
1116
1356
|
if (target == null) {
|
|
1117
1357
|
return value;
|
|
1118
1358
|
}
|
|
1119
1359
|
|
|
1120
1360
|
var propertieDefinition = qx.Class.getPropertyDefinition(
|
|
1121
|
-
target.constructor,
|
|
1361
|
+
target.constructor,
|
|
1362
|
+
lastProperty
|
|
1122
1363
|
);
|
|
1123
|
-
|
|
1364
|
+
|
|
1365
|
+
var check =
|
|
1366
|
+
propertieDefinition == null ? "" : propertieDefinition.check;
|
|
1124
1367
|
return this.__defaultConversion(value, check);
|
|
1125
1368
|
}
|
|
1126
1369
|
},
|
|
1127
1370
|
|
|
1128
|
-
|
|
1129
1371
|
/**
|
|
1130
1372
|
* Helper method which tries to figure out if the given property on the
|
|
1131
1373
|
* given object does have a change event and if returns the name of it.
|
|
@@ -1137,10 +1379,11 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1137
1379
|
* @throws {qx.core.AssertionError} If there is no property definition of
|
|
1138
1380
|
* the given object property pair.
|
|
1139
1381
|
*/
|
|
1140
|
-
__getEventForProperty
|
|
1382
|
+
__getEventForProperty(sourceObject, sourceProperty) {
|
|
1141
1383
|
// get the event name
|
|
1142
|
-
var propertieDefinition =
|
|
1143
|
-
sourceObject.constructor,
|
|
1384
|
+
var propertieDefinition = qx.Class.getPropertyDefinition(
|
|
1385
|
+
sourceObject.constructor,
|
|
1386
|
+
sourceProperty
|
|
1144
1387
|
);
|
|
1145
1388
|
|
|
1146
1389
|
if (propertieDefinition == null) {
|
|
@@ -1149,7 +1392,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1149
1392
|
return propertieDefinition.event;
|
|
1150
1393
|
},
|
|
1151
1394
|
|
|
1152
|
-
|
|
1153
1395
|
/**
|
|
1154
1396
|
* Tries to convert the data to the type given in the targetCheck argument.
|
|
1155
1397
|
*
|
|
@@ -1158,31 +1400,36 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1158
1400
|
* contains the target type.
|
|
1159
1401
|
* @return {Integer|String|Float} The converted data
|
|
1160
1402
|
*/
|
|
1161
|
-
__defaultConversion
|
|
1403
|
+
__defaultConversion(data, targetCheck) {
|
|
1162
1404
|
var dataType = qx.lang.Type.getClass(data);
|
|
1163
1405
|
|
|
1164
1406
|
// to integer
|
|
1165
|
-
if (
|
|
1166
|
-
|
|
1407
|
+
if (
|
|
1408
|
+
(dataType == "Number" || dataType == "String") &&
|
|
1409
|
+
(targetCheck == "Integer" || targetCheck == "PositiveInteger")
|
|
1410
|
+
) {
|
|
1167
1411
|
data = parseInt(data, 10);
|
|
1168
1412
|
}
|
|
1169
1413
|
|
|
1170
1414
|
// to string
|
|
1171
|
-
if (
|
|
1172
|
-
|
|
1415
|
+
if (
|
|
1416
|
+
(dataType == "Boolean" || dataType == "Number" || dataType == "Date") &&
|
|
1417
|
+
targetCheck == "String"
|
|
1418
|
+
) {
|
|
1173
1419
|
data = data + "";
|
|
1174
1420
|
}
|
|
1175
1421
|
|
|
1176
1422
|
// to float
|
|
1177
|
-
if (
|
|
1178
|
-
(
|
|
1423
|
+
if (
|
|
1424
|
+
(dataType == "Number" || dataType == "String") &&
|
|
1425
|
+
(targetCheck == "Number" || targetCheck == "PositiveNumber")
|
|
1426
|
+
) {
|
|
1179
1427
|
data = parseFloat(data);
|
|
1180
1428
|
}
|
|
1181
1429
|
|
|
1182
1430
|
return data;
|
|
1183
1431
|
},
|
|
1184
1432
|
|
|
1185
|
-
|
|
1186
1433
|
/**
|
|
1187
1434
|
* Removes the binding with the given id from the given sourceObject. The
|
|
1188
1435
|
* id has to be the id returned by any of the bind functions.
|
|
@@ -1191,21 +1438,25 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1191
1438
|
* @param id {var} The id of the binding.
|
|
1192
1439
|
* @throws {Error} If the binding could not be found.
|
|
1193
1440
|
*/
|
|
1194
|
-
removeBindingFromObject
|
|
1441
|
+
removeBindingFromObject(sourceObject, id) {
|
|
1195
1442
|
// check for a deep binding
|
|
1196
1443
|
if (id.type == "deepBinding") {
|
|
1197
1444
|
// go through all added listeners (source)
|
|
1198
1445
|
for (var i = 0; i < id.sources.length; i++) {
|
|
1199
1446
|
// check if a source is available
|
|
1200
1447
|
if (id.sources[i]) {
|
|
1201
|
-
if(id.listenerIds[i]) {
|
|
1448
|
+
if (id.listenerIds[i]) {
|
|
1202
1449
|
id.sources[i].removeListenerById(id.listenerIds[i]);
|
|
1203
1450
|
}
|
|
1204
1451
|
// If the listener id is not available, it is most likely
|
|
1205
1452
|
// caused by some hidden error situation.
|
|
1206
1453
|
// At least an error message should be displayed
|
|
1207
1454
|
else {
|
|
1208
|
-
sourceObject.error(
|
|
1455
|
+
sourceObject.error(
|
|
1456
|
+
"Could not remove deep bindings. Binding id for " +
|
|
1457
|
+
id.sources[i].classname +
|
|
1458
|
+
" could not be found!"
|
|
1459
|
+
);
|
|
1209
1460
|
}
|
|
1210
1461
|
}
|
|
1211
1462
|
}
|
|
@@ -1213,14 +1464,18 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1213
1464
|
for (var i = 0; i < id.targets.length; i++) {
|
|
1214
1465
|
// check if a target is available
|
|
1215
1466
|
if (id.targets[i]) {
|
|
1216
|
-
if(id.targetListenerIds[i]) {
|
|
1467
|
+
if (id.targetListenerIds[i]) {
|
|
1217
1468
|
id.targets[i].removeListenerById(id.targetListenerIds[i]);
|
|
1218
1469
|
}
|
|
1219
1470
|
// If the target listener id is not available, it is most likely
|
|
1220
1471
|
// caused by some hidden error situation.
|
|
1221
1472
|
// At least an error message should be displayed
|
|
1222
1473
|
else {
|
|
1223
|
-
sourceObject.error(
|
|
1474
|
+
sourceObject.error(
|
|
1475
|
+
"Could not remove target listener. Listener id for target " +
|
|
1476
|
+
id.targets[i].classname +
|
|
1477
|
+
" could not be found!"
|
|
1478
|
+
);
|
|
1224
1479
|
}
|
|
1225
1480
|
}
|
|
1226
1481
|
}
|
|
@@ -1238,13 +1493,19 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1238
1493
|
// remove binding data from internal reference indexed by target object
|
|
1239
1494
|
var target = bindings[i][3];
|
|
1240
1495
|
if (this.__bindingsByTarget[target.toHashCode()]) {
|
|
1241
|
-
qx.lang.Array.remove(
|
|
1496
|
+
qx.lang.Array.remove(
|
|
1497
|
+
this.__bindingsByTarget[target.toHashCode()],
|
|
1498
|
+
bindings[i]
|
|
1499
|
+
);
|
|
1242
1500
|
}
|
|
1243
1501
|
|
|
1244
1502
|
// remove binding data from internal reference indexed by source object
|
|
1245
1503
|
var source = bindings[i][1];
|
|
1246
1504
|
if (this.__bindings[source.toHashCode()]) {
|
|
1247
|
-
qx.lang.Array.remove(
|
|
1505
|
+
qx.lang.Array.remove(
|
|
1506
|
+
this.__bindings[source.toHashCode()],
|
|
1507
|
+
bindings[i]
|
|
1508
|
+
);
|
|
1248
1509
|
}
|
|
1249
1510
|
return;
|
|
1250
1511
|
}
|
|
@@ -1253,7 +1514,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1253
1514
|
throw new Error("Binding could not be found!");
|
|
1254
1515
|
},
|
|
1255
1516
|
|
|
1256
|
-
|
|
1257
1517
|
/**
|
|
1258
1518
|
* Removes all bindings for the given object.
|
|
1259
1519
|
*
|
|
@@ -1264,18 +1524,19 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1264
1524
|
* @throws {Error} If one of the bindings listed internally can not be
|
|
1265
1525
|
* removed.
|
|
1266
1526
|
*/
|
|
1267
|
-
removeAllBindingsForObject
|
|
1527
|
+
removeAllBindingsForObject(object) {
|
|
1268
1528
|
// check for the null value
|
|
1269
1529
|
|
|
1270
1530
|
if (qx.core.Environment.get("qx.debug")) {
|
|
1271
|
-
qx.core.Assert.assertNotNull(
|
|
1272
|
-
|
|
1531
|
+
qx.core.Assert.assertNotNull(
|
|
1532
|
+
object,
|
|
1533
|
+
"Can not remove the bindings for null object!"
|
|
1534
|
+
);
|
|
1273
1535
|
}
|
|
1274
1536
|
|
|
1275
1537
|
// get the bindings
|
|
1276
1538
|
var bindings = this.getAllBindingsForObject(object);
|
|
1277
|
-
if (bindings != undefined)
|
|
1278
|
-
{
|
|
1539
|
+
if (bindings != undefined) {
|
|
1279
1540
|
// remove every binding with the removeBindingFromObject function
|
|
1280
1541
|
for (var i = bindings.length - 1; i >= 0; i--) {
|
|
1281
1542
|
this.removeBindingFromObject(object, bindings[i][0]);
|
|
@@ -1287,7 +1548,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1287
1548
|
delete this.__bindingsByTarget[hash];
|
|
1288
1549
|
},
|
|
1289
1550
|
|
|
1290
|
-
|
|
1291
1551
|
/**
|
|
1292
1552
|
* Removes all bindings between given objects.
|
|
1293
1553
|
*
|
|
@@ -1300,19 +1560,23 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1300
1560
|
* @throws {Error} If one of the bindings listed internally can not be
|
|
1301
1561
|
* removed.
|
|
1302
1562
|
*/
|
|
1303
|
-
removeRelatedBindings
|
|
1563
|
+
removeRelatedBindings(object, relatedObject) {
|
|
1304
1564
|
// check for the null value
|
|
1305
1565
|
if (qx.core.Environment.get("qx.debug")) {
|
|
1306
|
-
qx.core.Assert.assertNotNull(
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1566
|
+
qx.core.Assert.assertNotNull(
|
|
1567
|
+
object,
|
|
1568
|
+
"Can not remove the bindings for null object!"
|
|
1569
|
+
);
|
|
1570
|
+
|
|
1571
|
+
qx.core.Assert.assertNotNull(
|
|
1572
|
+
relatedObject,
|
|
1573
|
+
"Can not remove the bindings for null object!"
|
|
1574
|
+
);
|
|
1310
1575
|
}
|
|
1311
1576
|
|
|
1312
1577
|
// get the bindings
|
|
1313
1578
|
var bindings = this.getAllBindingsForObject(object);
|
|
1314
|
-
if (bindings != undefined)
|
|
1315
|
-
{
|
|
1579
|
+
if (bindings != undefined) {
|
|
1316
1580
|
// remove every binding with the removeBindingFromObject function
|
|
1317
1581
|
for (var i = bindings.length - 1; i >= 0; i--) {
|
|
1318
1582
|
var source = bindings[i][1];
|
|
@@ -1324,7 +1588,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1324
1588
|
}
|
|
1325
1589
|
},
|
|
1326
1590
|
|
|
1327
|
-
|
|
1328
1591
|
/**
|
|
1329
1592
|
* Returns an array which lists all bindings.
|
|
1330
1593
|
*
|
|
@@ -1335,7 +1598,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1335
1598
|
* information is an array itself containing id, sourceObject,
|
|
1336
1599
|
* sourceEvent, targetObject and targetProperty in that order.
|
|
1337
1600
|
*/
|
|
1338
|
-
getAllBindingsForObject
|
|
1601
|
+
getAllBindingsForObject(object) {
|
|
1339
1602
|
var hash = object.toHashCode();
|
|
1340
1603
|
|
|
1341
1604
|
// get all bindings of object as source
|
|
@@ -1357,14 +1620,13 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1357
1620
|
return qx.lang.Array.unique(sourceBindings.concat(targetBindings));
|
|
1358
1621
|
},
|
|
1359
1622
|
|
|
1360
|
-
|
|
1361
1623
|
/**
|
|
1362
1624
|
* Removes all binding in the whole application. After that not a single
|
|
1363
1625
|
* binding is left.
|
|
1364
1626
|
* @deprecated {6.0} dispose and destructors are deprecated because of automatic memory management; this
|
|
1365
1627
|
* will only work for objects explicitly registered with ObjectRegistry.register
|
|
1366
1628
|
*/
|
|
1367
|
-
removeAllBindings
|
|
1629
|
+
removeAllBindings() {
|
|
1368
1630
|
// go through all registered objects
|
|
1369
1631
|
for (var hash in this.__bindings) {
|
|
1370
1632
|
var object = qx.core.ObjectRegistry.fromHashCode(hash);
|
|
@@ -1379,7 +1641,6 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1379
1641
|
this.__bindings = {};
|
|
1380
1642
|
},
|
|
1381
1643
|
|
|
1382
|
-
|
|
1383
1644
|
/**
|
|
1384
1645
|
* Returns a map containing for every bound object an array of data binding
|
|
1385
1646
|
* information. The key of the map is the hash code of the bound objects.
|
|
@@ -1388,11 +1649,10 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1388
1649
|
*
|
|
1389
1650
|
* @return {Map} Map containing all bindings.
|
|
1390
1651
|
*/
|
|
1391
|
-
getAllBindings
|
|
1652
|
+
getAllBindings() {
|
|
1392
1653
|
return this.__bindings;
|
|
1393
1654
|
},
|
|
1394
1655
|
|
|
1395
|
-
|
|
1396
1656
|
/**
|
|
1397
1657
|
* Debug function which shows some valuable information about the given
|
|
1398
1658
|
* binding in console. For that it uses {@link qx.log.Logger}.
|
|
@@ -1400,7 +1660,7 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1400
1660
|
* @param object {qx.core.Object} the source of the binding.
|
|
1401
1661
|
* @param id {var} The id of the binding.
|
|
1402
1662
|
*/
|
|
1403
|
-
showBindingInLog
|
|
1663
|
+
showBindingInLog(object, id) {
|
|
1404
1664
|
var binding;
|
|
1405
1665
|
// go through all bindings of the given object
|
|
1406
1666
|
for (var i = 0; i < this.__bindings[object.toHashCode()].length; i++) {
|
|
@@ -1412,32 +1672,38 @@ qx.Class.define("qx.data.SingleValueBinding",
|
|
|
1412
1672
|
}
|
|
1413
1673
|
|
|
1414
1674
|
if (binding === undefined) {
|
|
1415
|
-
var message = "Binding does not exist!"
|
|
1675
|
+
var message = "Binding does not exist!";
|
|
1416
1676
|
} else {
|
|
1417
|
-
var message =
|
|
1418
|
-
"
|
|
1677
|
+
var message =
|
|
1678
|
+
"Binding from '" +
|
|
1679
|
+
binding[1] +
|
|
1680
|
+
"' (" +
|
|
1681
|
+
binding[2] +
|
|
1682
|
+
") to the object '" +
|
|
1683
|
+
binding[3] +
|
|
1684
|
+
"' (" +
|
|
1685
|
+
binding[4] +
|
|
1686
|
+
").";
|
|
1419
1687
|
}
|
|
1420
1688
|
|
|
1421
1689
|
qx.log.Logger.debug(message);
|
|
1422
1690
|
},
|
|
1423
1691
|
|
|
1424
|
-
|
|
1425
1692
|
/**
|
|
1426
1693
|
* Debug function which shows all bindings in the log console. To get only
|
|
1427
1694
|
* one binding in the console use {@link #showBindingInLog}
|
|
1428
1695
|
* @deprecated {6.0} qx.core.ObjectRegistry no longer stores most objects
|
|
1429
1696
|
*/
|
|
1430
|
-
showAllBindingsInLog
|
|
1697
|
+
showAllBindingsInLog() {
|
|
1431
1698
|
// go through all objects in the registry
|
|
1432
1699
|
for (var hash in this.__bindings) {
|
|
1433
1700
|
var object = qx.core.ObjectRegistry.fromHashCode(hash);
|
|
1434
1701
|
if (object) {
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1702
|
+
for (var i = 0; i < this.__bindings[hash].length; i++) {
|
|
1703
|
+
this.showBindingInLog(object, this.__bindings[hash][i][0]);
|
|
1704
|
+
}
|
|
1438
1705
|
}
|
|
1439
1706
|
}
|
|
1440
1707
|
}
|
|
1441
|
-
|
|
1442
1708
|
}
|
|
1443
1709
|
});
|