@qooxdoo/framework 7.0.0-beta.6 → 7.0.0
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 +0 -6
- package/Manifest.json +2 -2
- package/README.md +3 -1
- package/lib/compiler/compile-info.json +57 -55
- package/lib/compiler/index.js +6272 -4273
- 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 -15
- 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 +6 -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 +162 -120
- package/source/class/qx/Part.js +48 -77
- package/source/class/qx/Promise.js +5891 -4655
- package/source/class/qx/Theme.js +200 -134
- package/source/class/qx/__init__.js +8 -8
- package/source/class/qx/application/AbstractGui.js +20 -32
- package/source/class/qx/application/Basic.js +9 -18
- package/source/class/qx/application/IApplication.js +6 -10
- package/source/class/qx/application/Inline.js +4 -7
- package/source/class/qx/application/Mobile.js +22 -45
- package/source/class/qx/application/Native.js +8 -19
- package/source/class/qx/application/Routing.js +88 -114
- package/source/class/qx/application/Standalone.js +4 -9
- package/source/class/qx/application/__init__.js +1 -1
- package/source/class/qx/bom/AnimationFrame.js +26 -25
- package/source/class/qx/bom/Blocker.js +92 -100
- package/source/class/qx/bom/Cookie.js +18 -22
- package/source/class/qx/bom/Document.js +24 -31
- package/source/class/qx/bom/Element.js +65 -51
- package/source/class/qx/bom/Event.js +68 -78
- package/source/class/qx/bom/FileReader.js +110 -115
- package/source/class/qx/bom/Font.js +82 -122
- package/source/class/qx/bom/FullScreen.js +32 -41
- package/source/class/qx/bom/GeoLocation.js +39 -44
- package/source/class/qx/bom/HashHistory.js +58 -64
- package/source/class/qx/bom/History.js +61 -89
- package/source/class/qx/bom/Html.js +75 -71
- package/source/class/qx/bom/IdleCallback.js +20 -23
- package/source/class/qx/bom/Iframe.js +37 -69
- package/source/class/qx/bom/IframeHistory.js +83 -88
- package/source/class/qx/bom/Input.js +50 -66
- package/source/class/qx/bom/Label.js +65 -86
- package/source/class/qx/bom/Lifecycle.js +7 -9
- package/source/class/qx/bom/MediaQuery.js +324 -307
- package/source/class/qx/bom/NativeHistory.js +51 -46
- package/source/class/qx/bom/Notification.js +41 -47
- package/source/class/qx/bom/PageVisibility.js +19 -25
- package/source/class/qx/bom/Range.js +20 -30
- package/source/class/qx/bom/Selection.js +163 -172
- package/source/class/qx/bom/Selector.js +2401 -2181
- package/source/class/qx/bom/Shortcut.js +103 -129
- package/source/class/qx/bom/Storage.js +9 -8
- package/source/class/qx/bom/String.js +285 -290
- package/source/class/qx/bom/Style.js +30 -31
- package/source/class/qx/bom/Stylesheet.js +36 -60
- package/source/class/qx/bom/Template.js +730 -657
- package/source/class/qx/bom/Viewport.js +40 -46
- package/source/class/qx/bom/Vml.js +43 -28
- package/source/class/qx/bom/WebWorker.js +61 -50
- package/source/class/qx/bom/Window.js +88 -105
- package/source/class/qx/bom/__init__.js +11 -11
- package/source/class/qx/bom/client/Browser.js +45 -47
- package/source/class/qx/bom/client/Css.js +85 -85
- package/source/class/qx/bom/client/CssAnimation.js +41 -49
- package/source/class/qx/bom/client/CssTransform.js +21 -29
- package/source/class/qx/bom/client/CssTransition.js +9 -12
- package/source/class/qx/bom/client/Device.js +45 -45
- package/source/class/qx/bom/client/EcmaScript.js +153 -96
- package/source/class/qx/bom/client/Engine.js +38 -35
- package/source/class/qx/bom/client/Event.js +75 -63
- package/source/class/qx/bom/client/Html.js +97 -97
- package/source/class/qx/bom/client/Idle.js +4 -6
- package/source/class/qx/bom/client/Locale.js +15 -15
- package/source/class/qx/bom/client/OperatingSystem.js +89 -106
- package/source/class/qx/bom/client/Pdfjs.js +1364 -1067
- package/source/class/qx/bom/client/PhoneGap.js +6 -9
- package/source/class/qx/bom/client/Plugin.js +93 -97
- package/source/class/qx/bom/client/Runtime.js +14 -12
- package/source/class/qx/bom/client/Scroll.js +20 -16
- package/source/class/qx/bom/client/Stylesheet.js +44 -32
- package/source/class/qx/bom/client/Transport.js +38 -41
- package/source/class/qx/bom/client/Xml.js +39 -41
- package/source/class/qx/bom/client/__init__.js +4 -4
- package/source/class/qx/bom/element/Animation.js +15 -12
- package/source/class/qx/bom/element/AnimationCss.js +95 -64
- package/source/class/qx/bom/element/AnimationHandle.js +22 -29
- package/source/class/qx/bom/element/AnimationJs.js +94 -71
- package/source/class/qx/bom/element/Attribute.js +119 -134
- package/source/class/qx/bom/element/Background.js +35 -35
- package/source/class/qx/bom/element/BoxSizing.js +43 -44
- package/source/class/qx/bom/element/Class.js +50 -72
- package/source/class/qx/bom/element/Clip.js +36 -60
- package/source/class/qx/bom/element/Cursor.js +13 -20
- package/source/class/qx/bom/element/Dataset.js +33 -31
- package/source/class/qx/bom/element/Decoration.js +178 -168
- package/source/class/qx/bom/element/Dimension.js +78 -60
- package/source/class/qx/bom/element/Location.js +87 -94
- package/source/class/qx/bom/element/Opacity.js +42 -44
- package/source/class/qx/bom/element/Scroll.js +78 -88
- package/source/class/qx/bom/element/Style.js +61 -101
- package/source/class/qx/bom/element/Transform.js +38 -56
- package/source/class/qx/bom/element/__init__.js +4 -4
- package/source/class/qx/bom/media/Abstract.js +136 -143
- package/source/class/qx/bom/media/Audio.js +7 -12
- package/source/class/qx/bom/media/Video.js +15 -27
- package/source/class/qx/bom/request/IRequest.js +18 -21
- package/source/class/qx/bom/request/Jsonp.js +34 -39
- package/source/class/qx/bom/request/Script.js +94 -90
- package/source/class/qx/bom/request/SimpleXhr.js +111 -79
- package/source/class/qx/bom/request/Xhr.js +196 -143
- package/source/class/qx/bom/request/__init__.js +1 -1
- package/source/class/qx/bom/rest/Resource.js +269 -203
- package/source/class/qx/bom/storage/Memory.js +18 -29
- package/source/class/qx/bom/storage/UserData.js +28 -35
- package/source/class/qx/bom/storage/Web.js +19 -30
- package/source/class/qx/bom/webfonts/Manager.js +199 -130
- package/source/class/qx/bom/webfonts/Validator.js +84 -118
- package/source/class/qx/bom/webfonts/WebFont.js +24 -28
- package/source/class/qx/bom/webfonts/__init__.js +1 -1
- package/source/class/qx/core/Aspect.js +15 -22
- package/source/class/qx/core/Assert.js +391 -333
- package/source/class/qx/core/AssertionError.js +6 -15
- package/source/class/qx/core/BaseInit.js +25 -28
- package/source/class/qx/core/Environment.js +72 -86
- package/source/class/qx/core/GlobalError.js +12 -20
- package/source/class/qx/core/IDisposable.js +6 -9
- package/source/class/qx/core/Id.js +25 -15
- package/source/class/qx/core/Init.js +20 -20
- package/source/class/qx/core/MAssert.js +54 -97
- package/source/class/qx/core/MBindTo.js +10 -14
- package/source/class/qx/core/MEvent.js +76 -65
- package/source/class/qx/core/MLogging.js +9 -18
- package/source/class/qx/core/MObjectId.js +104 -65
- package/source/class/qx/core/MProperty.js +18 -34
- package/source/class/qx/core/Object.js +93 -122
- package/source/class/qx/core/ObjectRegistry.js +58 -81
- package/source/class/qx/core/Property.js +974 -780
- package/source/class/qx/core/ValidationError.js +3 -4
- package/source/class/qx/core/WindowError.js +13 -24
- package/source/class/qx/core/Wrapper.js +8 -9
- package/source/class/qx/data/Array.js +178 -191
- package/source/class/qx/data/Conversion.js +11 -18
- package/source/class/qx/data/IListData.js +11 -20
- package/source/class/qx/data/MBinding.js +31 -26
- package/source/class/qx/data/SingleValueBinding.js +491 -225
- package/source/class/qx/data/__init__.js +1 -1
- package/source/class/qx/data/controller/CheckedList.js +82 -54
- package/source/class/qx/data/controller/Form.js +81 -69
- package/source/class/qx/data/controller/IControllerDelegate.js +7 -12
- package/source/class/qx/data/controller/ISelection.js +6 -10
- package/source/class/qx/data/controller/List.js +151 -167
- package/source/class/qx/data/controller/MSelection.js +53 -72
- package/source/class/qx/data/controller/Object.js +106 -77
- package/source/class/qx/data/controller/Tree.js +164 -142
- package/source/class/qx/data/controller/__init__.js +1 -1
- package/source/class/qx/data/controller/website/List.js +34 -43
- package/source/class/qx/data/controller/website/__init__.js +2 -2
- package/source/class/qx/data/marshal/IMarshaler.js +4 -7
- package/source/class/qx/data/marshal/IMarshalerDelegate.js +10 -18
- package/source/class/qx/data/marshal/Json.js +112 -85
- package/source/class/qx/data/marshal/MEventBubbling.js +44 -42
- package/source/class/qx/data/marshal/__init__.js +1 -1
- package/source/class/qx/data/store/IStoreDelegate.js +6 -9
- package/source/class/qx/data/store/Json.js +71 -85
- package/source/class/qx/data/store/Jsonp.js +19 -25
- package/source/class/qx/data/store/Offline.js +21 -29
- package/source/class/qx/data/store/Rest.js +25 -23
- package/source/class/qx/data/store/__init__.js +1 -1
- package/source/class/qx/dev/Debug.js +105 -124
- package/source/class/qx/dev/FakeServer.js +68 -65
- package/source/class/qx/dev/ObjectSummary.js +33 -39
- package/source/class/qx/dev/Profile.js +62 -63
- package/source/class/qx/dev/StackTrace.js +64 -70
- package/source/class/qx/dev/Tokenizer.js +114 -126
- package/source/class/qx/dev/unit/AbstractTestSuite.js +17 -31
- package/source/class/qx/dev/unit/AsyncWrapper.js +22 -26
- package/source/class/qx/dev/unit/JsUnitTestResult.js +9 -21
- package/source/class/qx/dev/unit/MMeasure.js +46 -37
- package/source/class/qx/dev/unit/MMock.js +236 -240
- package/source/class/qx/dev/unit/MRequirements.js +53 -79
- package/source/class/qx/dev/unit/MRequirementsBasic.js +24 -19
- package/source/class/qx/dev/unit/MTestLoader.js +52 -57
- package/source/class/qx/dev/unit/MeasurementResult.js +18 -22
- package/source/class/qx/dev/unit/RequirementError.js +8 -17
- package/source/class/qx/dev/unit/Sinon.js +18826 -4613
- package/source/class/qx/dev/unit/TestCase.js +40 -51
- package/source/class/qx/dev/unit/TestClass.js +22 -23
- package/source/class/qx/dev/unit/TestFunction.js +28 -48
- package/source/class/qx/dev/unit/TestLoader.js +11 -14
- package/source/class/qx/dev/unit/TestLoaderBasic.js +3 -6
- package/source/class/qx/dev/unit/TestLoaderInline.js +8 -14
- package/source/class/qx/dev/unit/TestLoaderMobile.js +8 -14
- package/source/class/qx/dev/unit/TestLoaderNative.js +7 -13
- package/source/class/qx/dev/unit/TestResult.js +140 -118
- package/source/class/qx/dev/unit/TestSuite.js +46 -55
- package/source/class/qx/dom/Element.js +29 -74
- package/source/class/qx/dom/Hierarchy.js +60 -95
- package/source/class/qx/dom/Node.js +54 -81
- package/source/class/qx/dom/__init__.js +9 -9
- package/source/class/qx/event/AcceleratingTimer.js +28 -46
- package/source/class/qx/event/Emitter.js +54 -49
- package/source/class/qx/event/GlobalError.js +22 -38
- package/source/class/qx/event/IEventDispatcher.js +4 -9
- package/source/class/qx/event/IEventHandler.js +7 -13
- package/source/class/qx/event/Idle.js +32 -47
- package/source/class/qx/event/Manager.js +222 -237
- package/source/class/qx/event/Messaging.js +55 -48
- package/source/class/qx/event/Pool.js +5 -8
- package/source/class/qx/event/Registration.js +128 -118
- package/source/class/qx/event/Timer.js +50 -96
- package/source/class/qx/event/Utils.js +41 -28
- package/source/class/qx/event/dispatch/AbstractBubbling.js +133 -93
- package/source/class/qx/event/dispatch/Direct.js +46 -51
- package/source/class/qx/event/dispatch/DomBubbling.js +8 -15
- package/source/class/qx/event/dispatch/MouseCapture.js +74 -91
- package/source/class/qx/event/handler/Appear.js +40 -77
- package/source/class/qx/event/handler/Application.js +100 -126
- package/source/class/qx/event/handler/Capture.js +15 -37
- package/source/class/qx/event/handler/DragDrop.js +342 -228
- package/source/class/qx/event/handler/Element.js +45 -72
- package/source/class/qx/event/handler/ElementResize.js +35 -70
- package/source/class/qx/event/handler/Focus.js +908 -637
- package/source/class/qx/event/handler/Gesture.js +144 -93
- package/source/class/qx/event/handler/GestureCore.js +214 -163
- package/source/class/qx/event/handler/Iframe.js +21 -35
- package/source/class/qx/event/handler/Input.js +332 -209
- package/source/class/qx/event/handler/Keyboard.js +325 -270
- package/source/class/qx/event/handler/Mouse.js +212 -173
- package/source/class/qx/event/handler/Object.js +13 -31
- package/source/class/qx/event/handler/Offline.js +52 -67
- package/source/class/qx/event/handler/Orientation.js +56 -62
- package/source/class/qx/event/handler/OrientationCore.js +33 -43
- package/source/class/qx/event/handler/Pointer.js +84 -72
- package/source/class/qx/event/handler/PointerCore.js +183 -105
- package/source/class/qx/event/handler/Touch.js +43 -59
- package/source/class/qx/event/handler/TouchCore.js +159 -120
- package/source/class/qx/event/handler/Transition.js +91 -100
- package/source/class/qx/event/handler/UserAction.js +18 -42
- package/source/class/qx/event/handler/Video.js +12 -12
- package/source/class/qx/event/handler/Window.js +53 -69
- package/source/class/qx/event/message/Bus.js +109 -128
- package/source/class/qx/event/message/Message.js +14 -29
- package/source/class/qx/event/type/Data.js +11 -22
- package/source/class/qx/event/type/Dom.js +37 -52
- package/source/class/qx/event/type/Drag.js +37 -56
- package/source/class/qx/event/type/Event.js +80 -104
- package/source/class/qx/event/type/Focus.js +5 -8
- package/source/class/qx/event/type/GeoPosition.js +32 -41
- package/source/class/qx/event/type/KeyInput.js +9 -19
- package/source/class/qx/event/type/KeySequence.js +10 -21
- package/source/class/qx/event/type/Mouse.js +69 -72
- package/source/class/qx/event/type/MouseWheel.js +5 -9
- package/source/class/qx/event/type/Native.js +16 -27
- package/source/class/qx/event/type/Orientation.js +18 -30
- package/source/class/qx/event/type/Pinch.js +21 -27
- package/source/class/qx/event/type/Pointer.js +38 -41
- package/source/class/qx/event/type/Rest.js +7 -10
- package/source/class/qx/event/type/Roll.js +49 -58
- package/source/class/qx/event/type/Rotate.js +21 -27
- package/source/class/qx/event/type/Swipe.js +75 -86
- package/source/class/qx/event/type/Tap.js +2 -4
- package/source/class/qx/event/type/Touch.js +262 -286
- package/source/class/qx/event/type/Track.js +23 -28
- package/source/class/qx/event/type/dom/Custom.js +24 -20
- package/source/class/qx/event/type/dom/Pointer.js +86 -60
- package/source/class/qx/event/util/Keyboard.js +94 -106
- package/source/class/qx/html/Blocker.js +17 -18
- package/source/class/qx/html/Canvas.js +13 -29
- package/source/class/qx/html/Element.js +372 -497
- package/source/class/qx/html/Factory.js +31 -26
- package/source/class/qx/html/Iframe.js +35 -69
- package/source/class/qx/html/Image.js +43 -55
- package/source/class/qx/html/Input.js +44 -57
- package/source/class/qx/html/Jsx.js +49 -41
- package/source/class/qx/html/JsxRef.js +3 -5
- package/source/class/qx/html/Label.js +20 -32
- package/source/class/qx/html/Node.js +362 -422
- package/source/class/qx/html/Root.js +7 -16
- package/source/class/qx/html/Text.js +34 -27
- package/source/class/qx/io/ImageLoader.js +66 -90
- package/source/class/qx/io/PartLoader.js +17 -30
- package/source/class/qx/io/exception/Cancel.js +4 -5
- package/source/class/qx/io/exception/Exception.js +4 -5
- package/source/class/qx/io/exception/Protocol.js +2 -3
- package/source/class/qx/io/exception/Transport.js +13 -14
- package/source/class/qx/io/graphql/Client.js +22 -12
- package/source/class/qx/io/graphql/protocol/Message.js +3 -3
- package/source/class/qx/io/graphql/protocol/Request.js +8 -10
- package/source/class/qx/io/graphql/protocol/Response.js +7 -5
- package/source/class/qx/io/jsonrpc/Client.js +70 -38
- package/source/class/qx/io/jsonrpc/__init__.js +1 -1
- package/source/class/qx/io/jsonrpc/protocol/Batch.js +14 -8
- package/source/class/qx/io/jsonrpc/protocol/Error.js +11 -9
- package/source/class/qx/io/jsonrpc/protocol/Message.js +3 -3
- package/source/class/qx/io/jsonrpc/protocol/Notification.js +8 -6
- package/source/class/qx/io/jsonrpc/protocol/Parser.js +33 -9
- package/source/class/qx/io/jsonrpc/protocol/Request.js +8 -7
- package/source/class/qx/io/jsonrpc/protocol/Result.js +7 -6
- 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 +7 -13
- 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 +31 -10
- package/source/class/qx/io/transport/AbstractTransport.js +7 -8
- package/source/class/qx/io/transport/Fetch.js +8 -5
- package/source/class/qx/io/transport/ITransport.js +4 -2
- package/source/class/qx/io/transport/PostMessage.js +1 -2
- package/source/class/qx/io/transport/Websocket.js +5 -5
- package/source/class/qx/io/transport/Xhr.js +17 -18
- package/source/class/qx/lang/Array.js +133 -170
- package/source/class/qx/lang/Function.js +101 -104
- package/source/class/qx/lang/Json.js +1041 -774
- package/source/class/qx/lang/Number.js +11 -16
- package/source/class/qx/lang/Object.js +129 -100
- package/source/class/qx/lang/String.js +86 -94
- package/source/class/qx/lang/Type.js +44 -65
- package/source/class/qx/lang/normalize/Array.js +39 -49
- package/source/class/qx/lang/normalize/Date.js +50 -32
- package/source/class/qx/lang/normalize/Error.js +4 -7
- package/source/class/qx/lang/normalize/Function.js +11 -19
- package/source/class/qx/lang/normalize/Number.js +3 -5
- package/source/class/qx/lang/normalize/Object.js +17 -18
- package/source/class/qx/lang/normalize/String.js +39 -40
- package/source/class/qx/locale/Date.js +175 -178
- package/source/class/qx/locale/Key.js +13 -11
- package/source/class/qx/locale/LocalizedString.js +18 -15
- package/source/class/qx/locale/MTranslation.js +22 -23
- package/source/class/qx/locale/Manager.js +62 -100
- package/source/class/qx/locale/Number.js +20 -12
- package/source/class/qx/locale/String.js +26 -15
- package/source/class/qx/log/Logger.js +128 -180
- package/source/class/qx/log/__init__.js +3 -3
- package/source/class/qx/log/appender/Console.js +100 -111
- package/source/class/qx/log/appender/Element.js +25 -39
- package/source/class/qx/log/appender/Formatter.js +117 -66
- package/source/class/qx/log/appender/Native.js +4 -10
- package/source/class/qx/log/appender/NodeConsole.js +20 -28
- package/source/class/qx/log/appender/PhoneGap.js +5 -13
- package/source/class/qx/log/appender/RhinoConsole.js +12 -23
- package/source/class/qx/log/appender/RhinoFile.js +19 -26
- package/source/class/qx/log/appender/RingBuffer.js +10 -19
- package/source/class/qx/log/appender/Util.js +11 -9
- package/source/class/qx/module/Animation.js +73 -63
- package/source/class/qx/module/Attribute.js +27 -46
- package/source/class/qx/module/Blocker.js +33 -41
- package/source/class/qx/module/Cookie.js +6 -10
- package/source/class/qx/module/Css.js +82 -97
- package/source/class/qx/module/Dataset.js +12 -24
- package/source/class/qx/module/Environment.js +4 -6
- package/source/class/qx/module/Event.js +124 -127
- package/source/class/qx/module/Io.js +5 -9
- package/source/class/qx/module/Manipulating.js +98 -117
- package/source/class/qx/module/MatchMedia.js +50 -24
- package/source/class/qx/module/Messaging.js +6 -10
- package/source/class/qx/module/Placeholder.js +54 -44
- package/source/class/qx/module/Placement.js +33 -33
- package/source/class/qx/module/Rest.js +3 -4
- package/source/class/qx/module/Storage.js +34 -48
- package/source/class/qx/module/Template.js +6 -9
- package/source/class/qx/module/TextSelection.js +13 -21
- package/source/class/qx/module/Transform.js +28 -45
- package/source/class/qx/module/Traversing.js +160 -154
- package/source/class/qx/module/__init__.js +1 -1
- package/source/class/qx/module/dev/FakeServer.js +19 -25
- package/source/class/qx/module/event/GestureHandler.js +25 -13
- package/source/class/qx/module/event/Keyboard.js +42 -31
- package/source/class/qx/module/event/Mouse.js +48 -46
- package/source/class/qx/module/event/Native.js +18 -30
- package/source/class/qx/module/event/Orientation.js +11 -18
- package/source/class/qx/module/event/OrientationHandler.js +19 -17
- package/source/class/qx/module/event/Pinch.js +13 -14
- package/source/class/qx/module/event/Pointer.js +22 -22
- package/source/class/qx/module/event/PointerHandler.js +14 -11
- package/source/class/qx/module/event/Rotate.js +13 -14
- package/source/class/qx/module/event/Swipe.js +18 -24
- package/source/class/qx/module/event/Tap.js +25 -25
- package/source/class/qx/module/event/Touch.js +4 -7
- package/source/class/qx/module/event/TouchHandler.js +16 -16
- package/source/class/qx/module/event/Track.js +13 -14
- package/source/class/qx/module/util/Array.js +30 -41
- package/source/class/qx/module/util/Function.js +1 -2
- package/source/class/qx/module/util/Object.js +8 -11
- package/source/class/qx/module/util/String.js +10 -18
- package/source/class/qx/module/util/Type.js +3 -4
- package/source/class/qx/test/Annotation.js +195 -89
- package/source/class/qx/test/Bootstrap.js +98 -124
- package/source/class/qx/test/Browser.js +8 -11
- package/source/class/qx/test/Class.js +164 -198
- package/source/class/qx/test/Dom.js +10 -28
- package/source/class/qx/test/EditDistance.js +16 -16
- package/source/class/qx/test/Interface.js +380 -383
- package/source/class/qx/test/MAppearance.js +10 -14
- package/source/class/qx/test/MDecoration.js +1 -3
- package/source/class/qx/test/Mixin.js +449 -173
- package/source/class/qx/test/Promise.js +422 -333
- package/source/class/qx/test/Theme.js +204 -179
- package/source/class/qx/test/Xml.js +155 -84
- package/source/class/qx/test/application/Routing.js +45 -44
- package/source/class/qx/test/bom/AnimationFrame.js +23 -21
- package/source/class/qx/test/bom/Attribute.js +66 -47
- package/source/class/qx/test/bom/Basic.js +52 -27
- package/source/class/qx/test/bom/Blocker.js +100 -70
- package/source/class/qx/test/bom/Class.js +19 -34
- package/source/class/qx/test/bom/Cookie.js +49 -28
- package/source/class/qx/test/bom/Dataset.js +12 -24
- package/source/class/qx/test/bom/Element.js +55 -47
- package/source/class/qx/test/bom/Event.js +68 -45
- package/source/class/qx/test/bom/FileReader.js +6 -12
- package/source/class/qx/test/bom/Font.js +256 -118
- package/source/class/qx/test/bom/GeoLocation.js +82 -64
- package/source/class/qx/test/bom/History.js +63 -84
- package/source/class/qx/test/bom/IdleCallback.js +51 -38
- package/source/class/qx/test/bom/Iframe.js +14 -18
- package/source/class/qx/test/bom/Label.js +74 -105
- package/source/class/qx/test/bom/Location.js +70 -99
- package/source/class/qx/test/bom/PageVisibility.js +13 -16
- package/source/class/qx/test/bom/Selector.js +16 -16
- package/source/class/qx/test/bom/String.js +19 -15
- package/source/class/qx/test/bom/Stylesheet.js +39 -48
- package/source/class/qx/test/bom/Template.js +49 -57
- package/source/class/qx/test/bom/Viewport.js +7 -11
- package/source/class/qx/test/bom/WebWorker.js +49 -37
- package/source/class/qx/test/bom/Window.js +6 -12
- package/source/class/qx/test/bom/client/Css.js +26 -19
- package/source/class/qx/test/bom/client/Device.js +29 -18
- package/source/class/qx/test/bom/client/OperatingSystem.js +17 -20
- package/source/class/qx/test/bom/client/Pdfjs.js +15 -13
- package/source/class/qx/test/bom/element/AnimationHandle.js +20 -17
- package/source/class/qx/test/bom/element/AnimationJs.js +48 -31
- package/source/class/qx/test/bom/element/Background.js +93 -46
- package/source/class/qx/test/bom/element/BoxSizing.js +66 -61
- package/source/class/qx/test/bom/element/Class.js +33 -58
- package/source/class/qx/test/bom/element/Dimension.js +58 -37
- package/source/class/qx/test/bom/element/Style.js +87 -83
- package/source/class/qx/test/bom/element/Transform.js +209 -86
- package/source/class/qx/test/bom/media/Audio.js +18 -14
- package/source/class/qx/test/bom/media/MediaTestCase.js +61 -66
- package/source/class/qx/test/bom/media/Video.js +39 -28
- package/source/class/qx/test/bom/request/Jsonp.js +60 -57
- package/source/class/qx/test/bom/request/Script.js +150 -138
- package/source/class/qx/test/bom/request/SimpleXhr.js +206 -134
- package/source/class/qx/test/bom/request/Xhr.js +179 -132
- package/source/class/qx/test/bom/request/XhrWithRemote.js +206 -160
- package/source/class/qx/test/bom/rest/Resource.js +345 -281
- package/source/class/qx/test/bom/rest/ResourceWithRemote.js +74 -57
- package/source/class/qx/test/bom/storage/Local.js +3 -4
- package/source/class/qx/test/bom/storage/Session.js +3 -4
- package/source/class/qx/test/bom/storage/WebStorageTestCase.js +28 -27
- package/source/class/qx/test/bom/webfonts/Abstract.js +8 -10
- package/source/class/qx/test/bom/webfonts/Manager.js +127 -80
- package/source/class/qx/test/bom/webfonts/Validator.js +36 -30
- package/source/class/qx/test/compiler/ClassFile.js +29 -11
- package/source/class/qx/test/compiler/jsdoc/Parser.js +122 -96
- package/source/class/qx/test/core/Assert.js +151 -86
- package/source/class/qx/test/core/Environment.js +162 -123
- package/source/class/qx/test/core/EventEmitterDummy.js +7 -8
- package/source/class/qx/test/core/InheritanceDummy.js +23 -33
- package/source/class/qx/test/core/MemoryManagement.js +13 -5
- package/source/class/qx/test/core/Object.js +106 -112
- package/source/class/qx/test/core/ObjectId.js +7 -6
- package/source/class/qx/test/core/Property.js +483 -387
- package/source/class/qx/test/core/PropertyHelper.js +49 -64
- package/source/class/qx/test/core/Target.js +9 -13
- package/source/class/qx/test/core/Validation.js +409 -136
- package/source/class/qx/test/data/DataArray.js +1059 -394
- package/source/class/qx/test/data/DataArrayWithChangeBubble.js +315 -172
- package/source/class/qx/test/data/__init__.js +4 -4
- package/source/class/qx/test/data/controller/Form.js +141 -99
- package/source/class/qx/test/data/controller/FormWithArrayAndModel.js +66 -51
- package/source/class/qx/test/data/controller/List.js +644 -336
- package/source/class/qx/test/data/controller/ListReverse.js +64 -63
- package/source/class/qx/test/data/controller/ListWithObjects.js +305 -149
- package/source/class/qx/test/data/controller/Object.js +252 -94
- package/source/class/qx/test/data/controller/Tree.js +1219 -383
- package/source/class/qx/test/data/controller/__init__.js +4 -4
- package/source/class/qx/test/data/marshal/Json.js +832 -447
- package/source/class/qx/test/data/marshal/__init__.js +4 -4
- package/source/class/qx/test/data/singlevalue/Array.js +383 -144
- package/source/class/qx/test/data/singlevalue/Deep.js +361 -175
- package/source/class/qx/test/data/singlevalue/Resolve.js +51 -29
- package/source/class/qx/test/data/singlevalue/Simple.js +530 -208
- package/source/class/qx/test/data/singlevalue/TextFieldDummy.js +32 -28
- package/source/class/qx/test/data/singlevalue/__init__.js +4 -4
- package/source/class/qx/test/data/store/Json.js +574 -313
- package/source/class/qx/test/data/store/Jsonp.js +103 -77
- package/source/class/qx/test/data/store/Offline.js +127 -110
- package/source/class/qx/test/data/store/Rest.js +58 -52
- package/source/class/qx/test/data/store/RestWithRemote.js +36 -30
- package/source/class/qx/test/data/store/__init__.js +4 -4
- package/source/class/qx/test/dev/Debug.js +9 -13
- package/source/class/qx/test/dev/StackTrace.js +51 -42
- package/source/class/qx/test/dev/unit/Requirements.js +36 -49
- package/source/class/qx/test/dev/unit/Sinon.js +85 -73
- package/source/class/qx/test/dev/unit/TestCase.js +12 -17
- package/source/class/qx/test/dom/Element.js +17 -12
- package/source/class/qx/test/dom/Hierarchy.js +53 -38
- package/source/class/qx/test/dom/Node.js +97 -43
- package/source/class/qx/test/event/Bubbling.js +258 -88
- package/source/class/qx/test/event/Emitter.js +38 -39
- package/source/class/qx/test/event/GlobalError.js +59 -87
- package/source/class/qx/test/event/GlobalEventMonitors.js +22 -25
- package/source/class/qx/test/event/Messaging.js +66 -49
- package/source/class/qx/test/event/MockBubblingHandler.js +10 -15
- package/source/class/qx/test/event/MockHandler.js +14 -33
- package/source/class/qx/test/event/Registration.js +38 -32
- package/source/class/qx/test/event/Timer.js +61 -39
- package/source/class/qx/test/event/Utils.js +164 -123
- package/source/class/qx/test/event/dispatch/MouseCapture.js +61 -51
- package/source/class/qx/test/event/dispatch/MouseEventOnDocument.js +22 -23
- package/source/class/qx/test/event/dispatch/TestingHandler.js +8 -10
- package/source/class/qx/test/event/dispatch/TestingWindow.js +9 -13
- package/source/class/qx/test/event/dispatch/__init__.js +4 -4
- package/source/class/qx/test/event/handler/Offline.js +7 -8
- package/source/class/qx/test/event/message/Bus.js +112 -72
- package/source/class/qx/test/event/message/__init__.js +4 -4
- package/source/class/qx/test/event/type/Dom.js +12 -11
- package/source/class/qx/test/event/type/Event.js +7 -16
- package/source/class/qx/test/event/type/Mouse.js +12 -11
- package/source/class/qx/test/event/type/Native.js +12 -11
- package/source/class/qx/test/event/type/__init__.js +4 -4
- package/source/class/qx/test/event/util/Keyboard.js +4 -3
- package/source/class/qx/test/html/Element.js +538 -239
- package/source/class/qx/test/html/Iframe.js +85 -73
- package/source/class/qx/test/html/jsx/TestJsx.js +15 -4
- package/source/class/qx/test/html/jsx/TestJsxBrowser.js +37 -19
- package/source/class/qx/test/html/jsx/TestWidget.js +26 -26
- package/source/class/qx/test/io/ImageLoader.js +256 -160
- package/source/class/qx/test/io/MAssert.js +7 -7
- 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 +135 -114
- package/source/class/qx/test/io/graphql/ClientFetch.js +4 -4
- package/source/class/qx/test/io/graphql/Request.js +12 -13
- package/source/class/qx/test/io/jsonrpc/Client.js +135 -69
- package/source/class/qx/test/io/jsonrpc/Protocol.js +42 -14
- 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 +5 -5
- package/source/class/qx/test/io/transport/Websocket.js +9 -8
- 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 +69 -65
- package/source/class/qx/test/ui/embed/__init__.js +4 -4
- package/source/class/qx/test/ui/form/AbstractSelectBox.js +11 -16
- package/source/class/qx/test/ui/form/AbstractVirtualBox.js +12 -19
- package/source/class/qx/test/ui/form/BooleanFormat.js +40 -25
- package/source/class/qx/test/ui/form/Color.js +29 -19
- package/source/class/qx/test/ui/form/ComboBox.js +39 -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 +582 -351
- 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 +630 -264
- 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 +209 -117
- 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 +38 -18
- 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 -188
- 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 +10 -5
- package/source/class/qx/tool/compiler/targets/meta/Uglify.js +35 -23
- package/source/class/qx/tool/config/Abstract.js +61 -25
- package/source/class/qx/tool/config/Compile.js +3 -2
- package/source/class/qx/tool/config/Lockfile.js +3 -2
- package/source/class/qx/tool/config/Manifest.js +3 -2
- package/source/class/qx/tool/config/Registry.js +4 -3
- package/source/class/qx/tool/config/Utils.js +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 +93 -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 +44 -75
- 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 +56 -104
- 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 +118 -127
- 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 +164 -259
- 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 +225 -252
- 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 +73 -96
- package/source/class/qx/ui/table/pane/Pane.js +132 -190
- 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 +822 -759
- 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 -15
- 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/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
|
@@ -167,15 +167,13 @@
|
|
|
167
167
|
* @internal
|
|
168
168
|
* @ignore(qx.Interface)
|
|
169
169
|
*/
|
|
170
|
-
qx.Bootstrap.define("qx.core.Property",
|
|
171
|
-
{
|
|
172
|
-
statics :
|
|
173
|
-
{
|
|
170
|
+
qx.Bootstrap.define("qx.core.Property", {
|
|
171
|
+
statics: {
|
|
174
172
|
/**
|
|
175
173
|
* This is a method which does nothing than gathering dependencies for the
|
|
176
174
|
* module system. Calling this method is useless because it does nothing.
|
|
177
175
|
*/
|
|
178
|
-
__gatherDependency
|
|
176
|
+
__gatherDependency() {
|
|
179
177
|
if (qx.core.Environment.get("module.events")) {
|
|
180
178
|
qx.event.type.Data;
|
|
181
179
|
qx.event.dispatch.Direct;
|
|
@@ -185,159 +183,147 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
185
183
|
}
|
|
186
184
|
},
|
|
187
185
|
|
|
188
|
-
|
|
189
186
|
/**
|
|
190
187
|
* Built-in checks
|
|
191
188
|
* The keys could be used in the check of the properties
|
|
192
189
|
*/
|
|
193
|
-
__checks
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
190
|
+
__checks: {
|
|
191
|
+
Boolean: "qx.core.Assert.assertBoolean(value, msg) || true",
|
|
192
|
+
String: "qx.core.Assert.assertString(value, msg) || true",
|
|
193
|
+
|
|
194
|
+
Number: "qx.core.Assert.assertNumber(value, msg) || true",
|
|
195
|
+
Integer: "qx.core.Assert.assertInteger(value, msg) || true",
|
|
196
|
+
PositiveNumber: "qx.core.Assert.assertPositiveNumber(value, msg) || true",
|
|
197
|
+
PositiveInteger:
|
|
198
|
+
"qx.core.Assert.assertPositiveInteger(value, msg) || true",
|
|
199
|
+
|
|
200
|
+
Error: "qx.core.Assert.assertInstance(value, Error, msg) || true",
|
|
201
|
+
RegExp: "qx.core.Assert.assertInstance(value, RegExp, msg) || true",
|
|
202
|
+
|
|
203
|
+
Object: "qx.core.Assert.assertObject(value, msg) || true",
|
|
204
|
+
Array: "qx.core.Assert.assertArray(value, msg) || true",
|
|
205
|
+
Map: "qx.core.Assert.assertMap(value, msg) || true",
|
|
206
|
+
|
|
207
|
+
Function: "qx.core.Assert.assertFunction(value, msg) || true",
|
|
208
|
+
Date: "qx.core.Assert.assertInstance(value, Date, msg) || true",
|
|
209
|
+
Node: "value !== null && value.nodeType !== undefined",
|
|
210
|
+
Element: "value !== null && value.nodeType === 1 && value.attributes",
|
|
211
|
+
Document:
|
|
212
|
+
"value !== null && value.nodeType === 9 && value.documentElement",
|
|
213
|
+
Window: "value !== null && value.document",
|
|
214
|
+
Event: "value !== null && value.type !== undefined",
|
|
215
|
+
|
|
216
|
+
Class: 'value !== null && value.$$type === "Class"',
|
|
217
|
+
Mixin: 'value !== null && value.$$type === "Mixin"',
|
|
218
|
+
Interface: 'value !== null && value.$$type === "Interface"',
|
|
219
|
+
Theme: 'value !== null && value.$$type === "Theme"',
|
|
220
|
+
|
|
221
|
+
Color:
|
|
222
|
+
"qx.lang.Type.isString(value) && qx.util.ColorUtil.isValidPropertyValue(value)",
|
|
223
|
+
Decorator:
|
|
224
|
+
"value !== null && qx.theme.manager.Decoration.getInstance().isValidPropertyValue(value)",
|
|
225
|
+
Font: "value !== null && qx.theme.manager.Font.getInstance().isDynamic(value)"
|
|
226
226
|
},
|
|
227
227
|
|
|
228
|
-
|
|
229
228
|
/**
|
|
230
229
|
* Contains types from {@link #__checks} list which need to be dereferenced
|
|
231
230
|
*/
|
|
232
|
-
__dereference
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
"Event" : true
|
|
231
|
+
__dereference: {
|
|
232
|
+
Node: true,
|
|
233
|
+
Element: true,
|
|
234
|
+
Document: true,
|
|
235
|
+
Window: true,
|
|
236
|
+
Event: true
|
|
239
237
|
},
|
|
240
238
|
|
|
241
|
-
|
|
242
239
|
/**
|
|
243
240
|
* Inherit value, used to override defaults etc. to force inheritance
|
|
244
241
|
* even if property value is not undefined (through multi-values)
|
|
245
242
|
*
|
|
246
243
|
* @internal
|
|
247
244
|
*/
|
|
248
|
-
$$inherit
|
|
249
|
-
|
|
245
|
+
$$inherit: "inherit",
|
|
250
246
|
|
|
251
247
|
/**
|
|
252
248
|
* Caching field names for each property created
|
|
253
249
|
*
|
|
254
250
|
* @internal
|
|
255
251
|
*/
|
|
256
|
-
$$store
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
useinit : {}
|
|
252
|
+
$$store: {
|
|
253
|
+
runtime: {},
|
|
254
|
+
user: {},
|
|
255
|
+
theme: {},
|
|
256
|
+
inherit: {},
|
|
257
|
+
init: {},
|
|
258
|
+
useinit: {}
|
|
264
259
|
},
|
|
265
260
|
|
|
266
|
-
|
|
267
261
|
/**
|
|
268
262
|
* Caching function names for each property created
|
|
269
263
|
*
|
|
270
264
|
* @internal
|
|
271
265
|
*/
|
|
272
|
-
$$method
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
resetThemed : {}
|
|
266
|
+
$$method: {
|
|
267
|
+
get: {},
|
|
268
|
+
getAsync: {},
|
|
269
|
+
set: {},
|
|
270
|
+
setImpl: {},
|
|
271
|
+
setAsync: {},
|
|
272
|
+
reset: {},
|
|
273
|
+
init: {},
|
|
274
|
+
refresh: {},
|
|
275
|
+
setRuntime: {},
|
|
276
|
+
resetRuntime: {},
|
|
277
|
+
setThemed: {},
|
|
278
|
+
resetThemed: {}
|
|
286
279
|
},
|
|
287
280
|
|
|
288
|
-
|
|
289
281
|
/**
|
|
290
282
|
* Supported keys for property definitions
|
|
291
283
|
*
|
|
292
284
|
* @internal
|
|
293
285
|
*/
|
|
294
|
-
$$allowedKeys
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
isEqual : null // String, Function
|
|
286
|
+
$$allowedKeys: {
|
|
287
|
+
"@": "object", // Anything
|
|
288
|
+
name: "string", // String
|
|
289
|
+
dereference: "boolean", // Boolean
|
|
290
|
+
inheritable: "boolean", // Boolean
|
|
291
|
+
nullable: "boolean", // Boolean
|
|
292
|
+
themeable: "boolean", // Boolean
|
|
293
|
+
refine: "boolean", // Boolean
|
|
294
|
+
init: null, // var
|
|
295
|
+
apply: "string", // String
|
|
296
|
+
event: "string", // String
|
|
297
|
+
check: null, // Array, String, Function
|
|
298
|
+
transform: "string", // String
|
|
299
|
+
async: "boolean", // Boolean
|
|
300
|
+
deferredInit: "boolean", // Boolean
|
|
301
|
+
validate: null, // String, Function
|
|
302
|
+
isEqual: null // String, Function
|
|
312
303
|
},
|
|
313
304
|
|
|
314
|
-
|
|
315
305
|
/**
|
|
316
306
|
* Supported keys for property group definitions
|
|
317
307
|
*
|
|
318
308
|
* @internal
|
|
319
309
|
*/
|
|
320
|
-
$$allowedGroupKeys
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
themeable : "boolean" // Boolean
|
|
310
|
+
$$allowedGroupKeys: {
|
|
311
|
+
"@": "object", // Anything
|
|
312
|
+
name: "string", // String
|
|
313
|
+
group: "object", // Array
|
|
314
|
+
mode: "string", // String
|
|
315
|
+
themeable: "boolean" // Boolean
|
|
327
316
|
},
|
|
328
317
|
|
|
329
|
-
|
|
330
318
|
/** Contains names of inheritable properties, filled by {@link qx.Class.define} */
|
|
331
|
-
$$inheritable
|
|
332
|
-
|
|
319
|
+
$$inheritable: {},
|
|
333
320
|
|
|
334
321
|
/**
|
|
335
322
|
* Generate optimized refresh method and attach it to the class' prototype
|
|
336
323
|
*
|
|
337
324
|
* @param clazz {Class} clazz to which the refresher should be added
|
|
338
325
|
*/
|
|
339
|
-
__executeOptimizedRefresh
|
|
340
|
-
{
|
|
326
|
+
__executeOptimizedRefresh(clazz) {
|
|
341
327
|
var inheritables = this.__getInheritablesOfClass(clazz);
|
|
342
328
|
|
|
343
329
|
if (!inheritables.length) {
|
|
@@ -349,29 +335,23 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
349
335
|
clazz.prototype.$$refreshInheritables = refresher;
|
|
350
336
|
},
|
|
351
337
|
|
|
352
|
-
|
|
353
338
|
/**
|
|
354
339
|
* Get the names of all inheritable properties of the given class
|
|
355
340
|
*
|
|
356
341
|
* @param clazz {Class} class to get the inheritable properties of
|
|
357
342
|
* @return {String[]} List of property names
|
|
358
343
|
*/
|
|
359
|
-
__getInheritablesOfClass
|
|
360
|
-
{
|
|
344
|
+
__getInheritablesOfClass(clazz) {
|
|
361
345
|
var inheritable = [];
|
|
362
346
|
|
|
363
|
-
while(clazz)
|
|
364
|
-
{
|
|
347
|
+
while (clazz) {
|
|
365
348
|
var properties = clazz.$$properties;
|
|
366
349
|
|
|
367
|
-
if (properties)
|
|
368
|
-
|
|
369
|
-
for (var name in this.$$inheritable)
|
|
370
|
-
{
|
|
350
|
+
if (properties) {
|
|
351
|
+
for (var name in this.$$inheritable) {
|
|
371
352
|
// Whether the property is available in this class
|
|
372
353
|
// and whether it is inheritable in this class as well
|
|
373
|
-
if (properties[name] && properties[name].inheritable)
|
|
374
|
-
{
|
|
354
|
+
if (properties[name] && properties[name].inheritable) {
|
|
375
355
|
inheritable.push(name);
|
|
376
356
|
}
|
|
377
357
|
}
|
|
@@ -383,15 +363,13 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
383
363
|
return inheritable;
|
|
384
364
|
},
|
|
385
365
|
|
|
386
|
-
|
|
387
366
|
/**
|
|
388
367
|
* Assemble the refresher code and return the generated function
|
|
389
368
|
*
|
|
390
369
|
* @param inheritables {String[]} list of inheritable properties
|
|
391
370
|
* @return {Function} refresher function
|
|
392
371
|
*/
|
|
393
|
-
__createRefresher
|
|
394
|
-
{
|
|
372
|
+
__createRefresher(inheritables) {
|
|
395
373
|
var inherit = this.$$store.inherit;
|
|
396
374
|
var init = this.$$store.init;
|
|
397
375
|
var refresh = this.$$method.refresh;
|
|
@@ -401,35 +379,36 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
401
379
|
"if (!parent) return;"
|
|
402
380
|
];
|
|
403
381
|
|
|
404
|
-
for (var i=0, l=inheritables.length; i<l; i++)
|
|
405
|
-
{
|
|
382
|
+
for (var i = 0, l = inheritables.length; i < l; i++) {
|
|
406
383
|
var name = inheritables[i];
|
|
407
384
|
code.push(
|
|
408
|
-
"var value = parent.",
|
|
409
|
-
|
|
410
|
-
"
|
|
385
|
+
"var value = parent.",
|
|
386
|
+
inherit[name],
|
|
387
|
+
";",
|
|
388
|
+
"if (value===undefined) value = parent.",
|
|
389
|
+
init[name],
|
|
390
|
+
";",
|
|
391
|
+
"this.",
|
|
392
|
+
refresh[name],
|
|
393
|
+
"(value);"
|
|
411
394
|
);
|
|
412
395
|
}
|
|
413
396
|
|
|
414
397
|
return new Function(code.join(""));
|
|
415
398
|
},
|
|
416
399
|
|
|
417
|
-
|
|
418
400
|
/**
|
|
419
401
|
* Attach $$refreshInheritables method stub to the given class
|
|
420
402
|
*
|
|
421
403
|
* @param clazz {Class} clazz to which the refresher should be added
|
|
422
404
|
*/
|
|
423
|
-
attachRefreshInheritables
|
|
424
|
-
|
|
425
|
-
clazz.prototype.$$refreshInheritables = function()
|
|
426
|
-
{
|
|
405
|
+
attachRefreshInheritables(clazz) {
|
|
406
|
+
clazz.prototype.$$refreshInheritables = function () {
|
|
427
407
|
qx.core.Property.__executeOptimizedRefresh(clazz);
|
|
428
408
|
return this.$$refreshInheritables();
|
|
429
409
|
};
|
|
430
410
|
},
|
|
431
411
|
|
|
432
|
-
|
|
433
412
|
/**
|
|
434
413
|
* Attach one property to class
|
|
435
414
|
*
|
|
@@ -437,15 +416,13 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
437
416
|
* @param name {String} Name of property
|
|
438
417
|
* @param config {Map} Configuration map of property
|
|
439
418
|
*/
|
|
440
|
-
attachMethods
|
|
441
|
-
{
|
|
419
|
+
attachMethods(clazz, name, config) {
|
|
442
420
|
// Divide groups from "normal" properties
|
|
443
|
-
config.group
|
|
444
|
-
this.__attachGroupMethods(clazz, config, name)
|
|
445
|
-
this.__attachPropertyMethods(clazz, config, name);
|
|
421
|
+
config.group
|
|
422
|
+
? this.__attachGroupMethods(clazz, config, name)
|
|
423
|
+
: this.__attachPropertyMethods(clazz, config, name);
|
|
446
424
|
},
|
|
447
425
|
|
|
448
|
-
|
|
449
426
|
/**
|
|
450
427
|
* Attach group methods
|
|
451
428
|
*
|
|
@@ -453,14 +430,12 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
453
430
|
* @param config {Map} Property configuration
|
|
454
431
|
* @param name {String} Name of the property
|
|
455
432
|
*/
|
|
456
|
-
__attachGroupMethods
|
|
457
|
-
{
|
|
433
|
+
__attachGroupMethods(clazz, config, name) {
|
|
458
434
|
var upname = qx.Bootstrap.firstUp(name);
|
|
459
435
|
var members = clazz.prototype;
|
|
460
436
|
var themeable = config.themeable === true;
|
|
461
437
|
|
|
462
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
463
|
-
{
|
|
438
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
464
439
|
if (qx.core.Environment.get("qx.debug.property.level") > 1) {
|
|
465
440
|
qx.Bootstrap.debug("Generating property group: " + name);
|
|
466
441
|
}
|
|
@@ -469,13 +444,13 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
469
444
|
var setter = [];
|
|
470
445
|
var resetter = [];
|
|
471
446
|
|
|
472
|
-
if (themeable)
|
|
473
|
-
{
|
|
447
|
+
if (themeable) {
|
|
474
448
|
var styler = [];
|
|
475
449
|
var unstyler = [];
|
|
476
450
|
}
|
|
477
451
|
|
|
478
|
-
var argHandler =
|
|
452
|
+
var argHandler =
|
|
453
|
+
"var a=arguments[0] instanceof Array?arguments[0]:arguments;";
|
|
479
454
|
|
|
480
455
|
setter.push(argHandler);
|
|
481
456
|
|
|
@@ -483,9 +458,9 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
483
458
|
styler.push(argHandler);
|
|
484
459
|
}
|
|
485
460
|
|
|
486
|
-
if (config.mode == "shorthand")
|
|
487
|
-
|
|
488
|
-
|
|
461
|
+
if (config.mode == "shorthand") {
|
|
462
|
+
var shorthand =
|
|
463
|
+
"a=qx.lang.Array.fromShortHand(qx.lang.Array.fromArguments(a));";
|
|
489
464
|
setter.push(shorthand);
|
|
490
465
|
|
|
491
466
|
if (themeable) {
|
|
@@ -493,24 +468,32 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
493
468
|
}
|
|
494
469
|
}
|
|
495
470
|
|
|
496
|
-
for (var i=0, a=config.group, l=a.length; i<l; i++)
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
471
|
+
for (var i = 0, a = config.group, l = a.length; i < l; i++) {
|
|
472
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
473
|
+
if (!this.$$method.set[a[i]] || !this.$$method.reset[a[i]]) {
|
|
474
|
+
throw new Error(
|
|
475
|
+
"Cannot create property group '" +
|
|
476
|
+
name +
|
|
477
|
+
"' including non-existing property '" +
|
|
478
|
+
a[i] +
|
|
479
|
+
"'!"
|
|
480
|
+
);
|
|
502
481
|
}
|
|
503
482
|
}
|
|
504
483
|
|
|
505
484
|
setter.push("this.", this.$$method.set[a[i]], "(a[", i, "]);");
|
|
506
485
|
resetter.push("this.", this.$$method.reset[a[i]], "();");
|
|
507
486
|
|
|
508
|
-
if (themeable)
|
|
509
|
-
|
|
510
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
511
|
-
{
|
|
487
|
+
if (themeable) {
|
|
488
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
512
489
|
if (!this.$$method.setThemed[a[i]]) {
|
|
513
|
-
throw new Error(
|
|
490
|
+
throw new Error(
|
|
491
|
+
"Cannot add the non themable property '" +
|
|
492
|
+
a[i] +
|
|
493
|
+
"' to the themable property group '" +
|
|
494
|
+
name +
|
|
495
|
+
"'"
|
|
496
|
+
);
|
|
514
497
|
}
|
|
515
498
|
}
|
|
516
499
|
|
|
@@ -527,19 +510,19 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
527
510
|
this.$$method.reset[name] = "reset" + upname;
|
|
528
511
|
members[this.$$method.reset[name]] = new Function(resetter.join(""));
|
|
529
512
|
|
|
530
|
-
if (themeable)
|
|
531
|
-
{
|
|
513
|
+
if (themeable) {
|
|
532
514
|
// Attach styler
|
|
533
515
|
this.$$method.setThemed[name] = "setThemed" + upname;
|
|
534
516
|
members[this.$$method.setThemed[name]] = new Function(styler.join(""));
|
|
535
517
|
|
|
536
518
|
// Attach unstyler
|
|
537
519
|
this.$$method.resetThemed[name] = "resetThemed" + upname;
|
|
538
|
-
members[this.$$method.resetThemed[name]] = new Function(
|
|
520
|
+
members[this.$$method.resetThemed[name]] = new Function(
|
|
521
|
+
unstyler.join("")
|
|
522
|
+
);
|
|
539
523
|
}
|
|
540
524
|
},
|
|
541
525
|
|
|
542
|
-
|
|
543
526
|
/**
|
|
544
527
|
* Attach property methods
|
|
545
528
|
*
|
|
@@ -547,73 +530,111 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
547
530
|
* @param config {Map} Property configuration
|
|
548
531
|
* @param name {String} Name of the property
|
|
549
532
|
*/
|
|
550
|
-
__attachPropertyMethods
|
|
551
|
-
{
|
|
533
|
+
__attachPropertyMethods(clazz, config, name) {
|
|
552
534
|
var upname = qx.Bootstrap.firstUp(name);
|
|
553
535
|
var members = clazz.prototype;
|
|
554
536
|
|
|
555
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
556
|
-
{
|
|
537
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
557
538
|
if (qx.core.Environment.get("qx.debug.property.level") > 1) {
|
|
558
539
|
qx.Bootstrap.debug("Generating property wrappers: " + name);
|
|
559
540
|
}
|
|
560
541
|
}
|
|
561
542
|
|
|
562
543
|
// Fill dispose value
|
|
563
|
-
if (
|
|
544
|
+
if (
|
|
545
|
+
config.dereference === undefined &&
|
|
546
|
+
typeof config.check === "string"
|
|
547
|
+
) {
|
|
564
548
|
config.dereference = this.__shouldBeDereferenced(config.check);
|
|
565
549
|
}
|
|
566
550
|
|
|
567
551
|
if (!qx.core.Environment.get("qx.promise")) {
|
|
568
552
|
if (config.async) {
|
|
569
|
-
this.warn(
|
|
553
|
+
this.warn(
|
|
554
|
+
"Asynchronous property " +
|
|
555
|
+
clazz.classname +
|
|
556
|
+
"." +
|
|
557
|
+
name +
|
|
558
|
+
" is switched to synchronous because qx.promise==false"
|
|
559
|
+
);
|
|
560
|
+
|
|
570
561
|
config.async = false;
|
|
571
562
|
}
|
|
572
563
|
if (config.check == "qx.Promise") {
|
|
573
|
-
this.error(
|
|
564
|
+
this.error(
|
|
565
|
+
"Cannot implement check for property " +
|
|
566
|
+
clazz.classname +
|
|
567
|
+
"." +
|
|
568
|
+
name +
|
|
569
|
+
" because qx.promise==false"
|
|
570
|
+
);
|
|
571
|
+
|
|
574
572
|
delete config.check;
|
|
575
573
|
}
|
|
576
574
|
}
|
|
577
575
|
|
|
578
576
|
// Check for method name conflicts
|
|
579
577
|
if (qx.core.Environment.get("qx.debug")) {
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
578
|
+
// Exclude qx.data.model.* because that's from marshalling and will cause conflicts to be reported
|
|
579
|
+
if (clazz.classname && !clazz.classname.match(/^qx.data.model/)) {
|
|
580
|
+
var allNames = [
|
|
581
|
+
"get" + upname,
|
|
582
|
+
"set" + upname,
|
|
583
|
+
"reset" + upname,
|
|
584
|
+
"setRuntime" + upname,
|
|
585
|
+
"resetRuntime" + upname
|
|
586
|
+
];
|
|
587
|
+
|
|
588
|
+
if (config.async) {
|
|
589
|
+
allNames.push("get" + upname + "Async");
|
|
590
|
+
allNames.push("set" + upname + "Async");
|
|
591
|
+
}
|
|
592
|
+
if (
|
|
593
|
+
config.inheritable ||
|
|
594
|
+
config.apply ||
|
|
595
|
+
config.event ||
|
|
596
|
+
config.deferredInit
|
|
597
|
+
) {
|
|
598
|
+
allNames.push("init" + upname);
|
|
599
|
+
}
|
|
600
|
+
if (config.inheritable) {
|
|
601
|
+
allNames.push("refresh" + upname);
|
|
602
|
+
}
|
|
603
|
+
if (config.themeable) {
|
|
604
|
+
allNames.push("getThemed" + upname);
|
|
605
|
+
allNames.push("setThemed" + upname);
|
|
606
|
+
allNames.push("resetThemed" + upname);
|
|
607
|
+
}
|
|
608
|
+
if (config.check === "Boolean") {
|
|
609
|
+
allNames.push("is" + upname);
|
|
610
|
+
allNames.push("toggle" + upname);
|
|
611
|
+
}
|
|
612
|
+
allNames.forEach(function (name) {
|
|
603
613
|
if (clazz.superclass.prototype[name] !== undefined) {
|
|
604
614
|
var conflictingClass = null;
|
|
605
|
-
for (
|
|
615
|
+
for (
|
|
616
|
+
var tmp = clazz.superclass;
|
|
617
|
+
tmp && tmp != qx.core.Object;
|
|
618
|
+
tmp = tmp.superclass
|
|
619
|
+
) {
|
|
606
620
|
if (tmp.superclass.prototype[name] === undefined) {
|
|
607
621
|
conflictingClass = tmp;
|
|
608
622
|
break;
|
|
609
623
|
}
|
|
610
624
|
}
|
|
611
625
|
if (conflictingClass) {
|
|
612
|
-
qx.log.Logger.warn(
|
|
626
|
+
qx.log.Logger.warn(
|
|
627
|
+
"Conflicting property method " +
|
|
628
|
+
clazz.classname +
|
|
629
|
+
"." +
|
|
630
|
+
name +
|
|
631
|
+
" with " +
|
|
632
|
+
conflictingClass.classname
|
|
633
|
+
);
|
|
613
634
|
}
|
|
614
635
|
}
|
|
615
636
|
});
|
|
616
|
-
|
|
637
|
+
}
|
|
617
638
|
}
|
|
618
639
|
|
|
619
640
|
var method = this.$$method;
|
|
@@ -626,50 +647,122 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
626
647
|
store.inherit[name] = "$$inherit_" + name;
|
|
627
648
|
store.useinit[name] = "$$useinit_" + name;
|
|
628
649
|
|
|
629
|
-
var getName = method.get[name] = "get" + upname;
|
|
650
|
+
var getName = (method.get[name] = "get" + upname);
|
|
630
651
|
members[method.get[name]] = new Function(
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
652
|
+
"this." +
|
|
653
|
+
getName +
|
|
654
|
+
".$$install && this." +
|
|
655
|
+
getName +
|
|
656
|
+
".$$install();" +
|
|
657
|
+
"return this." +
|
|
658
|
+
getName +
|
|
659
|
+
".apply(this, arguments);"
|
|
660
|
+
);
|
|
634
661
|
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
662
|
+
if (config.async) {
|
|
663
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
664
|
+
if (members.hasOwnProperty(getName + "Async")) {
|
|
665
|
+
this.error(
|
|
666
|
+
"Asynchronous property " +
|
|
667
|
+
clazz.classname +
|
|
668
|
+
"." +
|
|
669
|
+
name +
|
|
670
|
+
" is replacing " +
|
|
671
|
+
getName +
|
|
672
|
+
"Async() method in same class"
|
|
673
|
+
);
|
|
674
|
+
} else if (members[getName + "Async"] !== undefined) {
|
|
675
|
+
this.warn(
|
|
676
|
+
"Asynchronous property " +
|
|
677
|
+
clazz.classname +
|
|
678
|
+
"." +
|
|
679
|
+
name +
|
|
680
|
+
" is overriding " +
|
|
681
|
+
getName +
|
|
682
|
+
"Async() method"
|
|
683
|
+
);
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
method.getAsync[name] = getName + "Async";
|
|
687
|
+
members[method.getAsync[name]] = new Function(
|
|
688
|
+
"this." +
|
|
689
|
+
getName +
|
|
690
|
+
".$$install && this." +
|
|
691
|
+
getName +
|
|
692
|
+
".$$install.call(this);" +
|
|
693
|
+
"return this." +
|
|
694
|
+
getName +
|
|
695
|
+
"Async.apply(this, arguments);"
|
|
696
|
+
);
|
|
646
697
|
}
|
|
647
|
-
members[method.get[name]].$$install = function() {
|
|
648
|
-
qx.core.Property.__installOptimizedGetter(
|
|
698
|
+
members[method.get[name]].$$install = function () {
|
|
699
|
+
qx.core.Property.__installOptimizedGetter(
|
|
700
|
+
clazz,
|
|
701
|
+
name,
|
|
702
|
+
"get",
|
|
703
|
+
arguments
|
|
704
|
+
);
|
|
705
|
+
|
|
649
706
|
if (config.async) {
|
|
650
|
-
|
|
707
|
+
qx.core.Property.__installOptimizedGetter(
|
|
708
|
+
clazz,
|
|
709
|
+
name,
|
|
710
|
+
"getAsync",
|
|
711
|
+
arguments
|
|
712
|
+
);
|
|
651
713
|
}
|
|
652
714
|
};
|
|
653
715
|
|
|
654
|
-
var setName = method.set[name] = "set" + upname;
|
|
716
|
+
var setName = (method.set[name] = "set" + upname);
|
|
655
717
|
members[setName] = new Function(
|
|
656
|
-
|
|
657
|
-
|
|
718
|
+
"this." +
|
|
719
|
+
setName +
|
|
720
|
+
".$$install && this." +
|
|
721
|
+
setName +
|
|
722
|
+
".$$install.call(this);" +
|
|
723
|
+
"return this." +
|
|
724
|
+
setName +
|
|
725
|
+
".apply(this, arguments);"
|
|
726
|
+
);
|
|
727
|
+
|
|
658
728
|
method.setAsync[name] = "set" + upname + "Async";
|
|
659
729
|
if (config.async) {
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
730
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
731
|
+
if (members.hasOwnProperty(setName + "Async")) {
|
|
732
|
+
this.error(
|
|
733
|
+
"Asynchronous property " +
|
|
734
|
+
clazz.classname +
|
|
735
|
+
"." +
|
|
736
|
+
name +
|
|
737
|
+
" is replacing " +
|
|
738
|
+
setName +
|
|
739
|
+
"Async() method in same class"
|
|
740
|
+
);
|
|
741
|
+
} else if (members[setName + "Async"] !== undefined) {
|
|
742
|
+
this.warn(
|
|
743
|
+
"Asynchronous property " +
|
|
744
|
+
clazz.classname +
|
|
745
|
+
"." +
|
|
746
|
+
name +
|
|
747
|
+
" is overriding " +
|
|
748
|
+
setName +
|
|
749
|
+
"Async() method"
|
|
750
|
+
);
|
|
751
|
+
}
|
|
752
|
+
}
|
|
667
753
|
members[setName + "Async"] = new Function(
|
|
668
|
-
|
|
669
|
-
|
|
754
|
+
"this." +
|
|
755
|
+
setName +
|
|
756
|
+
".$$install && this." +
|
|
757
|
+
setName +
|
|
758
|
+
".$$install.call(this);" +
|
|
759
|
+
"return this." +
|
|
760
|
+
setName +
|
|
761
|
+
"Async.apply(this, arguments);"
|
|
762
|
+
);
|
|
670
763
|
}
|
|
671
764
|
method.setImpl[name] = "$$set" + upname + "Impl";
|
|
672
|
-
members[setName].$$install = function() {
|
|
765
|
+
members[setName].$$install = function () {
|
|
673
766
|
qx.core.Property.__installOptimizedSetter(clazz, name, "set");
|
|
674
767
|
qx.core.Property.__installOptimizedSetter(clazz, name, "setImpl");
|
|
675
768
|
if (config.async) {
|
|
@@ -678,29 +771,49 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
678
771
|
};
|
|
679
772
|
|
|
680
773
|
method.reset[name] = "reset" + upname;
|
|
681
|
-
members[method.reset[name]] = function() {
|
|
682
|
-
return qx.core.Property.executeOptimizedSetter(
|
|
774
|
+
members[method.reset[name]] = function () {
|
|
775
|
+
return qx.core.Property.executeOptimizedSetter(
|
|
776
|
+
this,
|
|
777
|
+
clazz,
|
|
778
|
+
name,
|
|
779
|
+
"reset"
|
|
780
|
+
);
|
|
683
781
|
};
|
|
684
|
-
members[method.reset[name]].$$install = function() {
|
|
782
|
+
members[method.reset[name]].$$install = function () {
|
|
685
783
|
qx.core.Property.__installOptimizedSetter(clazz, name, "reset");
|
|
686
784
|
};
|
|
687
785
|
|
|
688
|
-
if (
|
|
689
|
-
|
|
786
|
+
if (
|
|
787
|
+
config.inheritable ||
|
|
788
|
+
config.apply ||
|
|
789
|
+
config.event ||
|
|
790
|
+
config.deferredInit
|
|
791
|
+
) {
|
|
690
792
|
method.init[name] = "init" + upname;
|
|
691
|
-
members[method.init[name]] = function(value) {
|
|
692
|
-
return qx.core.Property.executeOptimizedSetter(
|
|
793
|
+
members[method.init[name]] = function (value) {
|
|
794
|
+
return qx.core.Property.executeOptimizedSetter(
|
|
795
|
+
this,
|
|
796
|
+
clazz,
|
|
797
|
+
name,
|
|
798
|
+
"init",
|
|
799
|
+
arguments
|
|
800
|
+
);
|
|
693
801
|
};
|
|
694
802
|
if (qx.core.Environment.get("qx.debug")) {
|
|
695
803
|
members[method.init[name]].$$propertyMethod = true;
|
|
696
804
|
}
|
|
697
805
|
}
|
|
698
806
|
|
|
699
|
-
if (config.inheritable)
|
|
700
|
-
{
|
|
807
|
+
if (config.inheritable) {
|
|
701
808
|
method.refresh[name] = "refresh" + upname;
|
|
702
|
-
members[method.refresh[name]] = function(value) {
|
|
703
|
-
return qx.core.Property.executeOptimizedSetter(
|
|
809
|
+
members[method.refresh[name]] = function (value) {
|
|
810
|
+
return qx.core.Property.executeOptimizedSetter(
|
|
811
|
+
this,
|
|
812
|
+
clazz,
|
|
813
|
+
name,
|
|
814
|
+
"refresh",
|
|
815
|
+
arguments
|
|
816
|
+
);
|
|
704
817
|
};
|
|
705
818
|
if (qx.core.Environment.get("qx.debug")) {
|
|
706
819
|
members[method.refresh[name]].$$propertyMethod = true;
|
|
@@ -708,25 +821,46 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
708
821
|
}
|
|
709
822
|
|
|
710
823
|
method.setRuntime[name] = "setRuntime" + upname;
|
|
711
|
-
members[method.setRuntime[name]] = function(value) {
|
|
712
|
-
return qx.core.Property.executeOptimizedSetter(
|
|
824
|
+
members[method.setRuntime[name]] = function (value) {
|
|
825
|
+
return qx.core.Property.executeOptimizedSetter(
|
|
826
|
+
this,
|
|
827
|
+
clazz,
|
|
828
|
+
name,
|
|
829
|
+
"setRuntime",
|
|
830
|
+
arguments
|
|
831
|
+
);
|
|
713
832
|
};
|
|
714
833
|
|
|
715
834
|
method.resetRuntime[name] = "resetRuntime" + upname;
|
|
716
|
-
members[method.resetRuntime[name]] = function() {
|
|
717
|
-
return qx.core.Property.executeOptimizedSetter(
|
|
835
|
+
members[method.resetRuntime[name]] = function () {
|
|
836
|
+
return qx.core.Property.executeOptimizedSetter(
|
|
837
|
+
this,
|
|
838
|
+
clazz,
|
|
839
|
+
name,
|
|
840
|
+
"resetRuntime"
|
|
841
|
+
);
|
|
718
842
|
};
|
|
719
843
|
|
|
720
|
-
if (config.themeable)
|
|
721
|
-
{
|
|
844
|
+
if (config.themeable) {
|
|
722
845
|
method.setThemed[name] = "setThemed" + upname;
|
|
723
|
-
members[method.setThemed[name]] = function(value) {
|
|
724
|
-
return qx.core.Property.executeOptimizedSetter(
|
|
846
|
+
members[method.setThemed[name]] = function (value) {
|
|
847
|
+
return qx.core.Property.executeOptimizedSetter(
|
|
848
|
+
this,
|
|
849
|
+
clazz,
|
|
850
|
+
name,
|
|
851
|
+
"setThemed",
|
|
852
|
+
arguments
|
|
853
|
+
);
|
|
725
854
|
};
|
|
726
855
|
|
|
727
856
|
method.resetThemed[name] = "resetThemed" + upname;
|
|
728
|
-
members[method.resetThemed[name]] = function() {
|
|
729
|
-
return qx.core.Property.executeOptimizedSetter(
|
|
857
|
+
members[method.resetThemed[name]] = function () {
|
|
858
|
+
return qx.core.Property.executeOptimizedSetter(
|
|
859
|
+
this,
|
|
860
|
+
clazz,
|
|
861
|
+
name,
|
|
862
|
+
"resetThemed"
|
|
863
|
+
);
|
|
730
864
|
};
|
|
731
865
|
if (qx.core.Environment.get("qx.debug")) {
|
|
732
866
|
members[method.setThemed[name]].$$propertyMethod = true;
|
|
@@ -734,10 +868,18 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
734
868
|
}
|
|
735
869
|
}
|
|
736
870
|
|
|
737
|
-
if (config.check === "Boolean")
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
871
|
+
if (config.check === "Boolean") {
|
|
872
|
+
members["toggle" + upname] = new Function(
|
|
873
|
+
"return this." +
|
|
874
|
+
method.set[name] +
|
|
875
|
+
"(!this." +
|
|
876
|
+
method.get[name] +
|
|
877
|
+
"())"
|
|
878
|
+
);
|
|
879
|
+
|
|
880
|
+
members["is" + upname] = new Function(
|
|
881
|
+
"return this." + method.get[name] + "()"
|
|
882
|
+
);
|
|
741
883
|
|
|
742
884
|
if (qx.core.Environment.get("qx.debug")) {
|
|
743
885
|
members["toggle" + upname].$$propertyMethod = true;
|
|
@@ -755,7 +897,6 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
755
897
|
}
|
|
756
898
|
},
|
|
757
899
|
|
|
758
|
-
|
|
759
900
|
/**
|
|
760
901
|
* Returns if the reference for the given property check should be removed
|
|
761
902
|
* on dispose.
|
|
@@ -763,23 +904,20 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
763
904
|
* @param check {var} The check of the property definition.
|
|
764
905
|
* @return {Boolean} If the dereference key should be set.
|
|
765
906
|
*/
|
|
766
|
-
__shouldBeDereferenced
|
|
907
|
+
__shouldBeDereferenced(check) {
|
|
767
908
|
return !!this.__dereference[check];
|
|
768
909
|
},
|
|
769
910
|
|
|
770
|
-
|
|
771
911
|
/** @type {Map} Internal data field for error messages used by {@link #error} */
|
|
772
|
-
__errors
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
5 : 'Is invalid!'
|
|
912
|
+
__errors: {
|
|
913
|
+
0: "Could not change or apply init value after constructing phase!",
|
|
914
|
+
1: "Requires exactly one argument!",
|
|
915
|
+
2: "Undefined value is not allowed!",
|
|
916
|
+
3: "Does not allow any arguments!",
|
|
917
|
+
4: "Null value is not allowed!",
|
|
918
|
+
5: "Is invalid!"
|
|
780
919
|
},
|
|
781
920
|
|
|
782
|
-
|
|
783
921
|
/**
|
|
784
922
|
* Error method used by the property system to report errors.
|
|
785
923
|
*
|
|
@@ -789,16 +927,22 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
789
927
|
* @param variant {String} Name of the method variant e.g. "set", "reset", ...
|
|
790
928
|
* @param value {var} Incoming value
|
|
791
929
|
*/
|
|
792
|
-
error
|
|
793
|
-
{
|
|
930
|
+
error(obj, id, property, variant, value) {
|
|
794
931
|
var classname = obj.constructor.classname;
|
|
795
|
-
var msg =
|
|
796
|
-
" in
|
|
932
|
+
var msg =
|
|
933
|
+
"Error in property " +
|
|
934
|
+
property +
|
|
935
|
+
" of class " +
|
|
936
|
+
classname +
|
|
937
|
+
" in method " +
|
|
938
|
+
this.$$method[variant][property] +
|
|
939
|
+
" with incoming value '" +
|
|
940
|
+
value +
|
|
941
|
+
"': ";
|
|
797
942
|
|
|
798
943
|
throw new Error(msg + (this.__errors[id] || "Unknown reason: " + id));
|
|
799
944
|
},
|
|
800
945
|
|
|
801
|
-
|
|
802
946
|
/**
|
|
803
947
|
* Compiles a string builder object to a function, executes the function and
|
|
804
948
|
* returns the return value.
|
|
@@ -811,9 +955,14 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
811
955
|
* @param args {arguments} Incoming arguments of wrapper method
|
|
812
956
|
* @return {var} Return value of the generated function
|
|
813
957
|
*/
|
|
814
|
-
__unwrapFunctionFromCode
|
|
815
|
-
|
|
816
|
-
|
|
958
|
+
__unwrapFunctionFromCode(instance, members, name, variant, code, args) {
|
|
959
|
+
var fn = this.__installFunctionFromCode(
|
|
960
|
+
instance.constructor,
|
|
961
|
+
name,
|
|
962
|
+
variant,
|
|
963
|
+
code,
|
|
964
|
+
args
|
|
965
|
+
);
|
|
817
966
|
|
|
818
967
|
// Executing new function
|
|
819
968
|
if (args === undefined) {
|
|
@@ -825,7 +974,6 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
825
974
|
}
|
|
826
975
|
},
|
|
827
976
|
|
|
828
|
-
|
|
829
977
|
/**
|
|
830
978
|
* Takes a string builder object, converts it into a function, and installs it as
|
|
831
979
|
* a property accessor
|
|
@@ -837,39 +985,50 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
837
985
|
* @param args {arguments} Incoming arguments of wrapper method
|
|
838
986
|
* @return {var} Return value of the generated function
|
|
839
987
|
*/
|
|
840
|
-
__installFunctionFromCode
|
|
841
|
-
{
|
|
988
|
+
__installFunctionFromCode(clazz, name, variant, code, args) {
|
|
842
989
|
var store = this.$$method[variant][name];
|
|
843
990
|
|
|
844
991
|
// Output generate code
|
|
845
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
846
|
-
{
|
|
992
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
847
993
|
if (qx.core.Environment.get("qx.debug.property.level") > 1) {
|
|
848
|
-
qx.Bootstrap.debug(
|
|
994
|
+
qx.Bootstrap.debug(
|
|
995
|
+
"Code[" + this.$$method[variant][name] + "]: " + code.join("")
|
|
996
|
+
);
|
|
849
997
|
}
|
|
850
998
|
|
|
851
999
|
// Overriding temporary wrapper
|
|
852
|
-
try{
|
|
853
|
-
clazz.prototype[store] =
|
|
854
|
-
} catch(ex) {
|
|
855
|
-
throw new Error(
|
|
1000
|
+
try {
|
|
1001
|
+
clazz.prototype[store] = new Function("value", code.join(""));
|
|
1002
|
+
} catch (ex) {
|
|
1003
|
+
throw new Error(
|
|
1004
|
+
"Malformed generated code to unwrap method: " +
|
|
1005
|
+
this.$$method[variant][name] +
|
|
1006
|
+
"\n" +
|
|
1007
|
+
code.join("")
|
|
1008
|
+
);
|
|
856
1009
|
}
|
|
857
|
-
}
|
|
858
|
-
|
|
859
|
-
{
|
|
860
|
-
clazz.prototype[store] = new Function("value", code.join(""));
|
|
1010
|
+
} else {
|
|
1011
|
+
clazz.prototype[store] = new Function("value", code.join(""));
|
|
861
1012
|
}
|
|
862
1013
|
|
|
863
1014
|
// Enable profiling code
|
|
864
1015
|
if (qx.core.Environment.get("qx.aspects")) {
|
|
865
|
-
clazz.prototype[store] = qx.core.Aspect.wrap(
|
|
1016
|
+
clazz.prototype[store] = qx.core.Aspect.wrap(
|
|
1017
|
+
clazz.classname + "." + store,
|
|
1018
|
+
clazz.prototype[store],
|
|
1019
|
+
"property"
|
|
1020
|
+
);
|
|
866
1021
|
}
|
|
867
1022
|
|
|
868
|
-
qx.Bootstrap.setDisplayName(
|
|
1023
|
+
qx.Bootstrap.setDisplayName(
|
|
1024
|
+
clazz.prototype[store],
|
|
1025
|
+
clazz.classname + ".prototype",
|
|
1026
|
+
store
|
|
1027
|
+
);
|
|
1028
|
+
|
|
869
1029
|
return clazz.prototype[store];
|
|
870
1030
|
},
|
|
871
1031
|
|
|
872
|
-
|
|
873
1032
|
/**
|
|
874
1033
|
* Generates the optimized getter, installs it into the class prototype, and executes it
|
|
875
1034
|
* Supported variants: get
|
|
@@ -880,14 +1039,18 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
880
1039
|
* @param variant {String} Method variant.
|
|
881
1040
|
* @return {var} Execute return value of apply generated function, generally the incoming value
|
|
882
1041
|
*/
|
|
883
|
-
executeOptimizedGetter
|
|
884
|
-
{
|
|
1042
|
+
executeOptimizedGetter(instance, clazz, name, variant) {
|
|
885
1043
|
var code = this.__compileGetter(clazz, name, variant);
|
|
886
1044
|
var members = clazz.prototype;
|
|
887
|
-
return this.__unwrapFunctionFromCode(
|
|
1045
|
+
return this.__unwrapFunctionFromCode(
|
|
1046
|
+
instance,
|
|
1047
|
+
members,
|
|
1048
|
+
name,
|
|
1049
|
+
variant,
|
|
1050
|
+
code
|
|
1051
|
+
);
|
|
888
1052
|
},
|
|
889
1053
|
|
|
890
|
-
|
|
891
1054
|
/**
|
|
892
1055
|
* Installs a getter into the class prototype, without executing it
|
|
893
1056
|
* Supported variants: get
|
|
@@ -896,13 +1059,11 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
896
1059
|
* @param name {String} name of the property
|
|
897
1060
|
* @param variant {String} Method variant.
|
|
898
1061
|
*/
|
|
899
|
-
__installOptimizedGetter
|
|
900
|
-
{
|
|
1062
|
+
__installOptimizedGetter(clazz, name, variant) {
|
|
901
1063
|
var code = this.__compileGetter(clazz, name, variant);
|
|
902
1064
|
this.__installFunctionFromCode(clazz, name, variant, code);
|
|
903
1065
|
},
|
|
904
1066
|
|
|
905
|
-
|
|
906
1067
|
/**
|
|
907
1068
|
* Compiles a getter into a string builder array
|
|
908
1069
|
* Supported variants: get
|
|
@@ -912,71 +1073,70 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
912
1073
|
* @param variant {String} Method variant.
|
|
913
1074
|
* @return {String[]} the string builder array
|
|
914
1075
|
*/
|
|
915
|
-
__compileGetter
|
|
916
|
-
{
|
|
1076
|
+
__compileGetter(clazz, name, variant) {
|
|
917
1077
|
var config = clazz.$$properties[name];
|
|
918
1078
|
var code = [];
|
|
919
1079
|
var store = this.$$store;
|
|
920
1080
|
|
|
921
1081
|
if (variant == "getAsync") {
|
|
922
|
-
|
|
923
|
-
|
|
1082
|
+
code.push(
|
|
1083
|
+
"return qx.Promise.resolve(this." + this.$$method.get[name] + "());"
|
|
1084
|
+
);
|
|
1085
|
+
|
|
1086
|
+
return code;
|
|
924
1087
|
}
|
|
925
1088
|
|
|
926
|
-
code.push(
|
|
927
|
-
code.push(
|
|
1089
|
+
code.push("if(this.", store.runtime[name], "!==undefined)");
|
|
1090
|
+
code.push("return this.", store.runtime[name], ";");
|
|
928
1091
|
|
|
929
|
-
if (config.inheritable)
|
|
930
|
-
|
|
931
|
-
code.push(
|
|
932
|
-
code.push(
|
|
933
|
-
code.push('else ');
|
|
1092
|
+
if (config.inheritable) {
|
|
1093
|
+
code.push("else if(this.", store.inherit[name], "!==undefined)");
|
|
1094
|
+
code.push("return this.", store.inherit[name], ";");
|
|
1095
|
+
code.push("else ");
|
|
934
1096
|
}
|
|
935
1097
|
|
|
936
|
-
code.push(
|
|
937
|
-
code.push(
|
|
1098
|
+
code.push("if(this.", store.user[name], "!==undefined)");
|
|
1099
|
+
code.push("return this.", store.user[name], ";");
|
|
938
1100
|
|
|
939
|
-
if (config.themeable)
|
|
940
|
-
|
|
941
|
-
code.push(
|
|
942
|
-
code.push('return this.', store.theme[name], ';');
|
|
1101
|
+
if (config.themeable) {
|
|
1102
|
+
code.push("else if(this.", store.theme[name], "!==undefined)");
|
|
1103
|
+
code.push("return this.", store.theme[name], ";");
|
|
943
1104
|
}
|
|
944
1105
|
|
|
945
|
-
if (config.deferredInit && config.init === undefined)
|
|
946
|
-
|
|
947
|
-
code.push(
|
|
948
|
-
code.push('return this.', store.init[name], ';');
|
|
1106
|
+
if (config.deferredInit && config.init === undefined) {
|
|
1107
|
+
code.push("else if(this.", store.init[name], "!==undefined)");
|
|
1108
|
+
code.push("return this.", store.init[name], ";");
|
|
949
1109
|
}
|
|
950
1110
|
|
|
951
|
-
code.push(
|
|
1111
|
+
code.push("else ");
|
|
952
1112
|
|
|
953
|
-
if (config.init !== undefined)
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
{
|
|
957
|
-
code.push('var init=this.', store.init[name], ';');
|
|
1113
|
+
if (config.init !== undefined) {
|
|
1114
|
+
if (config.inheritable) {
|
|
1115
|
+
code.push("var init=this.", store.init[name], ";");
|
|
958
1116
|
|
|
959
1117
|
if (config.nullable) {
|
|
960
|
-
code.push(
|
|
1118
|
+
code.push("if(init==qx.core.Property.$$inherit)init=null;");
|
|
961
1119
|
}
|
|
962
1120
|
|
|
963
|
-
code.push(
|
|
964
|
-
}
|
|
965
|
-
|
|
966
|
-
{
|
|
967
|
-
code.push('return this.', store.init[name], ';');
|
|
1121
|
+
code.push("return init;");
|
|
1122
|
+
} else {
|
|
1123
|
+
code.push("return this.", store.init[name], ";");
|
|
968
1124
|
}
|
|
969
|
-
}
|
|
970
|
-
|
|
971
|
-
code.push('return null;');
|
|
1125
|
+
} else if (config.inheritable || config.nullable) {
|
|
1126
|
+
code.push("return null;");
|
|
972
1127
|
} else {
|
|
973
|
-
code.push(
|
|
1128
|
+
code.push(
|
|
1129
|
+
'throw new Error("Property ',
|
|
1130
|
+
name,
|
|
1131
|
+
" of an instance of ",
|
|
1132
|
+
clazz.classname,
|
|
1133
|
+
' is not (yet) ready!");'
|
|
1134
|
+
);
|
|
974
1135
|
}
|
|
975
1136
|
|
|
976
1137
|
return code;
|
|
977
1138
|
},
|
|
978
1139
|
|
|
979
|
-
|
|
980
1140
|
/**
|
|
981
1141
|
* Generates the optimized setter
|
|
982
1142
|
* Supported variants: set, reset, init, refresh, style, unstyle
|
|
@@ -988,14 +1148,19 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
988
1148
|
* @param args {arguments} Incoming arguments of wrapper method
|
|
989
1149
|
* @return {var} Execute return value of apply generated function, generally the incoming value
|
|
990
1150
|
*/
|
|
991
|
-
executeOptimizedSetter
|
|
992
|
-
|
|
993
|
-
var code = this.__compileSetter(clazz, name, variant);
|
|
1151
|
+
executeOptimizedSetter(instance, clazz, name, variant, args) {
|
|
1152
|
+
var code = this.__compileSetter(clazz, name, variant);
|
|
994
1153
|
var members = clazz.prototype;
|
|
995
|
-
return this.__unwrapFunctionFromCode(
|
|
1154
|
+
return this.__unwrapFunctionFromCode(
|
|
1155
|
+
instance,
|
|
1156
|
+
members,
|
|
1157
|
+
name,
|
|
1158
|
+
variant,
|
|
1159
|
+
code,
|
|
1160
|
+
args
|
|
1161
|
+
);
|
|
996
1162
|
},
|
|
997
1163
|
|
|
998
|
-
|
|
999
1164
|
/**
|
|
1000
1165
|
* Installs a setter into the class prototype, without executing it
|
|
1001
1166
|
* Supported variants: set
|
|
@@ -1005,13 +1170,11 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1005
1170
|
* @param variant {String} Method variant.
|
|
1006
1171
|
* @return {var} Return value of the generated function
|
|
1007
1172
|
*/
|
|
1008
|
-
__installOptimizedSetter
|
|
1009
|
-
|
|
1010
|
-
var code = this.__compileSetter(clazz, name, variant);
|
|
1173
|
+
__installOptimizedSetter(clazz, name, variant) {
|
|
1174
|
+
var code = this.__compileSetter(clazz, name, variant);
|
|
1011
1175
|
return this.__installFunctionFromCode(clazz, name, variant, code);
|
|
1012
1176
|
},
|
|
1013
1177
|
|
|
1014
|
-
|
|
1015
1178
|
/**
|
|
1016
1179
|
* Compiles a setter into a string builder array
|
|
1017
1180
|
* Supported variants: set, setThemed, setRuntime, init
|
|
@@ -1022,22 +1185,27 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1022
1185
|
* @param variant {String} Method variant.
|
|
1023
1186
|
* @return {String[]} the string builder array
|
|
1024
1187
|
*/
|
|
1025
|
-
__compileSetter
|
|
1188
|
+
__compileSetter(clazz, name, variant) {
|
|
1026
1189
|
var config = clazz.$$properties[name];
|
|
1027
1190
|
var members = clazz.prototype;
|
|
1028
1191
|
var code = [];
|
|
1029
1192
|
|
|
1030
1193
|
var upname = qx.lang.String.firstUp(name);
|
|
1031
1194
|
if (variant == "setAsync") {
|
|
1032
|
-
code.push(
|
|
1033
|
-
|
|
1195
|
+
code.push(
|
|
1196
|
+
"return qx.Promise.resolve(this.$$set" +
|
|
1197
|
+
upname +
|
|
1198
|
+
"Impl.apply(this, arguments));"
|
|
1199
|
+
);
|
|
1034
1200
|
|
|
1201
|
+
return code;
|
|
1035
1202
|
} else if (variant == "set") {
|
|
1036
1203
|
code.push(
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1204
|
+
"this.$$set" + upname + "Impl.apply(this, arguments);",
|
|
1205
|
+
"return value;"
|
|
1206
|
+
);
|
|
1040
1207
|
|
|
1208
|
+
return code;
|
|
1041
1209
|
}
|
|
1042
1210
|
|
|
1043
1211
|
var incomingValue =
|
|
@@ -1047,12 +1215,17 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1047
1215
|
(variant === "init" && config.init === undefined);
|
|
1048
1216
|
var hasCallback = config.apply || config.event || config.inheritable;
|
|
1049
1217
|
|
|
1050
|
-
|
|
1051
1218
|
var store = this.__getStore(variant, name);
|
|
1052
1219
|
|
|
1053
1220
|
this.__emitIsEqualFunction(code, clazz, config, name);
|
|
1054
1221
|
|
|
1055
|
-
this.__emitSetterPreConditions(
|
|
1222
|
+
this.__emitSetterPreConditions(
|
|
1223
|
+
code,
|
|
1224
|
+
config,
|
|
1225
|
+
name,
|
|
1226
|
+
variant,
|
|
1227
|
+
incomingValue
|
|
1228
|
+
);
|
|
1056
1229
|
|
|
1057
1230
|
if (incomingValue || hasCallback) {
|
|
1058
1231
|
this.__emitOldValue(code, config, name);
|
|
@@ -1067,20 +1240,31 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1067
1240
|
}
|
|
1068
1241
|
|
|
1069
1242
|
if (config.inheritable) {
|
|
1070
|
-
code.push(
|
|
1243
|
+
code.push("var inherit=prop.$$inherit;");
|
|
1071
1244
|
}
|
|
1072
1245
|
|
|
1073
|
-
if (qx.core.Environment.get("qx.debug"))
|
|
1074
|
-
{
|
|
1246
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
1075
1247
|
if (incomingValue) {
|
|
1076
|
-
this.__emitIncomingValueValidation(
|
|
1248
|
+
this.__emitIncomingValueValidation(
|
|
1249
|
+
code,
|
|
1250
|
+
config,
|
|
1251
|
+
clazz,
|
|
1252
|
+
name,
|
|
1253
|
+
variant
|
|
1254
|
+
);
|
|
1077
1255
|
}
|
|
1078
1256
|
}
|
|
1079
1257
|
|
|
1080
1258
|
if (!hasCallback) {
|
|
1081
1259
|
this.__emitStoreValue(code, name, variant, incomingValue);
|
|
1082
1260
|
} else {
|
|
1083
|
-
this.__emitStoreComputedValue(
|
|
1261
|
+
this.__emitStoreComputedValue(
|
|
1262
|
+
code,
|
|
1263
|
+
config,
|
|
1264
|
+
name,
|
|
1265
|
+
variant,
|
|
1266
|
+
incomingValue
|
|
1267
|
+
);
|
|
1084
1268
|
}
|
|
1085
1269
|
|
|
1086
1270
|
if (config.inheritable) {
|
|
@@ -1089,39 +1273,46 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1089
1273
|
this.__emitNormalizeUndefinedValues(code, config, name, variant);
|
|
1090
1274
|
}
|
|
1091
1275
|
|
|
1092
|
-
if (hasCallback)
|
|
1093
|
-
{
|
|
1276
|
+
if (hasCallback) {
|
|
1094
1277
|
// Emit callback and event firing; Refreshing children (5th parameter) requires the parent/children interface
|
|
1095
|
-
this.__emitCallCallback(
|
|
1278
|
+
this.__emitCallCallback(
|
|
1279
|
+
code,
|
|
1280
|
+
config,
|
|
1281
|
+
name,
|
|
1282
|
+
variant,
|
|
1283
|
+
!!(config.inheritable && members._getChildren)
|
|
1284
|
+
);
|
|
1096
1285
|
}
|
|
1097
1286
|
|
|
1098
1287
|
// Return value
|
|
1099
1288
|
if (incomingValue) {
|
|
1100
|
-
code.unshift(
|
|
1101
|
-
code.push(
|
|
1102
|
-
if (
|
|
1289
|
+
code.unshift("function set(value){");
|
|
1290
|
+
code.push("}");
|
|
1291
|
+
if (
|
|
1292
|
+
qx.core.Environment.get("qx.promise") &&
|
|
1293
|
+
(!config.check || config.check != "qx.Promise")
|
|
1294
|
+
) {
|
|
1103
1295
|
code.push(
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1296
|
+
"var promise;",
|
|
1297
|
+
"if (qx.Promise.isPromise(value)) ",
|
|
1298
|
+
"promise = value.then(set.bind(this));",
|
|
1299
|
+
"else ",
|
|
1300
|
+
"promise = set.apply(this, arguments);"
|
|
1301
|
+
);
|
|
1302
|
+
|
|
1109
1303
|
if (variant == "setImpl") {
|
|
1110
1304
|
code.push("return promise;");
|
|
1111
1305
|
} else {
|
|
1112
|
-
code.push(
|
|
1306
|
+
code.push("return value;");
|
|
1113
1307
|
}
|
|
1114
1308
|
} else {
|
|
1115
|
-
code.push(
|
|
1116
|
-
'set.apply(this, arguments);',
|
|
1117
|
-
'return value;');
|
|
1309
|
+
code.push("set.apply(this, arguments);", "return value;");
|
|
1118
1310
|
}
|
|
1119
1311
|
}
|
|
1120
1312
|
|
|
1121
1313
|
return code;
|
|
1122
1314
|
},
|
|
1123
1315
|
|
|
1124
|
-
|
|
1125
1316
|
/**
|
|
1126
1317
|
* Get the object to store the value for the given variant
|
|
1127
1318
|
*
|
|
@@ -1130,8 +1321,7 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1130
1321
|
*
|
|
1131
1322
|
* @return {Object} the value store
|
|
1132
1323
|
*/
|
|
1133
|
-
__getStore
|
|
1134
|
-
{
|
|
1324
|
+
__getStore(variant, name) {
|
|
1135
1325
|
if (variant === "setRuntime" || variant === "resetRuntime") {
|
|
1136
1326
|
var store = this.$$store.runtime[name];
|
|
1137
1327
|
} else if (variant === "setThemed" || variant === "resetThemed") {
|
|
@@ -1145,7 +1335,6 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1145
1335
|
return store;
|
|
1146
1336
|
},
|
|
1147
1337
|
|
|
1148
|
-
|
|
1149
1338
|
/**
|
|
1150
1339
|
* Emit code for the equality check evaluation
|
|
1151
1340
|
*
|
|
@@ -1154,40 +1343,41 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1154
1343
|
* @param config {Object} The property configuration map
|
|
1155
1344
|
* @param name {String} name of the property
|
|
1156
1345
|
*/
|
|
1157
|
-
__emitIsEqualFunction
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1346
|
+
__emitIsEqualFunction(code, clazz, config, name) {
|
|
1347
|
+
code.push("var equ=");
|
|
1348
|
+
|
|
1349
|
+
if (typeof config.isEqual === "function") {
|
|
1350
|
+
code.push(
|
|
1351
|
+
"function(a,b){return !!",
|
|
1352
|
+
clazz.classname,
|
|
1353
|
+
".$$properties.",
|
|
1354
|
+
name,
|
|
1355
|
+
".isEqual.call(this,a,b);};"
|
|
1356
|
+
);
|
|
1357
|
+
} else if (typeof config.isEqual === "string") {
|
|
1168
1358
|
var members = clazz.prototype;
|
|
1169
1359
|
// Name of member?
|
|
1170
|
-
if (members[config.isEqual]!==undefined)
|
|
1171
|
-
|
|
1172
|
-
code.push('this.', config.isEqual, ';');
|
|
1360
|
+
if (members[config.isEqual] !== undefined) {
|
|
1361
|
+
code.push("this.", config.isEqual, ";");
|
|
1173
1362
|
}
|
|
1174
|
-
|
|
1175
|
-
{
|
|
1176
|
-
code.push(
|
|
1363
|
+
// 'inline' code
|
|
1364
|
+
else {
|
|
1365
|
+
code.push("function(a,b){return !!(", config.isEqual, ");};");
|
|
1177
1366
|
}
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
|
-
{
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1367
|
+
} else if (typeof config.isEqual === "undefined") {
|
|
1368
|
+
code.push("function(a,b){return a===b;};");
|
|
1369
|
+
} else {
|
|
1370
|
+
throw new Error(
|
|
1371
|
+
"Invalid type for 'isEqual' attribute " +
|
|
1372
|
+
"of property '" +
|
|
1373
|
+
name +
|
|
1374
|
+
"' in class '" +
|
|
1375
|
+
clazz.classname +
|
|
1376
|
+
"'"
|
|
1377
|
+
);
|
|
1187
1378
|
}
|
|
1188
1379
|
},
|
|
1189
1380
|
|
|
1190
|
-
|
|
1191
1381
|
/**
|
|
1192
1382
|
* Emit code to check the arguments preconditions
|
|
1193
1383
|
*
|
|
@@ -1197,50 +1387,70 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1197
1387
|
* @param variant {String} Method variant.
|
|
1198
1388
|
* @param incomingValue {Boolean} Whether the setter has an incoming value
|
|
1199
1389
|
*/
|
|
1200
|
-
__emitSetterPreConditions
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
{
|
|
1204
|
-
code.push('var prop=qx.core.Property;');
|
|
1390
|
+
__emitSetterPreConditions(code, config, name, variant, incomingValue) {
|
|
1391
|
+
if (qx.core.Environment.get("qx.debug")) {
|
|
1392
|
+
code.push("var prop=qx.core.Property;");
|
|
1205
1393
|
|
|
1206
1394
|
if (variant === "init") {
|
|
1207
|
-
code.push(
|
|
1395
|
+
code.push(
|
|
1396
|
+
'if(this.$$initialized)prop.error(this,0,"',
|
|
1397
|
+
name,
|
|
1398
|
+
'","',
|
|
1399
|
+
variant,
|
|
1400
|
+
'",value);'
|
|
1401
|
+
);
|
|
1208
1402
|
}
|
|
1209
1403
|
|
|
1210
|
-
if (variant === "refresh")
|
|
1211
|
-
{
|
|
1404
|
+
if (variant === "refresh") {
|
|
1212
1405
|
// do nothing
|
|
1213
1406
|
// refresh() is internal => no arguments test
|
|
1214
1407
|
// also note that refresh() supports "undefined" values
|
|
1215
|
-
}
|
|
1216
|
-
else if (incomingValue)
|
|
1217
|
-
{
|
|
1408
|
+
} else if (incomingValue) {
|
|
1218
1409
|
// Check argument length
|
|
1219
|
-
code.push(
|
|
1410
|
+
code.push(
|
|
1411
|
+
'if(arguments.length!==1)prop.error(this,1,"',
|
|
1412
|
+
name,
|
|
1413
|
+
'","',
|
|
1414
|
+
variant,
|
|
1415
|
+
'",value);'
|
|
1416
|
+
);
|
|
1220
1417
|
|
|
1221
1418
|
// Undefined check
|
|
1222
|
-
code.push(
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1419
|
+
code.push(
|
|
1420
|
+
'if(value===undefined)prop.error(this,2,"',
|
|
1421
|
+
name,
|
|
1422
|
+
'","',
|
|
1423
|
+
variant,
|
|
1424
|
+
'",value);'
|
|
1425
|
+
);
|
|
1426
|
+
} else {
|
|
1226
1427
|
// Check argument length
|
|
1227
|
-
code.push(
|
|
1428
|
+
code.push(
|
|
1429
|
+
'if(arguments.length!==0)prop.error(this,3,"',
|
|
1430
|
+
name,
|
|
1431
|
+
'","',
|
|
1432
|
+
variant,
|
|
1433
|
+
'",value);'
|
|
1434
|
+
);
|
|
1228
1435
|
}
|
|
1229
|
-
}
|
|
1230
|
-
else
|
|
1231
|
-
{
|
|
1436
|
+
} else {
|
|
1232
1437
|
if (!config.nullable || config.check || config.inheritable) {
|
|
1233
|
-
code.push(
|
|
1438
|
+
code.push("var prop=qx.core.Property;");
|
|
1234
1439
|
}
|
|
1235
1440
|
|
|
1236
1441
|
// Undefined check
|
|
1237
1442
|
if (variant === "setImpl") {
|
|
1238
|
-
code.push(
|
|
1443
|
+
code.push(
|
|
1444
|
+
'if(value===undefined)prop.error(this,2,"',
|
|
1445
|
+
name,
|
|
1446
|
+
'","',
|
|
1447
|
+
variant,
|
|
1448
|
+
'",value);'
|
|
1449
|
+
);
|
|
1239
1450
|
}
|
|
1240
1451
|
}
|
|
1241
1452
|
},
|
|
1242
1453
|
|
|
1243
|
-
|
|
1244
1454
|
/**
|
|
1245
1455
|
* Emit code to apply the "validate" and "transform" config keys.
|
|
1246
1456
|
*
|
|
@@ -1249,12 +1459,11 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1249
1459
|
* @param config {Object} The property configuration map
|
|
1250
1460
|
* @param name {String} name of the property
|
|
1251
1461
|
*/
|
|
1252
|
-
__emitIncomingValueTransformation
|
|
1253
|
-
{
|
|
1462
|
+
__emitIncomingValueTransformation(code, clazz, config, name) {
|
|
1254
1463
|
// Call user-provided transform method, if one is provided. Transform
|
|
1255
1464
|
// method should either throw an error or return the new value.
|
|
1256
1465
|
if (config.transform) {
|
|
1257
|
-
code.push(
|
|
1466
|
+
code.push("value=this.", config.transform, "(value, old);");
|
|
1258
1467
|
}
|
|
1259
1468
|
|
|
1260
1469
|
// Call user-provided validate method, if one is provided. Validate
|
|
@@ -1262,16 +1471,15 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1262
1471
|
if (config.validate) {
|
|
1263
1472
|
// if it is a string
|
|
1264
1473
|
if (typeof config.validate === "string") {
|
|
1265
|
-
code.push(
|
|
1266
|
-
|
|
1474
|
+
code.push("this.", config.validate, "(value);");
|
|
1475
|
+
// if its a function otherwise
|
|
1267
1476
|
} else if (config.validate instanceof Function) {
|
|
1268
|
-
code.push(clazz.classname,
|
|
1269
|
-
code.push(
|
|
1477
|
+
code.push(clazz.classname, ".$$properties.", name);
|
|
1478
|
+
code.push(".validate.call(this, value);");
|
|
1270
1479
|
}
|
|
1271
1480
|
}
|
|
1272
1481
|
},
|
|
1273
1482
|
|
|
1274
|
-
|
|
1275
1483
|
/**
|
|
1276
1484
|
* Emit code, which returns if the incoming value equals the current value.
|
|
1277
1485
|
*
|
|
@@ -1280,22 +1488,19 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1280
1488
|
* @param store {Object} The data store to use for the incoming value
|
|
1281
1489
|
* @param variant {String} Method variant.
|
|
1282
1490
|
*/
|
|
1283
|
-
__emitOldNewComparison
|
|
1284
|
-
|
|
1285
|
-
var resetValue = (
|
|
1491
|
+
__emitOldNewComparison(code, incomingValue, store, variant) {
|
|
1492
|
+
var resetValue =
|
|
1286
1493
|
variant === "reset" ||
|
|
1287
1494
|
variant === "resetThemed" ||
|
|
1288
|
-
variant === "resetRuntime"
|
|
1289
|
-
);
|
|
1495
|
+
variant === "resetRuntime";
|
|
1290
1496
|
|
|
1291
1497
|
if (incomingValue) {
|
|
1292
|
-
code.push(
|
|
1498
|
+
code.push("if(equ.call(this,this.", store, ",value))return value;");
|
|
1293
1499
|
} else if (resetValue) {
|
|
1294
|
-
code.push(
|
|
1500
|
+
code.push("if(this.", store, "===undefined)return;");
|
|
1295
1501
|
}
|
|
1296
1502
|
},
|
|
1297
1503
|
|
|
1298
|
-
|
|
1299
1504
|
/**
|
|
1300
1505
|
* Emit code, which performs validation of the incoming value according to
|
|
1301
1506
|
* the "nullable", "check" and "inheritable" config keys.
|
|
@@ -1307,70 +1512,84 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1307
1512
|
* @param name {String} name of the property
|
|
1308
1513
|
* @param variant {String} Method variant.
|
|
1309
1514
|
*/
|
|
1310
|
-
__emitIncomingValueValidation
|
|
1311
|
-
|
|
1312
|
-
"true" : function(code, config, clazz, name, variant)
|
|
1313
|
-
{
|
|
1515
|
+
__emitIncomingValueValidation: qx.core.Environment.select("qx.debug", {
|
|
1516
|
+
true(code, config, clazz, name, variant) {
|
|
1314
1517
|
// Null check
|
|
1315
1518
|
if (!config.nullable) {
|
|
1316
|
-
code.push(
|
|
1519
|
+
code.push(
|
|
1520
|
+
'if(value===null)prop.error(this,4,"',
|
|
1521
|
+
name,
|
|
1522
|
+
'","',
|
|
1523
|
+
variant,
|
|
1524
|
+
'",value);'
|
|
1525
|
+
);
|
|
1317
1526
|
}
|
|
1318
1527
|
|
|
1319
1528
|
// Processing check definition
|
|
1320
|
-
if (config.check !== undefined)
|
|
1321
|
-
|
|
1322
|
-
|
|
1529
|
+
if (config.check !== undefined) {
|
|
1530
|
+
code.push(
|
|
1531
|
+
"var msg = \"Invalid incoming value for property '" +
|
|
1532
|
+
name +
|
|
1533
|
+
"' of class '" +
|
|
1534
|
+
clazz.classname +
|
|
1535
|
+
"'\";"
|
|
1536
|
+
);
|
|
1323
1537
|
|
|
1324
1538
|
// Accept "null"
|
|
1325
1539
|
if (config.nullable) {
|
|
1326
|
-
code.push(
|
|
1540
|
+
code.push("if(value!==null)");
|
|
1327
1541
|
}
|
|
1328
1542
|
|
|
1329
1543
|
// Inheritable properties always accept "inherit" as value
|
|
1330
1544
|
if (config.inheritable) {
|
|
1331
|
-
code.push(
|
|
1545
|
+
code.push("if(value!==inherit)");
|
|
1332
1546
|
}
|
|
1333
1547
|
|
|
1334
|
-
code.push(
|
|
1548
|
+
code.push("if(");
|
|
1335
1549
|
|
|
1336
|
-
if (this.__checks[config.check] !== undefined)
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
else if (qx.Interface && qx.Interface.isDefined(config.check))
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
code.push(
|
|
1352
|
-
|
|
1353
|
-
else if (typeof config.check === "string")
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1550
|
+
if (this.__checks[config.check] !== undefined) {
|
|
1551
|
+
code.push("!(", this.__checks[config.check], ")");
|
|
1552
|
+
} else if (qx.Class.isDefined(config.check)) {
|
|
1553
|
+
code.push(
|
|
1554
|
+
'qx.core.Assert.assertInstance(value, qx.Class.getByName("',
|
|
1555
|
+
config.check,
|
|
1556
|
+
'"), msg)'
|
|
1557
|
+
);
|
|
1558
|
+
} else if (qx.Interface && qx.Interface.isDefined(config.check)) {
|
|
1559
|
+
code.push(
|
|
1560
|
+
'qx.core.Assert.assertInterface(value, qx.Interface.getByName("',
|
|
1561
|
+
config.check,
|
|
1562
|
+
'"), msg)'
|
|
1563
|
+
);
|
|
1564
|
+
} else if (typeof config.check === "function") {
|
|
1565
|
+
code.push("!", clazz.classname, ".$$properties.", name);
|
|
1566
|
+
code.push(".check.call(this, value)");
|
|
1567
|
+
} else if (typeof config.check === "string") {
|
|
1568
|
+
code.push("!(", config.check, ")");
|
|
1569
|
+
} else if (config.check instanceof Array) {
|
|
1570
|
+
code.push(
|
|
1571
|
+
"qx.core.Assert.assertInArray(value, ",
|
|
1572
|
+
clazz.classname,
|
|
1573
|
+
".$$properties.",
|
|
1574
|
+
name,
|
|
1575
|
+
".check, msg)"
|
|
1576
|
+
);
|
|
1577
|
+
} else {
|
|
1578
|
+
throw new Error(
|
|
1579
|
+
"Could not add check to property " +
|
|
1580
|
+
name +
|
|
1581
|
+
" of class " +
|
|
1582
|
+
clazz.classname
|
|
1583
|
+
);
|
|
1364
1584
|
}
|
|
1365
1585
|
|
|
1366
1586
|
code.push(')prop.error(this,5,"', name, '","', variant, '",value);');
|
|
1367
1587
|
}
|
|
1368
1588
|
},
|
|
1369
1589
|
|
|
1370
|
-
|
|
1590
|
+
false: undefined
|
|
1371
1591
|
}),
|
|
1372
1592
|
|
|
1373
|
-
|
|
1374
1593
|
/**
|
|
1375
1594
|
* Emit code to store the incoming value
|
|
1376
1595
|
*
|
|
@@ -1379,42 +1598,27 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1379
1598
|
* @param variant {String} Method variant.
|
|
1380
1599
|
* @param incomingValue {Boolean} Whether the setter has an incoming value
|
|
1381
1600
|
*/
|
|
1382
|
-
__emitStoreValue
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
{
|
|
1386
|
-
code.push(
|
|
1387
|
-
|
|
1388
|
-
else if (variant === "
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
code.push(
|
|
1392
|
-
|
|
1393
|
-
else if (variant === "
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
{
|
|
1399
|
-
code.push(
|
|
1400
|
-
code.push('delete this.', this.$$store.user[name], ';');
|
|
1401
|
-
}
|
|
1402
|
-
else if (variant === "setThemed")
|
|
1403
|
-
{
|
|
1404
|
-
code.push('this.', this.$$store.theme[name], '=value;');
|
|
1405
|
-
}
|
|
1406
|
-
else if (variant === "resetThemed")
|
|
1407
|
-
{
|
|
1408
|
-
code.push('if(this.', this.$$store.theme[name], '!==undefined)');
|
|
1409
|
-
code.push('delete this.', this.$$store.theme[name], ';');
|
|
1410
|
-
}
|
|
1411
|
-
else if (variant === "init" && incomingValue)
|
|
1412
|
-
{
|
|
1413
|
-
code.push('this.', this.$$store.init[name], '=value;');
|
|
1601
|
+
__emitStoreValue(code, name, variant, incomingValue) {
|
|
1602
|
+
if (variant === "setRuntime") {
|
|
1603
|
+
code.push("this.", this.$$store.runtime[name], "=value;");
|
|
1604
|
+
} else if (variant === "resetRuntime") {
|
|
1605
|
+
code.push("if(this.", this.$$store.runtime[name], "!==undefined)");
|
|
1606
|
+
code.push("delete this.", this.$$store.runtime[name], ";");
|
|
1607
|
+
} else if (variant === "setImpl") {
|
|
1608
|
+
code.push("this.", this.$$store.user[name], "=value;");
|
|
1609
|
+
} else if (variant === "reset") {
|
|
1610
|
+
code.push("if(this.", this.$$store.user[name], "!==undefined)");
|
|
1611
|
+
code.push("delete this.", this.$$store.user[name], ";");
|
|
1612
|
+
} else if (variant === "setThemed") {
|
|
1613
|
+
code.push("this.", this.$$store.theme[name], "=value;");
|
|
1614
|
+
} else if (variant === "resetThemed") {
|
|
1615
|
+
code.push("if(this.", this.$$store.theme[name], "!==undefined)");
|
|
1616
|
+
code.push("delete this.", this.$$store.theme[name], ";");
|
|
1617
|
+
} else if (variant === "init" && incomingValue) {
|
|
1618
|
+
code.push("this.", this.$$store.init[name], "=value;");
|
|
1414
1619
|
}
|
|
1415
1620
|
},
|
|
1416
1621
|
|
|
1417
|
-
|
|
1418
1622
|
/**
|
|
1419
1623
|
* Emit code to store the incoming value and compute the "old" and "computed"
|
|
1420
1624
|
* values.
|
|
@@ -1425,184 +1629,136 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1425
1629
|
* @param variant {String} Method variant.
|
|
1426
1630
|
* @param incomingValue {Boolean} Whether the setter has an incoming value
|
|
1427
1631
|
*/
|
|
1428
|
-
__emitStoreComputedValue
|
|
1429
|
-
|
|
1430
|
-
code.push('var computed;');
|
|
1431
|
-
|
|
1632
|
+
__emitStoreComputedValue(code, config, name, variant, incomingValue) {
|
|
1633
|
+
code.push("var computed;");
|
|
1432
1634
|
|
|
1433
1635
|
// OLD = RUNTIME VALUE
|
|
1434
|
-
code.push(
|
|
1636
|
+
code.push("if(this.", this.$$store.runtime[name], "!==undefined){");
|
|
1435
1637
|
|
|
1436
|
-
if (variant === "setRuntime")
|
|
1437
|
-
{
|
|
1638
|
+
if (variant === "setRuntime") {
|
|
1438
1639
|
// Replace it with new value
|
|
1439
|
-
code.push(
|
|
1440
|
-
}
|
|
1441
|
-
else if (variant === "resetRuntime")
|
|
1442
|
-
{
|
|
1640
|
+
code.push("computed=this.", this.$$store.runtime[name], "=value;");
|
|
1641
|
+
} else if (variant === "resetRuntime") {
|
|
1443
1642
|
// Delete field
|
|
1444
|
-
code.push(
|
|
1643
|
+
code.push("delete this.", this.$$store.runtime[name], ";");
|
|
1445
1644
|
|
|
1446
1645
|
// Complex computation of new value
|
|
1447
|
-
code.push(
|
|
1448
|
-
code.push(
|
|
1449
|
-
code.push(
|
|
1450
|
-
code.push(
|
|
1451
|
-
code.push(
|
|
1452
|
-
code.push(
|
|
1453
|
-
code.push(
|
|
1454
|
-
code.push(
|
|
1455
|
-
}
|
|
1456
|
-
else
|
|
1457
|
-
{
|
|
1646
|
+
code.push("if(this.", this.$$store.user[name], "!==undefined)");
|
|
1647
|
+
code.push("computed=this.", this.$$store.user[name], ";");
|
|
1648
|
+
code.push("else if(this.", this.$$store.theme[name], "!==undefined)");
|
|
1649
|
+
code.push("computed=this.", this.$$store.theme[name], ";");
|
|
1650
|
+
code.push("else if(this.", this.$$store.init[name], "!==undefined){");
|
|
1651
|
+
code.push("computed=this.", this.$$store.init[name], ";");
|
|
1652
|
+
code.push("this.", this.$$store.useinit[name], "=true;");
|
|
1653
|
+
code.push("}");
|
|
1654
|
+
} else {
|
|
1458
1655
|
// Use runtime value as it has higher priority
|
|
1459
|
-
code.push(
|
|
1656
|
+
code.push("computed=this.", this.$$store.runtime[name], ";");
|
|
1460
1657
|
|
|
1461
1658
|
// Store incoming value
|
|
1462
|
-
if (variant === "setImpl")
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
else if (variant === "
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
else if (variant === "
|
|
1471
|
-
|
|
1472
|
-
code.push('this.', this.$$store.theme[name], '=value;');
|
|
1473
|
-
}
|
|
1474
|
-
else if (variant === "resetThemed")
|
|
1475
|
-
{
|
|
1476
|
-
code.push('delete this.', this.$$store.theme[name], ';');
|
|
1477
|
-
}
|
|
1478
|
-
else if (variant === "init" && incomingValue)
|
|
1479
|
-
{
|
|
1480
|
-
code.push('this.', this.$$store.init[name], '=value;');
|
|
1659
|
+
if (variant === "setImpl") {
|
|
1660
|
+
code.push("this.", this.$$store.user[name], "=value;");
|
|
1661
|
+
} else if (variant === "reset") {
|
|
1662
|
+
code.push("delete this.", this.$$store.user[name], ";");
|
|
1663
|
+
} else if (variant === "setThemed") {
|
|
1664
|
+
code.push("this.", this.$$store.theme[name], "=value;");
|
|
1665
|
+
} else if (variant === "resetThemed") {
|
|
1666
|
+
code.push("delete this.", this.$$store.theme[name], ";");
|
|
1667
|
+
} else if (variant === "init" && incomingValue) {
|
|
1668
|
+
code.push("this.", this.$$store.init[name], "=value;");
|
|
1481
1669
|
}
|
|
1482
1670
|
}
|
|
1483
1671
|
|
|
1484
|
-
code.push(
|
|
1485
|
-
|
|
1672
|
+
code.push("}");
|
|
1486
1673
|
|
|
1487
1674
|
// OLD = USER VALUE
|
|
1488
|
-
code.push(
|
|
1675
|
+
code.push("else if(this.", this.$$store.user[name], "!==undefined){");
|
|
1489
1676
|
|
|
1490
|
-
if (variant === "setImpl")
|
|
1491
|
-
{
|
|
1677
|
+
if (variant === "setImpl") {
|
|
1492
1678
|
// Replace it with new value
|
|
1493
|
-
code.push(
|
|
1494
|
-
}
|
|
1495
|
-
else if (variant === "reset")
|
|
1496
|
-
{
|
|
1679
|
+
code.push("computed=this.", this.$$store.user[name], "=value;");
|
|
1680
|
+
} else if (variant === "reset") {
|
|
1497
1681
|
// Delete field
|
|
1498
|
-
code.push(
|
|
1682
|
+
code.push("delete this.", this.$$store.user[name], ";");
|
|
1499
1683
|
|
|
1500
1684
|
// Complex computation of new value
|
|
1501
|
-
code.push(
|
|
1502
|
-
code.push(
|
|
1503
|
-
code.push(
|
|
1504
|
-
code.push(
|
|
1505
|
-
code.push(
|
|
1506
|
-
code.push(
|
|
1507
|
-
code.push(
|
|
1508
|
-
code.push(
|
|
1509
|
-
}
|
|
1510
|
-
|
|
1511
|
-
{
|
|
1512
|
-
if (variant === "setRuntime")
|
|
1513
|
-
{
|
|
1685
|
+
code.push("if(this.", this.$$store.runtime[name], "!==undefined)");
|
|
1686
|
+
code.push("computed=this.", this.$$store.runtime[name], ";");
|
|
1687
|
+
code.push("if(this.", this.$$store.theme[name], "!==undefined)");
|
|
1688
|
+
code.push("computed=this.", this.$$store.theme[name], ";");
|
|
1689
|
+
code.push("else if(this.", this.$$store.init[name], "!==undefined){");
|
|
1690
|
+
code.push("computed=this.", this.$$store.init[name], ";");
|
|
1691
|
+
code.push("this.", this.$$store.useinit[name], "=true;");
|
|
1692
|
+
code.push("}");
|
|
1693
|
+
} else {
|
|
1694
|
+
if (variant === "setRuntime") {
|
|
1514
1695
|
// Use runtime value where it has higher priority
|
|
1515
|
-
code.push(
|
|
1516
|
-
}
|
|
1517
|
-
else if (config.inheritable)
|
|
1518
|
-
{
|
|
1696
|
+
code.push("computed=this.", this.$$store.runtime[name], "=value;");
|
|
1697
|
+
} else if (config.inheritable) {
|
|
1519
1698
|
// Use user value where it has higher priority
|
|
1520
|
-
code.push(
|
|
1521
|
-
}
|
|
1522
|
-
else
|
|
1523
|
-
{
|
|
1699
|
+
code.push("computed=this.", this.$$store.user[name], ";");
|
|
1700
|
+
} else {
|
|
1524
1701
|
// Use user value where it has higher priority
|
|
1525
|
-
code.push(
|
|
1702
|
+
code.push("computed=this.", this.$$store.user[name], ";");
|
|
1526
1703
|
}
|
|
1527
1704
|
|
|
1528
1705
|
// Store incoming value
|
|
1529
|
-
if (variant === "setThemed")
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
else if (variant === "
|
|
1534
|
-
|
|
1535
|
-
code.push('delete this.', this.$$store.theme[name], ';');
|
|
1536
|
-
}
|
|
1537
|
-
else if (variant === "init" && incomingValue)
|
|
1538
|
-
{
|
|
1539
|
-
code.push('this.', this.$$store.init[name], '=value;');
|
|
1706
|
+
if (variant === "setThemed") {
|
|
1707
|
+
code.push("this.", this.$$store.theme[name], "=value;");
|
|
1708
|
+
} else if (variant === "resetThemed") {
|
|
1709
|
+
code.push("delete this.", this.$$store.theme[name], ";");
|
|
1710
|
+
} else if (variant === "init" && incomingValue) {
|
|
1711
|
+
code.push("this.", this.$$store.init[name], "=value;");
|
|
1540
1712
|
}
|
|
1541
1713
|
}
|
|
1542
1714
|
|
|
1543
|
-
code.push(
|
|
1544
|
-
|
|
1715
|
+
code.push("}");
|
|
1545
1716
|
|
|
1546
1717
|
// OLD = THEMED VALUE
|
|
1547
|
-
if (config.themeable)
|
|
1548
|
-
|
|
1549
|
-
code.push('else if(this.', this.$$store.theme[name], '!==undefined){');
|
|
1550
|
-
|
|
1551
|
-
if (variant === "setRuntime")
|
|
1552
|
-
{
|
|
1553
|
-
code.push('computed=this.', this.$$store.runtime[name], '=value;');
|
|
1554
|
-
}
|
|
1718
|
+
if (config.themeable) {
|
|
1719
|
+
code.push("else if(this.", this.$$store.theme[name], "!==undefined){");
|
|
1555
1720
|
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1721
|
+
if (variant === "setRuntime") {
|
|
1722
|
+
code.push("computed=this.", this.$$store.runtime[name], "=value;");
|
|
1723
|
+
} else if (variant === "setImpl") {
|
|
1724
|
+
code.push("computed=this.", this.$$store.user[name], "=value;");
|
|
1559
1725
|
}
|
|
1560
1726
|
|
|
1561
1727
|
// reset() is impossible, because the user has higher priority than
|
|
1562
1728
|
// the themed value, so the themed value has no chance to ever get used,
|
|
1563
1729
|
// when there is an user value, too.
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
{
|
|
1567
|
-
code.push('computed=this.', this.$$store.theme[name], '=value;');
|
|
1568
|
-
}
|
|
1569
|
-
else if (variant === "resetThemed")
|
|
1570
|
-
{
|
|
1730
|
+
else if (variant === "setThemed") {
|
|
1731
|
+
code.push("computed=this.", this.$$store.theme[name], "=value;");
|
|
1732
|
+
} else if (variant === "resetThemed") {
|
|
1571
1733
|
// Delete entry
|
|
1572
|
-
code.push(
|
|
1734
|
+
code.push("delete this.", this.$$store.theme[name], ";");
|
|
1573
1735
|
|
|
1574
1736
|
// Fallback to init value
|
|
1575
|
-
code.push(
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
code.push(
|
|
1579
|
-
}
|
|
1580
|
-
else if (variant === "init")
|
|
1581
|
-
{
|
|
1737
|
+
code.push("if(this.", this.$$store.init[name], "!==undefined){");
|
|
1738
|
+
code.push("computed=this.", this.$$store.init[name], ";");
|
|
1739
|
+
code.push("this.", this.$$store.useinit[name], "=true;");
|
|
1740
|
+
code.push("}");
|
|
1741
|
+
} else if (variant === "init") {
|
|
1582
1742
|
if (incomingValue) {
|
|
1583
|
-
code.push(
|
|
1743
|
+
code.push("this.", this.$$store.init[name], "=value;");
|
|
1584
1744
|
}
|
|
1585
1745
|
|
|
1586
|
-
code.push(
|
|
1587
|
-
}
|
|
1588
|
-
|
|
1589
|
-
{
|
|
1590
|
-
code.push('computed=this.', this.$$store.theme[name], ';');
|
|
1746
|
+
code.push("computed=this.", this.$$store.theme[name], ";");
|
|
1747
|
+
} else if (variant === "refresh") {
|
|
1748
|
+
code.push("computed=this.", this.$$store.theme[name], ";");
|
|
1591
1749
|
}
|
|
1592
1750
|
|
|
1593
|
-
code.push(
|
|
1751
|
+
code.push("}");
|
|
1594
1752
|
}
|
|
1595
1753
|
|
|
1596
|
-
|
|
1597
1754
|
// OLD = INIT VALUE
|
|
1598
|
-
code.push(
|
|
1755
|
+
code.push("else if(this.", this.$$store.useinit[name], "){");
|
|
1599
1756
|
|
|
1600
|
-
if (variant === "init")
|
|
1601
|
-
{
|
|
1757
|
+
if (variant === "init") {
|
|
1602
1758
|
if (incomingValue) {
|
|
1603
|
-
code.push(
|
|
1759
|
+
code.push("computed=this.", this.$$store.init[name], "=value;");
|
|
1604
1760
|
} else {
|
|
1605
|
-
code.push(
|
|
1761
|
+
code.push("computed=this.", this.$$store.init[name], ";");
|
|
1606
1762
|
}
|
|
1607
1763
|
|
|
1608
1764
|
// useinit flag is already initialized
|
|
@@ -1611,65 +1767,60 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1611
1767
|
// reset(), resetRuntime() and resetStyle() are impossible, because the user and themed values have a
|
|
1612
1768
|
// higher priority than the init value, so the init value has no chance to ever get used,
|
|
1613
1769
|
// when there is an user or themed value, too.
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1770
|
+
else if (
|
|
1771
|
+
variant === "setImpl" ||
|
|
1772
|
+
variant === "setRuntime" ||
|
|
1773
|
+
variant === "setThemed" ||
|
|
1774
|
+
variant === "refresh"
|
|
1775
|
+
) {
|
|
1776
|
+
code.push("delete this.", this.$$store.useinit[name], ";");
|
|
1618
1777
|
|
|
1619
1778
|
if (variant === "setRuntime") {
|
|
1620
|
-
code.push(
|
|
1779
|
+
code.push("computed=this.", this.$$store.runtime[name], "=value;");
|
|
1621
1780
|
} else if (variant === "setImpl") {
|
|
1622
|
-
code.push(
|
|
1781
|
+
code.push("computed=this.", this.$$store.user[name], "=value;");
|
|
1623
1782
|
} else if (variant === "setThemed") {
|
|
1624
|
-
code.push(
|
|
1783
|
+
code.push("computed=this.", this.$$store.theme[name], "=value;");
|
|
1625
1784
|
} else if (variant === "refresh") {
|
|
1626
|
-
code.push(
|
|
1785
|
+
code.push("computed=this.", this.$$store.init[name], ";");
|
|
1627
1786
|
}
|
|
1628
1787
|
}
|
|
1629
1788
|
|
|
1630
|
-
code.push(
|
|
1631
|
-
|
|
1789
|
+
code.push("}");
|
|
1632
1790
|
|
|
1633
1791
|
// OLD = NONE
|
|
1634
1792
|
|
|
1635
1793
|
// reset(), resetRuntime() and resetStyle() are impossible because otherwise there
|
|
1636
1794
|
// is already an old value
|
|
1637
|
-
if (
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
}
|
|
1645
|
-
|
|
1646
|
-
else if (variant === "setImpl")
|
|
1647
|
-
{
|
|
1648
|
-
code.push('computed=this.', this.$$store.user[name], '=value;');
|
|
1649
|
-
}
|
|
1650
|
-
|
|
1651
|
-
else if (variant === "setThemed")
|
|
1652
|
-
{
|
|
1653
|
-
code.push('computed=this.', this.$$store.theme[name], '=value;');
|
|
1654
|
-
}
|
|
1795
|
+
if (
|
|
1796
|
+
variant === "setImpl" ||
|
|
1797
|
+
variant === "setRuntime" ||
|
|
1798
|
+
variant === "setThemed" ||
|
|
1799
|
+
variant === "init"
|
|
1800
|
+
) {
|
|
1801
|
+
code.push("else{");
|
|
1655
1802
|
|
|
1656
|
-
|
|
1657
|
-
|
|
1803
|
+
if (variant === "setRuntime") {
|
|
1804
|
+
code.push("computed=this.", this.$$store.runtime[name], "=value;");
|
|
1805
|
+
} else if (variant === "setImpl") {
|
|
1806
|
+
code.push("computed=this.", this.$$store.user[name], "=value;");
|
|
1807
|
+
} else if (variant === "setThemed") {
|
|
1808
|
+
code.push("computed=this.", this.$$store.theme[name], "=value;");
|
|
1809
|
+
} else if (variant === "init") {
|
|
1658
1810
|
if (incomingValue) {
|
|
1659
|
-
code.push(
|
|
1811
|
+
code.push("computed=this.", this.$$store.init[name], "=value;");
|
|
1660
1812
|
} else {
|
|
1661
|
-
code.push(
|
|
1813
|
+
code.push("computed=this.", this.$$store.init[name], ";");
|
|
1662
1814
|
}
|
|
1663
1815
|
|
|
1664
|
-
code.push(
|
|
1816
|
+
code.push("this.", this.$$store.useinit[name], "=true;");
|
|
1665
1817
|
}
|
|
1666
1818
|
|
|
1667
1819
|
// refresh() will work with the undefined value, later
|
|
1668
|
-
code.push(
|
|
1820
|
+
code.push("}");
|
|
1669
1821
|
}
|
|
1670
1822
|
},
|
|
1671
1823
|
|
|
1672
|
-
|
|
1673
1824
|
/**
|
|
1674
1825
|
* Emit code to compute the "old" value.
|
|
1675
1826
|
*
|
|
@@ -1677,40 +1828,43 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1677
1828
|
* @param config {Object} The property configuration map
|
|
1678
1829
|
* @param name {String} name of the property
|
|
1679
1830
|
*/
|
|
1680
|
-
__emitOldValue
|
|
1681
|
-
{
|
|
1831
|
+
__emitOldValue(code, config, name) {
|
|
1682
1832
|
if (config.inheritable) {
|
|
1683
|
-
code.push(
|
|
1833
|
+
code.push("var old=this.", this.$$store.inherit[name], ";");
|
|
1684
1834
|
} else {
|
|
1685
|
-
code.push(
|
|
1835
|
+
code.push("var old;");
|
|
1686
1836
|
}
|
|
1687
1837
|
|
|
1688
1838
|
// OLD = RUNTIME VALUE
|
|
1689
|
-
code.push(
|
|
1690
|
-
code.push(
|
|
1691
|
-
code.push(
|
|
1839
|
+
code.push("if(this.", this.$$store.runtime[name], "!==undefined){");
|
|
1840
|
+
code.push("old=this.", this.$$store.runtime[name], ";");
|
|
1841
|
+
code.push("}");
|
|
1692
1842
|
|
|
1693
1843
|
// OLD = USER VALUE
|
|
1694
1844
|
if (!config.inheritable) {
|
|
1695
|
-
code.push(
|
|
1696
|
-
code.push(
|
|
1697
|
-
code.push(
|
|
1845
|
+
code.push("else if(this.", this.$$store.user[name], "!==undefined){");
|
|
1846
|
+
code.push("old=this.", this.$$store.user[name], ";");
|
|
1847
|
+
code.push("}");
|
|
1698
1848
|
|
|
1699
1849
|
// OLD = THEMED VALUE
|
|
1700
1850
|
if (config.themeable) {
|
|
1701
|
-
code.push(
|
|
1702
|
-
|
|
1703
|
-
|
|
1851
|
+
code.push(
|
|
1852
|
+
"else if(this.",
|
|
1853
|
+
this.$$store.theme[name],
|
|
1854
|
+
"!==undefined){"
|
|
1855
|
+
);
|
|
1856
|
+
|
|
1857
|
+
code.push("old=this.", this.$$store.theme[name], ";");
|
|
1858
|
+
code.push("}");
|
|
1704
1859
|
}
|
|
1705
1860
|
|
|
1706
1861
|
// OLD = INIT VALUE
|
|
1707
|
-
code.push(
|
|
1708
|
-
code.push(
|
|
1709
|
-
code.push(
|
|
1862
|
+
code.push("else if(this.", this.$$store.useinit[name], "){");
|
|
1863
|
+
code.push("old=this.", this.$$store.init[name], ";");
|
|
1864
|
+
code.push("}");
|
|
1710
1865
|
}
|
|
1711
1866
|
},
|
|
1712
1867
|
|
|
1713
|
-
|
|
1714
1868
|
/**
|
|
1715
1869
|
* Emit code to store the value of an inheritable property
|
|
1716
1870
|
*
|
|
@@ -1719,57 +1873,64 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1719
1873
|
* @param name {String} name of the property
|
|
1720
1874
|
* @param variant {String} Method variant.
|
|
1721
1875
|
*/
|
|
1722
|
-
__emitStoreInheritedPropertyValue
|
|
1723
|
-
|
|
1724
|
-
code.push('if(computed===undefined||computed===inherit){');
|
|
1876
|
+
__emitStoreInheritedPropertyValue(code, config, name, variant) {
|
|
1877
|
+
code.push("if(computed===undefined||computed===inherit){");
|
|
1725
1878
|
|
|
1726
1879
|
if (variant === "refresh") {
|
|
1727
|
-
code.push(
|
|
1880
|
+
code.push("computed=value;");
|
|
1728
1881
|
} else {
|
|
1729
|
-
code.push(
|
|
1882
|
+
code.push(
|
|
1883
|
+
"var pa=this.getLayoutParent();if(pa)computed=pa.",
|
|
1884
|
+
this.$$store.inherit[name],
|
|
1885
|
+
";"
|
|
1886
|
+
);
|
|
1730
1887
|
}
|
|
1731
1888
|
|
|
1732
1889
|
// Fallback to init value if inheritance was unsuccessful
|
|
1733
|
-
code.push(
|
|
1734
|
-
code.push(
|
|
1735
|
-
code.push(
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
code.push(
|
|
1739
|
-
code.push(
|
|
1890
|
+
code.push("if((computed===undefined||computed===inherit)&&");
|
|
1891
|
+
code.push("this.", this.$$store.init[name], "!==undefined&&");
|
|
1892
|
+
code.push("this.", this.$$store.init[name], "!==inherit){");
|
|
1893
|
+
code.push("computed=this.", this.$$store.init[name], ";");
|
|
1894
|
+
code.push("this.", this.$$store.useinit[name], "=true;");
|
|
1895
|
+
code.push("}else{");
|
|
1896
|
+
code.push("delete this.", this.$$store.useinit[name], ";}");
|
|
1740
1897
|
|
|
1741
|
-
code.push(
|
|
1898
|
+
code.push("}");
|
|
1742
1899
|
|
|
1743
1900
|
// Compare old/new computed value
|
|
1744
|
-
code.push(
|
|
1901
|
+
code.push("if(equ.call(this,old,computed))return value;");
|
|
1745
1902
|
|
|
1746
1903
|
// Note: At this point computed can be "inherit" or "undefined".
|
|
1747
1904
|
|
|
1748
1905
|
// Normalize "inherit" to undefined and delete inherited value
|
|
1749
|
-
code.push(
|
|
1750
|
-
code.push(
|
|
1751
|
-
|
|
1906
|
+
code.push("if(computed===inherit){");
|
|
1907
|
+
code.push(
|
|
1908
|
+
"computed=undefined;delete this.",
|
|
1909
|
+
this.$$store.inherit[name],
|
|
1910
|
+
";"
|
|
1911
|
+
);
|
|
1912
|
+
|
|
1913
|
+
code.push("}");
|
|
1752
1914
|
|
|
1753
1915
|
// Only delete inherited value
|
|
1754
|
-
code.push(
|
|
1755
|
-
code.push(
|
|
1916
|
+
code.push("else if(computed===undefined)");
|
|
1917
|
+
code.push("delete this.", this.$$store.inherit[name], ";");
|
|
1756
1918
|
|
|
1757
1919
|
// Store inherited value
|
|
1758
|
-
code.push(
|
|
1920
|
+
code.push("else this.", this.$$store.inherit[name], "=computed;");
|
|
1759
1921
|
|
|
1760
1922
|
// Protect against normalization
|
|
1761
|
-
code.push(
|
|
1923
|
+
code.push("var backup=computed;");
|
|
1762
1924
|
|
|
1763
1925
|
// After storage finally normalize computed and old value
|
|
1764
1926
|
if (config.init !== undefined && variant !== "init") {
|
|
1765
|
-
code.push(
|
|
1927
|
+
code.push("if(old===undefined)old=this.", this.$$store.init[name], ";");
|
|
1766
1928
|
} else {
|
|
1767
|
-
code.push(
|
|
1929
|
+
code.push("if(old===undefined)old=null;");
|
|
1768
1930
|
}
|
|
1769
|
-
code.push(
|
|
1931
|
+
code.push("if(computed===undefined||computed==inherit)computed=null;");
|
|
1770
1932
|
},
|
|
1771
1933
|
|
|
1772
|
-
|
|
1773
1934
|
/**
|
|
1774
1935
|
* Emit code to normalize the old and incoming values from undefined to
|
|
1775
1936
|
* <code>null</code>.
|
|
@@ -1779,26 +1940,28 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1779
1940
|
* @param name {String} name of the property
|
|
1780
1941
|
* @param variant {String} Method variant.
|
|
1781
1942
|
*/
|
|
1782
|
-
__emitNormalizeUndefinedValues
|
|
1783
|
-
{
|
|
1943
|
+
__emitNormalizeUndefinedValues(code, config, name, variant) {
|
|
1784
1944
|
// Properties which are not inheritable have no possibility to get
|
|
1785
1945
|
// undefined at this position. (Hint: set(), setRuntime() and setThemed() only allow non undefined values)
|
|
1786
|
-
if (
|
|
1787
|
-
|
|
1946
|
+
if (
|
|
1947
|
+
variant !== "setImpl" &&
|
|
1948
|
+
variant !== "setRuntime" &&
|
|
1949
|
+
variant !== "setThemed"
|
|
1950
|
+
) {
|
|
1951
|
+
code.push("if(computed===undefined)computed=null;");
|
|
1788
1952
|
}
|
|
1789
1953
|
|
|
1790
1954
|
// Compare old/new computed value
|
|
1791
|
-
code.push(
|
|
1955
|
+
code.push("if(equ.call(this,old,computed))return value;");
|
|
1792
1956
|
|
|
1793
1957
|
// Normalize old value
|
|
1794
1958
|
if (config.init !== undefined && variant !== "init") {
|
|
1795
|
-
code.push(
|
|
1959
|
+
code.push("if(old===undefined)old=this.", this.$$store.init[name], ";");
|
|
1796
1960
|
} else {
|
|
1797
|
-
code.push(
|
|
1961
|
+
code.push("if(old===undefined)old=null;");
|
|
1798
1962
|
}
|
|
1799
1963
|
},
|
|
1800
1964
|
|
|
1801
|
-
|
|
1802
1965
|
/**
|
|
1803
1966
|
* Emit code to call the apply method and fire the change event
|
|
1804
1967
|
*
|
|
@@ -1808,99 +1971,130 @@ qx.Bootstrap.define("qx.core.Property",
|
|
|
1808
1971
|
* @param variant {String} variant of the method e.g. setThemed
|
|
1809
1972
|
* @param refresh {Boolean} if true, emit code to update the inherited values of child objects
|
|
1810
1973
|
*/
|
|
1811
|
-
__emitCallCallback
|
|
1812
|
-
{
|
|
1974
|
+
__emitCallCallback(code, config, name, variant, refresh) {
|
|
1813
1975
|
// Execute user configured setter
|
|
1814
|
-
code.push("var self=this;",
|
|
1815
|
-
'var promise;');
|
|
1976
|
+
code.push("var self=this;", "var promise;");
|
|
1816
1977
|
if (config.apply) {
|
|
1817
|
-
code.push(
|
|
1978
|
+
code.push(
|
|
1979
|
+
"promise = this.",
|
|
1980
|
+
config.apply,
|
|
1981
|
+
'(computed, old, "',
|
|
1982
|
+
name,
|
|
1983
|
+
'", "',
|
|
1984
|
+
variant,
|
|
1985
|
+
'");'
|
|
1986
|
+
);
|
|
1818
1987
|
}
|
|
1819
1988
|
|
|
1820
1989
|
if (config.async) {
|
|
1821
1990
|
code.push(
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1991
|
+
"function fire() {",
|
|
1992
|
+
"var promiseData = qx.Promise.resolve(computed);",
|
|
1993
|
+
"var promise = promiseData;"
|
|
1994
|
+
);
|
|
1826
1995
|
|
|
1827
1996
|
// Fire event
|
|
1828
1997
|
if (config.event) {
|
|
1829
1998
|
code.push(
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1999
|
+
"var reg=qx.event.Registration;",
|
|
2000
|
+
"if(reg.hasListener(self, '",
|
|
2001
|
+
config.event,
|
|
2002
|
+
"')) {",
|
|
2003
|
+
"promise = reg.fireEventAsync(self, '",
|
|
2004
|
+
config.event,
|
|
2005
|
+
"', qx.event.type.Data, [computed, old]",
|
|
2006
|
+
");",
|
|
2007
|
+
"promise = promise.then(function() { return computed; });",
|
|
2008
|
+
"}",
|
|
2009
|
+
"if(reg.hasListener(self, '",
|
|
2010
|
+
config.event,
|
|
2011
|
+
"Async'))",
|
|
2012
|
+
"promise = promise.then(function() {",
|
|
2013
|
+
"return reg.fireEventAsync(self, '",
|
|
2014
|
+
config.event,
|
|
2015
|
+
"Async', qx.event.type.Data, [promiseData, old]",
|
|
2016
|
+
");",
|
|
2017
|
+
"});"
|
|
2018
|
+
);
|
|
1840
2019
|
}
|
|
1841
2020
|
|
|
1842
2021
|
// Emit code to update the inherited values of child objects
|
|
1843
2022
|
if (refresh) {
|
|
1844
2023
|
code.push(
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
2024
|
+
"var a=self._getChildren();",
|
|
2025
|
+
"if(a)",
|
|
2026
|
+
"for(var i=0,l=a.length;i<l;i++){",
|
|
2027
|
+
"if(a[i].",
|
|
2028
|
+
this.$$method.refresh[name],
|
|
2029
|
+
")",
|
|
2030
|
+
"a[i].",
|
|
2031
|
+
this.$$method.refresh[name],
|
|
2032
|
+
"(backup);",
|
|
2033
|
+
"}"
|
|
2034
|
+
);
|
|
1851
2035
|
}
|
|
1852
2036
|
|
|
1853
|
-
code.push(
|
|
1854
|
-
"return promise;",
|
|
1855
|
-
"}");
|
|
2037
|
+
code.push("return promise;", "}");
|
|
1856
2038
|
} else {
|
|
1857
|
-
code.push(
|
|
1858
|
-
"function fire() {",
|
|
1859
|
-
" var tracker={};");
|
|
2039
|
+
code.push("function fire() {", " var tracker={};");
|
|
1860
2040
|
|
|
1861
2041
|
// Fire event
|
|
1862
2042
|
if (config.event) {
|
|
1863
2043
|
code.push(
|
|
1864
|
-
|
|
2044
|
+
"var reg=qx.event.Registration;",
|
|
2045
|
+
|
|
2046
|
+
"if(reg.hasListener(self, '",
|
|
2047
|
+
config.event,
|
|
2048
|
+
"'))",
|
|
2049
|
+
"qx.event.Utils.track(tracker, reg.fireEvent(self, '",
|
|
2050
|
+
config.event,
|
|
2051
|
+
"', qx.event.type.Data, [computed, old]",
|
|
2052
|
+
"));"
|
|
2053
|
+
);
|
|
1865
2054
|
|
|
1866
|
-
"if(reg.hasListener(self, '", config.event, "'))",
|
|
1867
|
-
"qx.event.Utils.track(tracker, reg.fireEvent(self, '", config.event, "', qx.event.type.Data, [computed, old]", "));");
|
|
1868
2055
|
if (qx.core.Environment.get("qx.promise")) {
|
|
1869
2056
|
code.push(
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
2057
|
+
"if(reg.hasListener(self, '",
|
|
2058
|
+
config.event,
|
|
2059
|
+
"Async'))",
|
|
2060
|
+
"qx.event.Utils.then(tracker, function() {\n" +
|
|
2061
|
+
" return reg.fireEventAsync(self, '",
|
|
2062
|
+
config.event,
|
|
2063
|
+
"Async', qx.event.type.Data, [qx.Promise.resolve(computed), old]",
|
|
2064
|
+
");\n" + "});"
|
|
2065
|
+
);
|
|
1875
2066
|
}
|
|
1876
2067
|
}
|
|
1877
2068
|
// Emit code to update the inherited values of child objects
|
|
1878
2069
|
if (refresh) {
|
|
1879
2070
|
code.push(
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
2071
|
+
"var a=self._getChildren();",
|
|
2072
|
+
"if(a)",
|
|
2073
|
+
"for(var i=0,l=a.length;i<l;i++){",
|
|
2074
|
+
"if(a[i].",
|
|
2075
|
+
this.$$method.refresh[name],
|
|
2076
|
+
")",
|
|
2077
|
+
"a[i].",
|
|
2078
|
+
this.$$method.refresh[name],
|
|
2079
|
+
"(backup);",
|
|
2080
|
+
"}"
|
|
2081
|
+
);
|
|
1886
2082
|
}
|
|
1887
2083
|
|
|
1888
2084
|
code.push(
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
"}"
|
|
2085
|
+
"if (tracker.promise)\n",
|
|
2086
|
+
" return tracker.promise.then(function() { return computed; });",
|
|
2087
|
+
"return computed;",
|
|
2088
|
+
"}"
|
|
2089
|
+
);
|
|
1893
2090
|
}
|
|
1894
2091
|
|
|
1895
2092
|
if (qx.core.Environment.get("qx.promise")) {
|
|
1896
2093
|
code.push(
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
);
|
|
2094
|
+
"if(qx.Promise.isPromise(promise)) " + "return promise.then(fire); "
|
|
2095
|
+
);
|
|
1900
2096
|
}
|
|
1901
|
-
code.push(
|
|
1902
|
-
"return fire();"
|
|
1903
|
-
);
|
|
2097
|
+
code.push("return fire();");
|
|
1904
2098
|
}
|
|
1905
2099
|
}
|
|
1906
2100
|
});
|