@qooxdoo/framework 7.9.2 → 8.0.0-beta.1
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 +191 -33
- package/Manifest.json +3 -3
- package/bin/tools/utils.js +50 -13
- package/lib/compiler/compile-info.json +300 -230
- package/lib/compiler/index.js +56748 -44036
- package/lib/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-node.tmpl.js +1 -0
- package/lib/resource/qx/tool/compiler/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -0
- package/{source/resource/qx/tool → lib/resource/qx/tool/compiler}/cli/templates/template_vars.js +12 -9
- package/{source/resource/qx/tool → lib/resource/qx/tool/compiler}/schema/Manifest-1-0-0.json +2 -2
- package/lib/resource/qx/tool/{schema → compiler/schema}/Manifest-2-0-0.json +2 -2
- package/lib/resource/qx/tool/{schema → compiler/schema}/compile-1-0-0.json +15 -3
- package/{source/resource/qx/tool → lib/resource/qx/tool/compiler}/schema/qooxdoo-1-0-0.json +1 -1
- package/lib/resource/qx/tool/website/build/404.html +22 -22
- package/lib/resource/qx/tool/website/build/about.html +23 -23
- package/lib/resource/qx/tool/website/build/assets/common.js +30 -18
- package/lib/resource/qx/tool/website/build/assets/custom.css +290 -0
- package/lib/resource/qx/tool/website/build/assets/qxWeb.js +28 -0
- package/lib/resource/qx/tool/website/build/diagnostics/dependson.html +30 -30
- package/lib/resource/qx/tool/website/build/diagnostics/dependson.js +49 -40
- package/lib/resource/qx/tool/website/build/diagnostics/requiredby.html +20 -23
- package/lib/resource/qx/tool/website/build/diagnostics/requiredby.js +38 -31
- package/lib/resource/qx/tool/website/build/index.html +24 -24
- package/lib/resource/qx/tool/website/build/scripts/serve.js +63 -65
- package/lib/resource/qx/tool/website/partials/footer.html +8 -13
- package/lib/resource/qx/tool/website/partials/head.html +9 -7
- package/lib/resource/qx/tool/website/partials/header.html +3 -3
- package/lib/resource/qx/tool/website/src/assets/common.js +32 -0
- package/lib/resource/qx/tool/website/src/assets/custom.css +290 -0
- package/lib/resource/qx/tool/website/src/assets/qxWeb.js +28 -0
- package/lib/resource/qx/tool/website/src/diagnostics/dependson.js +49 -40
- package/lib/resource/qx/tool/website/src/diagnostics/requiredby.js +38 -31
- package/lib/resource/qx/tool/website/src/index.html +2 -2
- package/lib/resource/qx/tool/website/src/scripts/serve.js +63 -65
- package/package.json +20 -19
- package/source/boot/index.html +2 -2
- package/source/class/qx/Bootstrap.js +931 -705
- package/source/class/qx/Class.js +1476 -1451
- package/source/class/qx/Interface.js +40 -107
- package/source/class/qx/Mixin.js +58 -116
- package/source/class/qx/Promise.js +1 -0
- package/source/class/qx/Theme.js +1 -1
- package/source/class/qx/application/Routing.js +2 -0
- package/source/class/qx/bom/Font.js +3 -0
- package/source/class/qx/bom/client/Locale.js +5 -0
- package/source/class/qx/bom/request/Jsonp.js +5 -13
- package/source/class/qx/bom/request/Script.js +11 -35
- package/source/class/qx/bom/request/SimpleXhr.js +13 -41
- package/source/class/qx/bom/request/Xhr.js +19 -80
- package/source/class/qx/bom/storage/Memory.js +2 -0
- package/source/class/qx/bom/storage/UserData.js +2 -0
- package/source/class/qx/bom/storage/Web.js +2 -0
- package/source/class/qx/bom/webfonts/Validator.js +13 -5
- package/source/class/qx/core/Assert.js +14 -0
- package/source/class/qx/core/BaseInit.js +19 -20
- package/source/class/qx/core/Environment.js +23 -20
- package/source/class/qx/core/MEvent.js +1 -1
- package/source/class/qx/core/MObjectId.js +8 -6
- package/source/class/qx/core/MProperty.js +172 -136
- package/source/class/qx/core/Object.js +88 -102
- package/source/class/qx/core/check/AbstractCheck.js +111 -0
- package/source/class/qx/core/check/Any.js +63 -0
- package/source/class/qx/core/check/CheckFactory.js +151 -0
- package/source/class/qx/core/check/DynamicTypeCheck.js +90 -0
- package/source/class/qx/core/check/ICheck.js +75 -0
- package/source/class/qx/core/check/IsOneOfCheck.js +63 -0
- package/source/class/qx/core/check/JsDocCheck.js +71 -0
- package/source/class/qx/core/check/SimpleCheck.js +42 -0
- package/source/class/qx/core/check/standard/ArrayCheck.js +49 -0
- package/source/class/qx/core/check/standard/BooleanCheck.js +47 -0
- package/source/class/qx/core/check/standard/ClassCheck.js +33 -0
- package/source/class/qx/core/check/standard/ColorCheck.js +33 -0
- package/source/class/qx/core/check/standard/DateCheck.js +49 -0
- package/source/class/qx/core/check/standard/DecoratorCheck.js +33 -0
- package/source/class/qx/core/check/standard/DocumentCheck.js +40 -0
- package/source/class/qx/core/check/standard/ElementCheck.js +40 -0
- package/source/class/qx/core/check/standard/ErrorCheck.js +46 -0
- package/source/class/qx/core/check/standard/EventCheck.js +40 -0
- package/source/class/qx/core/check/standard/FontCheck.js +33 -0
- package/source/class/qx/core/check/standard/FunctionCheck.js +49 -0
- package/source/class/qx/core/check/standard/IntegerCheck.js +54 -0
- package/source/class/qx/core/check/standard/InterfaceCheck.js +33 -0
- package/source/class/qx/core/check/standard/MapCheck.js +33 -0
- package/source/class/qx/core/check/standard/MixinCheck.js +33 -0
- package/source/class/qx/core/check/standard/NodeCheck.js +40 -0
- package/source/class/qx/core/check/standard/NumberCheck.js +48 -0
- package/source/class/qx/core/check/standard/ObjectCheck.js +33 -0
- package/source/class/qx/core/check/standard/PositiveIntegerCheck.js +45 -0
- package/source/class/qx/core/check/standard/PositiveNumberCheck.js +45 -0
- package/source/class/qx/core/check/standard/PromiseCheck.js +33 -0
- package/source/class/qx/core/check/standard/RegExpCheck.js +46 -0
- package/source/class/qx/core/check/standard/StringCheck.js +43 -0
- package/source/class/qx/core/check/standard/ThemeCheck.js +33 -0
- package/source/class/qx/core/check/standard/WindowCheck.js +40 -0
- package/source/class/qx/core/property/ExplicitPropertyStorage.js +87 -0
- package/source/class/qx/core/property/GroupProperty.js +262 -0
- package/source/class/qx/core/property/IProperty.js +46 -0
- package/source/class/qx/core/property/IPropertyStorage.js +83 -0
- package/source/class/qx/core/property/ImmutableArrayStorage.js +38 -0
- package/source/class/qx/core/property/ImmutableDataArrayStorage.js +38 -0
- package/source/class/qx/core/property/ImmutableObjectStorage.js +39 -0
- package/source/class/qx/core/property/Property.js +1481 -0
- package/source/class/qx/core/property/PropertyStorageFactory.js +22 -0
- package/source/class/qx/core/property/SimplePropertyStorage.js +105 -0
- package/source/class/qx/data/Array.js +102 -57
- package/source/class/qx/data/MBinding.js +4 -29
- package/source/class/qx/data/SingleValueBinding.js +596 -1495
- package/source/class/qx/data/binding/AbstractSegment.js +197 -0
- package/source/class/qx/data/binding/ArrayIndexSegment.js +148 -0
- package/source/class/qx/data/binding/IInputReceiver.js +14 -0
- package/source/class/qx/data/binding/PropNameSegment.js +150 -0
- package/source/class/qx/data/controller/CheckedList.js +1 -1
- package/source/class/qx/data/controller/Form.js +78 -8
- package/source/class/qx/data/controller/Tree.js +27 -117
- package/source/class/qx/data/marshal/Json.js +46 -149
- package/source/class/qx/data/store/Json.js +0 -2
- package/source/class/qx/dev/Debug.js +1 -1
- package/source/class/qx/dev/LeakDetector.js +144 -0
- package/source/class/qx/dev/unit/AsyncWrapper.js +1 -0
- package/source/class/qx/dev/unit/MMock.js +7 -2
- package/source/class/qx/dev/unit/Sinon.js +0 -4
- package/source/class/qx/dev/unit/TestClass.js +2 -2
- package/source/class/qx/dev/unit/TestFunction.js +1 -0
- package/source/class/qx/dev/unit/TestLoaderBasic.js +1 -0
- package/source/class/qx/dev/unit/TestRunner.js +106 -0
- package/source/class/qx/event/IEventDispatcher.js +8 -4
- package/source/class/qx/event/Manager.js +4 -0
- package/source/class/qx/event/Messaging.js +2 -0
- package/source/class/qx/event/Pool.js +7 -0
- package/source/class/qx/event/Registration.js +33 -55
- package/source/class/qx/event/Timer.js +2 -0
- package/source/class/qx/event/Utils.js +25 -8
- package/source/class/qx/event/dispatch/AbstractBubbling.js +98 -194
- package/source/class/qx/event/dispatch/Direct.js +18 -13
- package/source/class/qx/event/handler/Appear.js +20 -24
- package/source/class/qx/event/handler/Application.js +4 -0
- package/source/class/qx/event/handler/DragDrop.js +182 -385
- package/source/class/qx/event/handler/Element.js +3 -0
- package/source/class/qx/event/handler/Focus.js +36 -30
- package/source/class/qx/event/handler/Input.js +5 -0
- package/source/class/qx/event/handler/Keyboard.js +107 -165
- package/source/class/qx/event/handler/Pointer.js +39 -68
- package/source/class/qx/event/handler/PointerCore.js +7 -25
- package/source/class/qx/event/handler/Window.js +5 -0
- package/source/class/qx/event/type/Event.js +12 -0
- package/source/class/qx/event/type/KeySequence.js +3 -0
- package/source/class/qx/event/type/Native.js +3 -0
- package/source/class/qx/html/Element.js +26 -91
- package/source/class/qx/io/jsonrpc/Client.js +1 -1
- package/source/class/qx/io/jsonrpc/protocol/Error.js +2 -2
- package/source/class/qx/io/jsonrpc/protocol/Parser.js +1 -0
- package/source/class/qx/io/jsonrpc/protocol/Result.js +2 -2
- package/source/class/qx/io/request/Xhr.js +3 -8
- package/source/class/qx/lang/normalize/Array.js +23 -1
- package/source/class/qx/locale/Date.js +520 -113
- package/source/class/qx/locale/LocalizedString.js +3 -0
- package/source/class/qx/locale/Manager.js +14 -3
- package/source/class/qx/locale/Number.js +60 -7
- package/source/class/qx/log/Logger.js +1 -1
- package/source/class/qx/module/Animation.js +2 -0
- package/source/class/qx/module/Attribute.js +2 -0
- package/source/class/qx/module/Css.js +7 -24
- package/source/class/qx/module/Event.js +2 -0
- package/source/class/qx/module/Manipulating.js +2 -0
- package/source/class/qx/module/Traversing.js +2 -0
- package/source/class/qx/test/Bootstrap.js +68 -53
- package/source/class/qx/test/Class.js +310 -2
- package/source/class/qx/test/Mixin.js +192 -42
- package/source/class/qx/test/Promise.js +129 -331
- package/source/class/qx/test/Theme.js +11 -0
- package/source/class/qx/test/bom/Font.js +2 -5
- package/source/class/qx/test/bom/Template.js +1 -1
- package/source/class/qx/test/compiler/ClassFile.js +14 -0
- package/source/class/qx/test/core/Assert.js +12 -0
- package/source/class/qx/test/core/Environment.js +17 -3
- package/source/class/qx/test/core/InheritanceDummy.js +10 -1
- package/source/class/qx/test/core/Object.js +51 -24
- package/source/class/qx/test/core/ObjectId.js +10 -1
- package/source/class/qx/test/core/Property.js +1338 -121
- package/source/class/qx/test/core/PropertyHelper.js +12 -0
- package/source/class/qx/test/core/Target.js +1 -0
- package/source/class/qx/test/core/Validation.js +2 -0
- package/source/class/qx/test/data/DataArray.js +218 -639
- package/source/class/qx/test/data/DataArrayWithChangeBubble.js +45 -215
- package/source/class/qx/test/data/MultiBinding.js +42 -0
- package/source/class/qx/test/data/async/__init__.js +4 -0
- package/source/class/qx/test/data/controller/Form.js +523 -14
- package/source/class/qx/test/data/controller/List.js +94 -426
- package/source/class/qx/test/data/controller/ListReverse.js +5 -20
- package/source/class/qx/test/data/controller/ListWithObjects.js +49 -225
- package/source/class/qx/test/data/controller/Object.js +54 -222
- package/source/class/qx/test/data/controller/Tree.js +195 -934
- package/source/class/qx/test/data/marshal/Json.js +74 -312
- package/source/class/qx/test/data/singlevalue/Array.js +55 -279
- package/source/class/qx/test/data/singlevalue/Async.js +173 -0
- package/source/class/qx/test/data/singlevalue/Deep.js +148 -327
- package/source/class/qx/test/data/singlevalue/Resolve.js +8 -28
- package/source/class/qx/test/data/singlevalue/Simple.js +124 -359
- package/source/class/qx/test/data/store/Json.js +86 -254
- package/source/class/qx/test/data/store/Jsonp.js +9 -29
- package/source/class/qx/test/data/store/Offline.js +2 -8
- package/source/class/qx/test/data/store/Rest.js +3 -3
- package/source/class/qx/test/dev/unit/Requirements.js +26 -10
- package/source/class/qx/test/event/GlobalError.js +2 -2
- package/source/class/qx/test/html/Iframe.js +1 -1
- package/source/class/qx/test/io/graphql/Client.js +2 -0
- package/source/class/qx/test/io/jsonrpc/Protocol.js +4 -2
- package/source/class/qx/test/io/request/MRequest.js +2 -8
- package/source/class/qx/test/io/request/Xhr.js +27 -117
- package/source/class/qx/test/lang/Function.js +6 -25
- package/source/class/qx/test/lang/Type.js +31 -13
- package/source/class/qx/test/locale/Date.js +173 -2
- package/source/class/qx/test/locale/Locale.js +23 -28
- package/source/class/qx/test/locale/Number.js +71 -0
- package/source/class/qx/test/log/Logger.js +7 -1
- package/source/class/qx/test/log/fixture/ClassA.js +2 -5
- package/source/class/qx/test/mobile/basic/Atom.js +3 -3
- package/source/class/qx/test/mobile/container/Scroll.js +4 -4
- package/source/class/qx/test/mobile/form/CheckBox.js +6 -12
- package/source/class/qx/test/performance/Property.js +5 -4
- package/source/class/qx/test/performance/widget/WidgetWithDecorator.js +2 -0
- package/source/class/qx/test/theme/Simple.js +34 -0
- package/source/class/qx/test/{MAppearance.js → theme/SimpleAppearance.js} +5 -4
- package/source/class/qx/test/{MDecoration.js → theme/SimpleDecoration.js} +6 -4
- package/source/class/qx/test/theme/manager/Meta.js +7 -5
- package/source/class/qx/test/tool/__init__.js +3 -0
- package/source/class/qx/test/tool/cli/AbstractValue.js +274 -0
- package/source/class/qx/test/tool/cli/Argument.js +384 -0
- package/source/class/qx/test/tool/cli/Command.js +387 -0
- package/source/class/qx/test/tool/cli/Flag.js +413 -0
- package/source/class/qx/test/tool/cli/__init__.js +3 -0
- package/source/class/qx/test/ui/LayoutTestCase.js +1 -14
- package/source/class/qx/test/ui/basic/Label.js +106 -0
- package/source/class/qx/test/ui/core/Blocker.js +125 -3
- package/source/class/qx/test/ui/form/Form.js +106 -0
- package/source/class/qx/test/ui/form/FormManager.js +6 -5
- package/source/class/qx/test/ui/form/SplitButton.js +1 -1
- package/source/class/qx/test/ui/toolbar/OverflowHandling.js +13 -14
- package/source/class/qx/test/ui/toolbar/ToolBar.js +16 -16
- package/source/class/qx/test/ui/tree/TreeFolder.js +5 -7
- package/source/class/qx/test/ui/tree/virtual/AbstractTreeTest.js +2 -0
- package/source/class/qx/test/ui/tree/virtual/Tree.js +36 -0
- package/source/class/qx/test/util/DateFormat.js +1 -1
- package/source/class/qx/test/util/PropertyUtil.js +0 -36
- package/source/class/qx/theme/classic/Appearance.js +1 -1
- package/source/class/qx/theme/indigo/ColorDark.js +2 -0
- package/source/class/qx/theme/manager/Font.js +6 -1
- package/source/class/qx/theme/manager/Meta.js +2 -1
- package/source/class/qx/theme/simple/Appearance.js +31 -95
- package/source/class/qx/theme/simple/Decoration.js +0 -1
- package/source/class/qx/theme/tangible/Appearance.js +1 -1
- package/source/class/qx/tool/cli/AbstractCliApp.js +72 -0
- package/source/class/qx/tool/cli/AbstractValue.js +186 -0
- package/source/class/qx/tool/cli/Argument.js +155 -0
- package/source/class/qx/tool/cli/Command.js +518 -0
- package/source/class/qx/tool/cli/Flag.js +202 -0
- package/source/class/qx/tool/cli/Parser.js +39 -0
- package/source/class/qx/tool/cli/__init__.js +26 -1
- package/source/class/qx/tool/compiler/Analyser.js +41 -13
- package/source/class/qx/tool/compiler/ClassFile.js +37 -9
- package/source/class/qx/tool/compiler/Console.js +2 -0
- package/source/class/qx/tool/compiler/MetaExtraction.js +53 -33
- package/source/class/qx/tool/compiler/app/Library.js +1 -1
- package/source/class/qx/tool/compiler/app/WebFont.js +2 -0
- package/source/class/qx/tool/compiler/cli/Application.js +58 -0
- package/source/class/qx/tool/{cli/commands → compiler/cli}/Command.js +99 -45
- package/source/class/qx/tool/{cli → compiler/cli}/ConfigDb.js +7 -7
- package/source/class/qx/tool/compiler/cli/ConfigLoader.js +272 -0
- package/source/class/qx/tool/{cli → compiler/cli}/LibraryApplication.js +3 -3
- package/source/class/qx/tool/compiler/cli/RootCommand.js +63 -0
- package/source/class/qx/tool/{cli → compiler/cli}/Watch.js +49 -24
- package/source/class/qx/tool/compiler/cli/__init__.js +3 -0
- package/source/class/qx/tool/{cli → compiler/cli}/api/AbstractApi.js +2 -11
- package/source/class/qx/tool/{cli → compiler/cli}/api/CompilerApi.js +11 -10
- package/source/class/qx/tool/{cli → compiler/cli}/api/LibraryApi.js +13 -4
- package/source/class/qx/tool/{cli → compiler/cli}/api/Test.js +1 -1
- package/source/class/qx/tool/compiler/cli/commands/Add.js +49 -0
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Clean.js +12 -25
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Compile.js +524 -615
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Config.js +22 -20
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Create.js +77 -54
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Deploy.js +45 -60
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Es6ify.js +57 -41
- package/source/class/qx/tool/{cli → compiler/cli}/commands/ExportGlyphs.js +26 -7
- package/source/class/qx/tool/compiler/cli/commands/Lint.js +420 -0
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Migrate.js +40 -20
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Package.js +20 -32
- package/source/class/qx/tool/compiler/cli/commands/Pkg.js +36 -0
- package/source/class/qx/tool/compiler/cli/commands/Prettier.js +278 -0
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Run.js +43 -39
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Serve.js +63 -61
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Test.js +49 -52
- package/source/class/qx/tool/{cli → compiler/cli}/commands/Typescript.js +51 -30
- package/source/class/qx/tool/{cli → compiler/cli}/commands/add/Class.js +54 -31
- package/source/class/qx/tool/{cli → compiler/cli}/commands/add/Script.js +56 -32
- package/source/class/qx/tool/{cli → compiler/cli}/commands/config/Delete.js +19 -13
- package/source/class/qx/tool/{cli → compiler/cli}/commands/config/Get.js +19 -13
- package/source/class/qx/tool/{cli → compiler/cli}/commands/config/List.js +20 -20
- package/source/class/qx/tool/{cli → compiler/cli}/commands/config/Set.js +28 -20
- package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Install.js +140 -75
- package/source/class/qx/tool/{cli → compiler/cli}/commands/package/List.js +119 -80
- package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Publish.js +194 -178
- package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Remove.js +18 -21
- package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Update.js +90 -69
- package/source/class/qx/tool/{cli → compiler/cli}/commands/package/Upgrade.js +67 -54
- package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +2 -1
- package/source/class/qx/tool/compiler/resources/Manager.js +2 -0
- package/source/class/qx/tool/compiler/resources/ScssConverter.js +1 -1
- package/source/class/qx/tool/compiler/resources/ScssFile.js +1 -1
- package/source/class/qx/tool/compiler/targets/Target.js +5 -10
- package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +6 -2
- package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +2 -4
- package/source/class/qx/tool/compiler/targets/meta/BootJs.js +2 -0
- package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +2 -0
- package/source/class/qx/tool/config/Abstract.js +5 -5
- package/source/class/qx/tool/config/Lockfile.js +1 -1
- package/source/class/qx/tool/migration/BaseMigration.js +9 -7
- package/source/class/qx/tool/migration/M6_0_0.js +3 -3
- package/source/class/qx/tool/migration/M8_0_0.js +958 -0
- package/source/class/qx/tool/utils/Debounce.js +0 -1
- package/source/class/qx/tool/utils/Http.js +109 -21
- package/source/class/qx/tool/utils/LogManager.js +7 -0
- package/source/class/qx/tool/utils/Promisify.js +12 -1
- package/source/class/qx/tool/utils/QooxdooVersions.js +193 -0
- package/source/class/qx/tool/utils/Utils.js +8 -5
- package/source/class/qx/tool/utils/Website.js +9 -222
- package/source/class/qx/tool/utils/Zip.js +47 -0
- package/source/class/qx/tool/utils/files/Utils.js +3 -11
- package/source/class/qx/tool/utils/json/Tokenizer.js +5 -0
- package/source/class/qx/ui/basic/Atom.js +8 -8
- package/source/class/qx/ui/core/Blocker.js +17 -4
- package/source/class/qx/ui/core/DragDropCursor.js +2 -1
- package/source/class/qx/ui/core/EventHandler.js +13 -21
- package/source/class/qx/ui/core/LayoutItem.js +8 -31
- package/source/class/qx/ui/core/MExecutable.js +7 -31
- package/source/class/qx/ui/core/MNativeOverflow.js +4 -2
- package/source/class/qx/ui/core/Widget.js +50 -165
- package/source/class/qx/ui/core/scroll/IScrollBar.js +9 -3
- package/source/class/qx/ui/core/scroll/ScrollBar.js +7 -1
- package/source/class/qx/ui/core/scroll/ScrollPane.js +12 -4
- package/source/class/qx/ui/embed/Html.js +6 -2
- package/source/class/qx/ui/form/AbstractField.js +4 -12
- package/source/class/qx/ui/form/Button.js +6 -4
- package/source/class/qx/ui/form/CheckedSelectBox.js +8 -8
- package/source/class/qx/ui/form/FileSelectorButton.js +1 -1
- package/source/class/qx/ui/form/Form.js +3 -0
- package/source/class/qx/ui/form/IListItem.js +3 -1
- package/source/class/qx/ui/form/IRadioItem.js +3 -1
- package/source/class/qx/ui/form/MForm.js +3 -1
- package/source/class/qx/ui/form/Slider.js +6 -2
- package/source/class/qx/ui/form/SplitButton.js +5 -5
- package/source/class/qx/ui/form/TextField.js +1 -2
- package/source/class/qx/ui/form/validation/Manager.js +6 -2
- package/source/class/qx/ui/menubar/Button.js +1 -1
- package/source/class/qx/ui/mobile/basic/Atom.js +5 -5
- package/source/class/qx/ui/mobile/dialog/Menu.js +9 -31
- package/source/class/qx/ui/mobile/dialog/Popup.js +13 -1
- package/source/class/qx/ui/table/pane/FocusIndicator.js +5 -2
- package/source/class/qx/ui/table/pane/Scroller.js +5 -20
- package/source/class/qx/ui/table/selection/Model.js +1 -0
- package/source/class/qx/ui/toolbar/Button.js +1 -1
- package/source/class/qx/ui/toolbar/CheckBox.js +1 -1
- package/source/class/qx/ui/toolbar/FileSelectorButton.js +1 -2
- package/source/class/qx/ui/toolbar/Part.js +2 -2
- package/source/class/qx/ui/toolbar/PartContainer.js +2 -2
- package/source/class/qx/ui/toolbar/ToolBar.js +24 -49
- package/source/class/qx/ui/tree/VirtualTree.js +6 -4
- package/source/class/qx/ui/tree/core/AbstractItem.js +10 -17
- package/source/class/qx/ui/tree/core/IVirtualTree.js +4 -2
- package/source/class/qx/ui/tree/provider/IVirtualTreeProvider.js +20 -10
- package/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +4 -1
- package/source/class/qx/ui/virtual/cell/Cell.js +20 -48
- package/source/class/qx/ui/virtual/cell/WidgetCell.js +2 -4
- package/source/class/qx/ui/virtual/core/Axis.js +4 -0
- package/source/class/qx/ui/virtual/core/ILayer.js +14 -10
- package/source/class/qx/ui/virtual/core/Scroller.js +4 -4
- package/source/class/qx/ui/virtual/layer/WidgetCell.js +4 -0
- package/source/class/qx/ui/virtual/selection/Abstract.js +3 -0
- package/source/class/qx/ui/virtual/selection/MModel.js +1 -1
- package/source/class/qx/ui/window/IDesktop.js +6 -2
- package/source/class/qx/ui/window/IWindowManager.js +10 -4
- package/source/class/qx/ui/window/MDesktop.js +2 -1
- package/source/class/qx/ui/window/Manager.js +1 -1
- package/source/class/qx/ui/window/Window.js +6 -4
- package/source/class/qx/util/OOUtil.js +8 -9
- package/source/class/qx/util/PropertyUtil.js +34 -154
- package/source/class/qx/util/ResponseParser.js +2 -0
- package/source/class/qx/util/Serializer.js +69 -114
- package/source/class/qx/util/format/DateFormat.js +3 -2
- package/source/global.d.ts +4 -0
- package/source/resource/qx/tool/bin/download-assets +0 -2
- package/source/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-node.tmpl.js +1 -0
- package/{lib/resource/qx/tool → source/resource/qx/tool/compiler}/cli/templates/template_vars.js +12 -9
- package/{lib/resource/qx/tool → source/resource/qx/tool/compiler}/schema/Manifest-1-0-0.json +2 -2
- package/source/resource/qx/tool/{schema → compiler/schema}/Manifest-2-0-0.json +2 -2
- package/source/resource/qx/tool/{schema → compiler/schema}/compile-1-0-0.json +15 -3
- package/{lib/resource/qx/tool → source/resource/qx/tool/compiler}/schema/qooxdoo-1-0-0.json +1 -1
- package/source/resource/qx/tool/website/build/404.html +22 -22
- package/source/resource/qx/tool/website/build/about.html +23 -23
- package/source/resource/qx/tool/website/build/assets/common.js +30 -18
- package/source/resource/qx/tool/website/build/assets/custom.css +290 -0
- package/source/resource/qx/tool/website/build/assets/qxWeb.js +28 -0
- package/source/resource/qx/tool/website/build/diagnostics/dependson.html +30 -30
- package/source/resource/qx/tool/website/build/diagnostics/dependson.js +49 -40
- package/source/resource/qx/tool/website/build/diagnostics/requiredby.html +20 -23
- package/source/resource/qx/tool/website/build/diagnostics/requiredby.js +38 -31
- package/source/resource/qx/tool/website/build/index.html +24 -24
- package/source/resource/qx/tool/website/build/scripts/serve.js +63 -65
- package/source/resource/qx/tool/website/partials/footer.html +8 -13
- package/source/resource/qx/tool/website/partials/head.html +9 -7
- package/source/resource/qx/tool/website/partials/header.html +3 -3
- package/source/resource/qx/tool/website/src/assets/common.js +32 -0
- package/source/resource/qx/tool/website/src/assets/custom.css +290 -0
- package/source/resource/qx/tool/website/src/assets/qxWeb.js +28 -0
- package/source/resource/qx/tool/website/src/diagnostics/dependson.js +49 -40
- package/source/resource/qx/tool/website/src/diagnostics/requiredby.js +38 -31
- package/source/resource/qx/tool/website/src/index.html +2 -2
- package/source/resource/qx/tool/website/src/scripts/serve.js +63 -65
- package/lib/resource/qx/tool/bin/build-devtools +0 -13
- package/lib/resource/qx/tool/bin/build-website +0 -15
- package/lib/resource/qx/tool/bin/download-assets +0 -23
- package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +0 -1
- package/lib/resource/qx/tool/website/build/assets/bootstrap.css +0 -7
- package/lib/resource/qx/tool/website/build/assets/bootstrap.min.css +0 -7
- package/lib/resource/qx/tool/website/build/assets/bootstrap.min.css.map +0 -1
- package/lib/resource/qx/tool/website/build/assets/jquery.js +0 -5453
- package/lib/resource/qx/tool/website/build/qooxdoo.css +0 -21
- package/lib/resource/qx/tool/website/sass/qooxdoo.css +0 -3
- package/lib/resource/qx/tool/website/sass/qooxdoo.css.map +0 -1
- package/lib/resource/qx/tool/website/src/assets/bootstrap.css +0 -7
- package/lib/resource/qx/tool/website/src/assets/bootstrap.min.css +0 -7
- package/lib/resource/qx/tool/website/src/assets/bootstrap.min.css.map +0 -1
- package/lib/resource/qx/tool/website/src/assets/jquery.js +0 -5453
- package/source/class/qx/core/Property.js +0 -2100
- package/source/class/qx/tool/cli/Application.js +0 -47
- package/source/class/qx/tool/cli/Cli.js +0 -713
- package/source/class/qx/tool/cli/commands/Add.js +0 -46
- package/source/class/qx/tool/cli/commands/Lint.js +0 -255
- package/source/class/qx/tool/cli/commands/Pkg.js +0 -56
- package/source/class/qx/tool/cli/commands/package/Migrate.js +0 -37
- package/source/class/qx/tool/compiler/app/Cldr.js +0 -725
- package/source/resource/qx/tool/bin/build-devtools +0 -13
- package/source/resource/qx/tool/bin/build-website +0 -15
- package/source/resource/qx/tool/website/build/assets/bootstrap.css +0 -7
- package/source/resource/qx/tool/website/build/assets/bootstrap.min.css +0 -7
- package/source/resource/qx/tool/website/build/assets/bootstrap.min.css.map +0 -1
- package/source/resource/qx/tool/website/build/assets/jquery.js +0 -5453
- package/source/resource/qx/tool/website/build/qooxdoo.css +0 -21
- package/source/resource/qx/tool/website/sass/qooxdoo.scss +0 -31
- package/source/resource/qx/tool/website/src/assets/bootstrap.css +0 -7
- package/source/resource/qx/tool/website/src/assets/bootstrap.min.css +0 -7
- package/source/resource/qx/tool/website/src/assets/bootstrap.min.css.map +0 -1
- package/source/resource/qx/tool/website/src/assets/jquery.js +0 -5453
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/TypeScriptWriter-base_declaration.d.ts +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/default.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/header.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/interface.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/mixin.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/class/singleton.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-browser.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-rhino.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/.gitignore.tmpl +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/Manifest.tmpl.json +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/compile.tmpl.json +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/readme.tmpl.md +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/boot/index.tmpl.html +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/boot/nojs.tmpl.html +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/Application.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/__init__.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/test/DemoTest.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Appearance.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Color.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Decoration.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Font.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Theme.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/app.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/favicon.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/js_256x256.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/test.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/translation/readme.txt +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/.gitignore.tmpl +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/Manifest.tmpl.json +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/compile.tmpl.json +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/readme.tmpl.md +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/boot/index.tmpl.html +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/boot/nojs.tmpl.html +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/Application.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/__init__.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/Login.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/Overview.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/__init__.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/app.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/css/.gitignore.tmpl +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/favicon.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/js_256x256.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/theme/custom/css/custom.css +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/translation/readme.txt +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/.gitignore.tmpl +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/Manifest.tmpl.json +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/compile.tmpl.json +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/readme.tmpl.md +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/Button.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/__init__.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/demo/Application.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/resource/custom/test.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/test/DemoTest.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Appearance.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Color.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Decoration.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Font.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Theme.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/resource/custom/test.png +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/translation/readme.txt +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/.gitignore.tmpl +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/Manifest.tmpl.json +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/compile.tmpl.json +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/readme.tmpl.txt +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/Application.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/__init__.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/test/DemoTest.tmpl.js +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/resource/custom/.gitignore.tmpl +0 -0
- /package/lib/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/translation/readme.txt +0 -0
- /package/lib/resource/qx/tool/{loadsass.js → compiler/loadsass.js} +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/TypeScriptWriter-base_declaration.d.ts +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/default.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/header.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/interface.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/mixin.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/class/singleton.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-browser.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/loader/loader-rhino.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/.gitignore.tmpl +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/Manifest.tmpl.json +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/compile.tmpl.json +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/readme.tmpl.md +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/boot/index.tmpl.html +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/boot/nojs.tmpl.html +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/Application.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/__init__.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/test/DemoTest.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Appearance.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Color.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Decoration.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Font.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/class/custom/theme/Theme.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/app.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/favicon.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/js_256x256.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/resource/custom/test.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/desktop/source/translation/readme.txt +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/.gitignore.tmpl +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/Manifest.tmpl.json +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/compile.tmpl.json +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/readme.tmpl.md +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/boot/index.tmpl.html +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/boot/nojs.tmpl.html +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/Application.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/__init__.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/Login.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/Overview.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/class/custom/page/__init__.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/app.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/css/.gitignore.tmpl +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/favicon.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/resource/custom/js_256x256.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/theme/custom/scss/_styles.scss +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/theme/custom/scss/custom.scss +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/mobile/source/translation/readme.txt +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/.gitignore.tmpl +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/Manifest.tmpl.json +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/compile.tmpl.json +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/readme.tmpl.md +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/Button.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/__init__.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/demo/Application.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/resource/custom/test.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/test/DemoTest.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Appearance.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Color.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Decoration.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Font.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/class/custom/theme/Theme.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/resource/custom/test.png +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/package/source/translation/readme.txt +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/.gitignore.tmpl +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/Manifest.tmpl.json +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/compile.tmpl.json +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/readme.tmpl.txt +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/Application.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/__init__.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/class/custom/test/DemoTest.tmpl.js +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/resource/custom/.gitignore.tmpl +0 -0
- /package/source/resource/qx/tool/{cli → compiler/cli}/templates/skeleton/server/source/translation/readme.txt +0 -0
- /package/source/resource/qx/tool/{loadsass.js → compiler/loadsass.js} +0 -0
|
@@ -231,7 +231,7 @@ qx.Class.define("qx.test.Class", {
|
|
|
231
231
|
this.assertException(
|
|
232
232
|
function () {
|
|
233
233
|
qx.Class.define("qx.MyClass1", {
|
|
234
|
-
include: [qx.
|
|
234
|
+
include: [qx.core.MLogging]
|
|
235
235
|
});
|
|
236
236
|
},
|
|
237
237
|
Error,
|
|
@@ -280,7 +280,7 @@ qx.Class.define("qx.test.Class", {
|
|
|
280
280
|
},
|
|
281
281
|
|
|
282
282
|
testSubClassOf() {
|
|
283
|
-
this.assertTrue(qx.Class.isSubClassOf(qx.
|
|
283
|
+
this.assertTrue(qx.Class.isSubClassOf(qx.data.Array, qx.core.Object));
|
|
284
284
|
},
|
|
285
285
|
|
|
286
286
|
testClassUndefine() {
|
|
@@ -479,6 +479,314 @@ qx.Class.define("qx.test.Class", {
|
|
|
479
479
|
});
|
|
480
480
|
|
|
481
481
|
qx.Class.undefine("qx.DeferFoo");
|
|
482
|
+
},
|
|
483
|
+
|
|
484
|
+
testGetPropertyDescriptorStatic() {
|
|
485
|
+
// Define a test class with properties
|
|
486
|
+
var TestClass = qx.Class.define(null, {
|
|
487
|
+
extend: qx.core.Object,
|
|
488
|
+
properties: {
|
|
489
|
+
myProp: {
|
|
490
|
+
init: "default",
|
|
491
|
+
check: "String",
|
|
492
|
+
nullable: false
|
|
493
|
+
},
|
|
494
|
+
|
|
495
|
+
anotherProp: {
|
|
496
|
+
init: 42,
|
|
497
|
+
check: "Integer"
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
|
|
502
|
+
// Test static method on qx.Class
|
|
503
|
+
var descriptor = qx.Class.getPropertyDescriptor(TestClass, "myProp");
|
|
504
|
+
this.assertNotNull(descriptor, "Property descriptor should not be null");
|
|
505
|
+
this.assertInstance(
|
|
506
|
+
descriptor,
|
|
507
|
+
qx.core.property.Property,
|
|
508
|
+
"Should return Property object"
|
|
509
|
+
);
|
|
510
|
+
|
|
511
|
+
this.assertEquals("myProp", descriptor.getPropertyName(), "Property name should match");
|
|
512
|
+
|
|
513
|
+
var definition = descriptor.getDefinition();
|
|
514
|
+
this.assertEquals(
|
|
515
|
+
"default",
|
|
516
|
+
definition.init,
|
|
517
|
+
"Init value should match"
|
|
518
|
+
);
|
|
519
|
+
|
|
520
|
+
this.assertEquals(
|
|
521
|
+
"String",
|
|
522
|
+
definition.check,
|
|
523
|
+
"Check type should match"
|
|
524
|
+
);
|
|
525
|
+
|
|
526
|
+
// Test with another property
|
|
527
|
+
descriptor = qx.Class.getPropertyDescriptor(TestClass, "anotherProp");
|
|
528
|
+
this.assertNotNull(
|
|
529
|
+
descriptor,
|
|
530
|
+
"Second property descriptor should not be null"
|
|
531
|
+
);
|
|
532
|
+
|
|
533
|
+
this.assertEquals(
|
|
534
|
+
"anotherProp",
|
|
535
|
+
descriptor.getPropertyName(),
|
|
536
|
+
"Second property name should match"
|
|
537
|
+
);
|
|
538
|
+
|
|
539
|
+
// Test with non-existent property
|
|
540
|
+
descriptor = qx.Class.getPropertyDescriptor(TestClass, "nonExistent");
|
|
541
|
+
this.assertNull(
|
|
542
|
+
descriptor,
|
|
543
|
+
"Non-existent property descriptor should be null"
|
|
544
|
+
);
|
|
545
|
+
},
|
|
546
|
+
|
|
547
|
+
testGetPropertyDescriptorInstance() {
|
|
548
|
+
// Define a test class with properties
|
|
549
|
+
var TestClass = qx.Class.define(null, {
|
|
550
|
+
extend: qx.core.Object,
|
|
551
|
+
properties: {
|
|
552
|
+
instanceProp: {
|
|
553
|
+
init: "test",
|
|
554
|
+
check: "String",
|
|
555
|
+
event: "changeInstanceProp"
|
|
556
|
+
},
|
|
557
|
+
|
|
558
|
+
inheritableProp: {
|
|
559
|
+
init: null,
|
|
560
|
+
nullable: true,
|
|
561
|
+
inheritable: true
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
});
|
|
565
|
+
|
|
566
|
+
var instance = new TestClass();
|
|
567
|
+
|
|
568
|
+
// Test accessing via static method with bound instance
|
|
569
|
+
var descriptor = qx.Class.getPropertyDescriptor(TestClass, "instanceProp", instance);
|
|
570
|
+
this.assertNotNull(
|
|
571
|
+
descriptor,
|
|
572
|
+
"Property descriptor should not be null"
|
|
573
|
+
);
|
|
574
|
+
|
|
575
|
+
this.assertInstance(
|
|
576
|
+
descriptor,
|
|
577
|
+
qx.core.property.Property,
|
|
578
|
+
"Should return Property object"
|
|
579
|
+
);
|
|
580
|
+
|
|
581
|
+
this.assertEquals(
|
|
582
|
+
"instanceProp",
|
|
583
|
+
descriptor.getPropertyName(),
|
|
584
|
+
"Property name should match"
|
|
585
|
+
);
|
|
586
|
+
|
|
587
|
+
var definition = descriptor.getDefinition();
|
|
588
|
+
this.assertEquals(
|
|
589
|
+
"test",
|
|
590
|
+
definition.init,
|
|
591
|
+
"Init value should match"
|
|
592
|
+
);
|
|
593
|
+
|
|
594
|
+
this.assertEquals(
|
|
595
|
+
"changeInstanceProp",
|
|
596
|
+
definition.event,
|
|
597
|
+
"Event should match"
|
|
598
|
+
);
|
|
599
|
+
|
|
600
|
+
// Test inheritable property
|
|
601
|
+
descriptor = qx.Class.getPropertyDescriptor(TestClass, "inheritableProp", instance);
|
|
602
|
+
this.assertNotNull(
|
|
603
|
+
descriptor,
|
|
604
|
+
"Inheritable property descriptor should not be null"
|
|
605
|
+
);
|
|
606
|
+
|
|
607
|
+
this.assertTrue(
|
|
608
|
+
descriptor.isInheritable(),
|
|
609
|
+
"Inheritable property should be marked as inheritable"
|
|
610
|
+
);
|
|
611
|
+
|
|
612
|
+
// Test with non-existent property
|
|
613
|
+
descriptor = qx.Class.getPropertyDescriptor(TestClass, "nonExistent", instance);
|
|
614
|
+
this.assertNull(
|
|
615
|
+
descriptor,
|
|
616
|
+
"Non-existent property descriptor should be null"
|
|
617
|
+
);
|
|
618
|
+
|
|
619
|
+
instance.dispose();
|
|
620
|
+
},
|
|
621
|
+
|
|
622
|
+
testGetPropertyDescriptorSetGet() {
|
|
623
|
+
// Define a test class with properties
|
|
624
|
+
var TestClass = qx.Class.define(null, {
|
|
625
|
+
extend: qx.core.Object,
|
|
626
|
+
properties: {
|
|
627
|
+
count: {
|
|
628
|
+
init: 0,
|
|
629
|
+
check: "Integer"
|
|
630
|
+
},
|
|
631
|
+
|
|
632
|
+
label: {
|
|
633
|
+
init: "default",
|
|
634
|
+
check: "String",
|
|
635
|
+
event: "changeLabel"
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
});
|
|
639
|
+
|
|
640
|
+
var instance = new TestClass();
|
|
641
|
+
|
|
642
|
+
// Get property descriptor via static method with bound instance
|
|
643
|
+
var countDescriptor = qx.Class.getPropertyDescriptor(TestClass, "count", instance);
|
|
644
|
+
this.assertNotNull(
|
|
645
|
+
countDescriptor,
|
|
646
|
+
"Property descriptor should not be null"
|
|
647
|
+
);
|
|
648
|
+
|
|
649
|
+
// Test using descriptor's set method directly (bound to instance)
|
|
650
|
+
countDescriptor.set(42);
|
|
651
|
+
this.assertEquals(42, instance.getCount(), "Value set via descriptor should be retrievable via getter");
|
|
652
|
+
|
|
653
|
+
// Test using descriptor's get method directly (bound to instance)
|
|
654
|
+
var value = countDescriptor.get();
|
|
655
|
+
this.assertEquals(42, value, "Value should be retrievable via descriptor's get method");
|
|
656
|
+
|
|
657
|
+
// Test with another property
|
|
658
|
+
var labelDescriptor = qx.Class.getPropertyDescriptor(TestClass, "label", instance);
|
|
659
|
+
|
|
660
|
+
// Set value via descriptor (no .call needed, already bound)
|
|
661
|
+
labelDescriptor.set("test value");
|
|
662
|
+
this.assertEquals(
|
|
663
|
+
"test value",
|
|
664
|
+
labelDescriptor.get(),
|
|
665
|
+
"Property value set and get via descriptor should match"
|
|
666
|
+
);
|
|
667
|
+
|
|
668
|
+
// Verify the value is also accessible via normal getter
|
|
669
|
+
this.assertEquals(
|
|
670
|
+
"test value",
|
|
671
|
+
instance.getLabel(),
|
|
672
|
+
"Value set via descriptor should be accessible via normal getter"
|
|
673
|
+
);
|
|
674
|
+
|
|
675
|
+
// Verify change event was fired
|
|
676
|
+
var eventFired = false;
|
|
677
|
+
instance.addListener("changeLabel", function(e) {
|
|
678
|
+
eventFired = true;
|
|
679
|
+
this.assertEquals("new value", e.getData(), "Event data should match new value");
|
|
680
|
+
}, this);
|
|
681
|
+
|
|
682
|
+
labelDescriptor.set("new value");
|
|
683
|
+
this.assertTrue(eventFired, "Change event should have been fired");
|
|
684
|
+
|
|
685
|
+
instance.dispose();
|
|
686
|
+
},
|
|
687
|
+
|
|
688
|
+
testGetPropertyDescriptorInheritance() {
|
|
689
|
+
// Define a base class with a property
|
|
690
|
+
var BaseClass = qx.Class.define(null, {
|
|
691
|
+
extend: qx.core.Object,
|
|
692
|
+
properties: {
|
|
693
|
+
baseProp: {
|
|
694
|
+
init: "base",
|
|
695
|
+
check: "String"
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
});
|
|
699
|
+
|
|
700
|
+
// Define a derived class with its own property
|
|
701
|
+
var DerivedClass = qx.Class.define(null, {
|
|
702
|
+
extend: BaseClass,
|
|
703
|
+
properties: {
|
|
704
|
+
derivedProp: {
|
|
705
|
+
init: "derived",
|
|
706
|
+
check: "String"
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
});
|
|
710
|
+
|
|
711
|
+
var instance = new DerivedClass();
|
|
712
|
+
|
|
713
|
+
// Test that we can get the base class property from derived instance
|
|
714
|
+
var baseDescriptor = qx.Class.getPropertyDescriptor(DerivedClass, "baseProp", instance);
|
|
715
|
+
this.assertNotNull(
|
|
716
|
+
baseDescriptor,
|
|
717
|
+
"Base property should be accessible from derived instance"
|
|
718
|
+
);
|
|
719
|
+
|
|
720
|
+
this.assertEquals(
|
|
721
|
+
"baseProp",
|
|
722
|
+
baseDescriptor.getPropertyName(),
|
|
723
|
+
"Base property name should match"
|
|
724
|
+
);
|
|
725
|
+
|
|
726
|
+
// Test that we can get the derived class property
|
|
727
|
+
var derivedDescriptor = qx.Class.getPropertyDescriptor(DerivedClass, "derivedProp", instance);
|
|
728
|
+
this.assertNotNull(
|
|
729
|
+
derivedDescriptor,
|
|
730
|
+
"Derived property should be accessible"
|
|
731
|
+
);
|
|
732
|
+
|
|
733
|
+
this.assertEquals(
|
|
734
|
+
"derivedProp",
|
|
735
|
+
derivedDescriptor.getPropertyName(),
|
|
736
|
+
"Derived property name should match"
|
|
737
|
+
);
|
|
738
|
+
|
|
739
|
+
// Test static method with inheritance
|
|
740
|
+
var staticBaseDescriptor = qx.Class.getPropertyDescriptor(
|
|
741
|
+
DerivedClass,
|
|
742
|
+
"baseProp"
|
|
743
|
+
);
|
|
744
|
+
|
|
745
|
+
this.assertNotNull(
|
|
746
|
+
staticBaseDescriptor,
|
|
747
|
+
"Base property should be accessible via static method on derived class"
|
|
748
|
+
);
|
|
749
|
+
|
|
750
|
+
instance.dispose();
|
|
751
|
+
},
|
|
752
|
+
|
|
753
|
+
testGetPropertyDescriptorStaticWithCall() {
|
|
754
|
+
// Test that static method without instance parameter works with .call()
|
|
755
|
+
var TestClass = qx.Class.define(null, {
|
|
756
|
+
extend: qx.core.Object,
|
|
757
|
+
properties: {
|
|
758
|
+
value: {
|
|
759
|
+
init: 0,
|
|
760
|
+
check: "Integer"
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
});
|
|
764
|
+
|
|
765
|
+
var instance = new TestClass();
|
|
766
|
+
|
|
767
|
+
// Get descriptor via static method WITHOUT instance parameter
|
|
768
|
+
var descriptor = qx.Class.getPropertyDescriptor(TestClass, "value");
|
|
769
|
+
this.assertNotNull(descriptor, "Descriptor should not be null");
|
|
770
|
+
|
|
771
|
+
// Should work with .call() syntax
|
|
772
|
+
descriptor.set.call(instance, 100);
|
|
773
|
+
this.assertEquals(100, instance.getValue(), "Value should be set via .call()");
|
|
774
|
+
|
|
775
|
+
var value = descriptor.get.call(instance);
|
|
776
|
+
this.assertEquals(100, value, "Value should be retrievable via .call()");
|
|
777
|
+
|
|
778
|
+
// Get descriptor via static method WITH instance parameter
|
|
779
|
+
var boundDescriptor = qx.Class.getPropertyDescriptor(TestClass, "value", instance);
|
|
780
|
+
this.assertNotNull(boundDescriptor, "Bound descriptor should not be null");
|
|
781
|
+
|
|
782
|
+
// Should work with direct calls (no .call needed)
|
|
783
|
+
boundDescriptor.set(200);
|
|
784
|
+
this.assertEquals(200, instance.getValue(), "Value should be set directly");
|
|
785
|
+
|
|
786
|
+
var boundValue = boundDescriptor.get();
|
|
787
|
+
this.assertEquals(200, boundValue, "Value should be retrievable directly");
|
|
788
|
+
|
|
789
|
+
instance.dispose();
|
|
482
790
|
}
|
|
483
791
|
}
|
|
484
792
|
});
|
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
/**
|
|
20
20
|
* @ignore(qx.ExtendUseLog1, qx.Mix, qx.MLogger, qx.MMix1, qx.MMix1.foo)
|
|
21
21
|
* @ignore(qx.MMix2, qx.MPatch, qx.Patch1, qx.Patch2, qx.UseLog1, qx.UseLog2)
|
|
22
|
-
* @ignore(qx.UseLog3)
|
|
22
|
+
* @ignore(qx.UseLog3, qx.MOverridable, qx.MOverridable2, qx.OverrideClass1)
|
|
23
|
+
* @ignore(qx.OverrideClass2, qx.OverrideClass3, qx.OverrideClass4)
|
|
24
|
+
* @ignore(qx.PatchIncludeTest)
|
|
23
25
|
*/
|
|
24
26
|
|
|
25
27
|
qx.Class.define("qx.test.Mixin", {
|
|
@@ -66,6 +68,7 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
66
68
|
this.assertEquals("red", mix.getColor());
|
|
67
69
|
|
|
68
70
|
if (this.isDebugOn()) {
|
|
71
|
+
// Test that including multiple mixins with conflicting members still throws an error
|
|
69
72
|
this.assertException(
|
|
70
73
|
function () {
|
|
71
74
|
qx.Class.define("qx.Mix1", {
|
|
@@ -78,26 +81,25 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
78
81
|
"Overwriting member",
|
|
79
82
|
"t1"
|
|
80
83
|
);
|
|
84
|
+
}
|
|
81
85
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
// Test that class members can override mixin members (issue #9142)
|
|
87
|
+
// This should now be allowed
|
|
88
|
+
qx.Class.define("qx.Mix2", {
|
|
89
|
+
extend: Object,
|
|
90
|
+
include: qx.MMix1,
|
|
91
|
+
construct() {},
|
|
88
92
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
);
|
|
100
|
-
}
|
|
93
|
+
members: {
|
|
94
|
+
bar() {
|
|
95
|
+
return "bar from class";
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Verify that the class's version of bar() is used
|
|
101
|
+
var mix2 = new qx.Mix2();
|
|
102
|
+
this.assertEquals("bar from class", mix2.bar());
|
|
101
103
|
|
|
102
104
|
// this is allowed
|
|
103
105
|
qx.Class.define("qx.Mix3", {
|
|
@@ -123,7 +125,7 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
123
125
|
});
|
|
124
126
|
},
|
|
125
127
|
Error,
|
|
126
|
-
"
|
|
128
|
+
"Overwriting member or property",
|
|
127
129
|
"t3"
|
|
128
130
|
);
|
|
129
131
|
}
|
|
@@ -147,7 +149,8 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
147
149
|
qx.Class.include(qx.UseLog1, qx.MLogger);
|
|
148
150
|
this.assertEquals("Juhu", new qx.UseLog1().log("Juhu"));
|
|
149
151
|
|
|
150
|
-
//
|
|
152
|
+
// With issue #9142 fix: Class members can override mixin members
|
|
153
|
+
// When including a mixin after class definition, the class's version is preserved
|
|
151
154
|
qx.Class.define("qx.UseLog2", {
|
|
152
155
|
extend: Object,
|
|
153
156
|
construct() {},
|
|
@@ -159,15 +162,9 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
159
162
|
}
|
|
160
163
|
});
|
|
161
164
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
qx.Class.include(qx.UseLog2, qx.MLogger);
|
|
166
|
-
},
|
|
167
|
-
Error,
|
|
168
|
-
"Overwriting member"
|
|
169
|
-
);
|
|
170
|
-
}
|
|
165
|
+
// This should now be allowed - the class's log() is preserved
|
|
166
|
+
qx.Class.include(qx.UseLog2, qx.MLogger);
|
|
167
|
+
this.assertEquals("foo", new qx.UseLog2().log("Juhu"));
|
|
171
168
|
|
|
172
169
|
// allowed to overwrite!
|
|
173
170
|
qx.Class.define("qx.UseLog3", {
|
|
@@ -190,6 +187,47 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
190
187
|
this.assertEquals("Juhu", new qx.ExtendUseLog1().log("Juhu"));
|
|
191
188
|
},
|
|
192
189
|
|
|
190
|
+
/**
|
|
191
|
+
* Tests that super in a Mixin calls the affected class' super method
|
|
192
|
+
*/
|
|
193
|
+
testIncludeSuper() {
|
|
194
|
+
qx.Class.define("qx.A", {
|
|
195
|
+
extend: qx.core.Object,
|
|
196
|
+
|
|
197
|
+
members: {
|
|
198
|
+
sayJuhu() {
|
|
199
|
+
return "Juhu";
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
qx.Mixin.define("qx.MB", {
|
|
205
|
+
members: {
|
|
206
|
+
sayJuhu() {
|
|
207
|
+
return super.sayJuhu() + " from Mixin";
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
qx.Class.define("qx.B", {
|
|
213
|
+
include: [qx.MB],
|
|
214
|
+
extend: qx.A,
|
|
215
|
+
|
|
216
|
+
members: {
|
|
217
|
+
foo() {
|
|
218
|
+
return "bar";
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
let b = new qx.B();
|
|
224
|
+
this.assertEquals("Juhu from Mixin", b.sayJuhu());
|
|
225
|
+
this.assertEquals("bar", b.foo());
|
|
226
|
+
|
|
227
|
+
qx.Class.undefine("qx.A");
|
|
228
|
+
qx.Class.undefine("qx.B");
|
|
229
|
+
},
|
|
230
|
+
|
|
193
231
|
testPatchOverwritten() {
|
|
194
232
|
qx.Class.define("qx.Patch1", {
|
|
195
233
|
extend: qx.core.Object,
|
|
@@ -239,16 +277,27 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
239
277
|
}
|
|
240
278
|
});
|
|
241
279
|
|
|
280
|
+
// With issue #9142 fix: qx.Class.include no longer throws an error
|
|
281
|
+
// when class members conflict with mixin members. The class's version is preserved.
|
|
242
282
|
if (this.isDebugOn()) {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
283
|
+
// Create a temporary class to test include behavior
|
|
284
|
+
qx.Class.define("qx.PatchIncludeTest", {
|
|
285
|
+
extend: qx.core.Object,
|
|
286
|
+
members: {
|
|
287
|
+
sayJuhu() {
|
|
288
|
+
return "Original";
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
// This should not throw an error
|
|
294
|
+
qx.Class.include(qx.PatchIncludeTest, qx.MPatch);
|
|
295
|
+
var oTest = new qx.PatchIncludeTest();
|
|
296
|
+
this.assertEquals("Original", oTest.sayJuhu()); // Class's version is preserved
|
|
297
|
+
oTest.dispose();
|
|
250
298
|
}
|
|
251
299
|
|
|
300
|
+
// qx.Class.patch still overwrites as before
|
|
252
301
|
qx.Class.patch(qx.Patch1, qx.MPatch);
|
|
253
302
|
qx.Class.patch(qx.Patch2, qx.MPatch);
|
|
254
303
|
|
|
@@ -477,6 +526,8 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
477
526
|
var o = new qx.PatchDerived();
|
|
478
527
|
this.assertEquals("Juhu Derived Mixin", o.sayJuhu());
|
|
479
528
|
o.dispose();
|
|
529
|
+
qx.Class.undefine("qx.Patch");
|
|
530
|
+
qx.Class.undefine("qx.PatchDerived");
|
|
480
531
|
},
|
|
481
532
|
|
|
482
533
|
testPatchOverwrittenDerivedInBaseClass() {
|
|
@@ -515,6 +566,8 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
515
566
|
var o = new qx.PatchDerived();
|
|
516
567
|
this.assertEquals("Juhu Mixin Derived", o.sayJuhu());
|
|
517
568
|
o.dispose();
|
|
569
|
+
qx.Class.undefine("qx.Patch");
|
|
570
|
+
qx.Class.undefine("qx.PatchDerived");
|
|
518
571
|
},
|
|
519
572
|
|
|
520
573
|
testPatchMultiOverwrittenDerived() {
|
|
@@ -608,8 +661,10 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
608
661
|
qx.Class.patch(qx.D, qx.MDB);
|
|
609
662
|
|
|
610
663
|
var o = new qx.D();
|
|
611
|
-
|
|
664
|
+
var ret = o.sayJuhu();
|
|
665
|
+
this.assertEquals("Double MA MB", ret);
|
|
612
666
|
o.dispose();
|
|
667
|
+
qx.Class.undefine("qx.D");
|
|
613
668
|
},
|
|
614
669
|
|
|
615
670
|
testDoubleMixinWithSuperStruct() {
|
|
@@ -865,11 +920,106 @@ qx.Class.define("qx.test.Mixin", {
|
|
|
865
920
|
qx.Class.patch(qx.G5, qx.M2G5);
|
|
866
921
|
|
|
867
922
|
const g5 = new qx.G5();
|
|
868
|
-
this.assertEquals(
|
|
869
|
-
"G1 M1G1 M2G1 M3G1 M4G1 G2 M1G2 M2G2 M4G2 M5G2 G3 M2G3 M3G3 G4 M1G4 M3G4 G5 M1G5",
|
|
870
|
-
g5.sayJuhu()
|
|
871
|
-
);
|
|
923
|
+
this.assertEquals("G1 M1G1 M2G1 M3G1 M4G1 G2 M1G2 M2G2 M4G2 M5G2 G3 M2G3 M3G3 G4 M1G4 M3G4 G5 M1G5", g5.sayJuhu());
|
|
872
924
|
g5.dispose();
|
|
925
|
+
},
|
|
926
|
+
|
|
927
|
+
/**
|
|
928
|
+
* Test for issue #9142: Classes should be able to override mixin methods
|
|
929
|
+
* This test verifies that a class can override a method defined in a mixin
|
|
930
|
+
* and can optionally call the mixin's implementation using super
|
|
931
|
+
*/
|
|
932
|
+
testMixinMethodOverride() {
|
|
933
|
+
// Define a mixin with a method
|
|
934
|
+
qx.Mixin.define("qx.MOverridable", {
|
|
935
|
+
members: {
|
|
936
|
+
greet() {
|
|
937
|
+
return "Hello from Mixin";
|
|
938
|
+
},
|
|
939
|
+
|
|
940
|
+
calculate(a, b) {
|
|
941
|
+
return a + b;
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
});
|
|
945
|
+
|
|
946
|
+
// Test 1: Class overrides mixin method without calling super
|
|
947
|
+
qx.Class.define("qx.OverrideClass1", {
|
|
948
|
+
extend: qx.core.Object,
|
|
949
|
+
include: qx.MOverridable,
|
|
950
|
+
|
|
951
|
+
members: {
|
|
952
|
+
greet() {
|
|
953
|
+
return "Hello from Class";
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
});
|
|
957
|
+
|
|
958
|
+
var obj1 = new qx.OverrideClass1();
|
|
959
|
+
this.assertEquals("Hello from Class", obj1.greet());
|
|
960
|
+
obj1.dispose();
|
|
961
|
+
|
|
962
|
+
// Test 2: Class completely overrides mixin methods with different implementations
|
|
963
|
+
// Note: Calling the mixin's version from the class override is not currently
|
|
964
|
+
// supported by qooxdoo's base call mechanism (this.base looks in superclass, not mixins)
|
|
965
|
+
qx.Class.define("qx.OverrideClass2", {
|
|
966
|
+
extend: qx.core.Object,
|
|
967
|
+
include: qx.MOverridable,
|
|
968
|
+
|
|
969
|
+
members: {
|
|
970
|
+
greet() {
|
|
971
|
+
return "Completely overridden by Class";
|
|
972
|
+
},
|
|
973
|
+
|
|
974
|
+
calculate(a, b) {
|
|
975
|
+
return (a + b) * 10; // Different calculation
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
});
|
|
979
|
+
|
|
980
|
+
var obj2 = new qx.OverrideClass2();
|
|
981
|
+
this.assertEquals("Completely overridden by Class", obj2.greet());
|
|
982
|
+
this.assertEquals(50, obj2.calculate(2, 3)); // (2 + 3) * 10 = 50
|
|
983
|
+
obj2.dispose();
|
|
984
|
+
|
|
985
|
+
// Test 3: Derived class inherits the overridden method
|
|
986
|
+
qx.Class.define("qx.OverrideClass3", {
|
|
987
|
+
extend: qx.OverrideClass1
|
|
988
|
+
});
|
|
989
|
+
|
|
990
|
+
var obj3 = new qx.OverrideClass3();
|
|
991
|
+
this.assertEquals("Hello from Class", obj3.greet());
|
|
992
|
+
obj3.dispose();
|
|
993
|
+
|
|
994
|
+
// Test 4: Class overrides mixin method after mixin is included
|
|
995
|
+
qx.Mixin.define("qx.MOverridable2", {
|
|
996
|
+
members: {
|
|
997
|
+
getValue() {
|
|
998
|
+
return "Value from Mixin2";
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
});
|
|
1002
|
+
|
|
1003
|
+
qx.Class.define("qx.OverrideClass4", {
|
|
1004
|
+
extend: qx.core.Object,
|
|
1005
|
+
include: qx.MOverridable2,
|
|
1006
|
+
|
|
1007
|
+
members: {
|
|
1008
|
+
getValue() {
|
|
1009
|
+
return "Overridden by class";
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
});
|
|
1013
|
+
|
|
1014
|
+
var obj4 = new qx.OverrideClass4();
|
|
1015
|
+
this.assertEquals("Overridden by class", obj4.getValue());
|
|
1016
|
+
obj4.dispose();
|
|
1017
|
+
|
|
1018
|
+
// Cleanup
|
|
1019
|
+
qx.Class.undefine("qx.OverrideClass1");
|
|
1020
|
+
qx.Class.undefine("qx.OverrideClass2");
|
|
1021
|
+
qx.Class.undefine("qx.OverrideClass3");
|
|
1022
|
+
qx.Class.undefine("qx.OverrideClass4");
|
|
873
1023
|
}
|
|
874
1024
|
}
|
|
875
1025
|
});
|