@qooxdoo/framework 7.0.0-beta.1 → 7.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1599) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/Manifest.json +2 -2
  3. package/README.md +9 -3
  4. package/bin/deploy/qx +0 -0
  5. package/lib/compiler/compile-info.json +45 -44
  6. package/lib/compiler/index.js +6600 -11001
  7. package/lib/resource/qx/tool/cli/templates/loader/loader-node.tmpl.js +3 -1
  8. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css +1 -1
  9. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
  10. package/lib/resource/qx/tool/cli/templates/template_vars.js +1 -1
  11. package/lib/resource/qx/tool/loadsass.js +16 -21
  12. package/lib/resource/qx/tool/schema/Manifest-1-0-0.json +1 -2
  13. package/lib/resource/qx/tool/schema/Manifest-2-0-0.json +1 -2
  14. package/lib/resource/qx/tool/schema/compile-1-0-0.json +16 -20
  15. package/lib/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
  16. package/lib/resource/qx/tool/website/build/assets/buttons.js +391 -1
  17. package/lib/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
  18. package/lib/resource/qx/tool/website/build/assets/jquery.js +5452 -3
  19. package/lib/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
  20. package/lib/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
  21. package/lib/resource/qx/tool/website/build/scripts/serve.js +87 -66
  22. package/lib/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
  23. package/lib/resource/qx/tool/website/src/assets/buttons.js +391 -1
  24. package/lib/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
  25. package/lib/resource/qx/tool/website/src/assets/jquery.js +5452 -3
  26. package/lib/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
  27. package/lib/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
  28. package/lib/resource/qx/tool/website/src/scripts/serve.js +87 -66
  29. package/npm-shrinkwrap.json +7293 -0
  30. package/package.json +29 -14
  31. package/source/class/q.js +4 -2
  32. package/source/class/qx/Annotation.js +48 -57
  33. package/source/class/qx/Bootstrap.js +206 -207
  34. package/source/class/qx/Class.js +602 -504
  35. package/source/class/qx/Interface.js +169 -137
  36. package/source/class/qx/Mixin.js +162 -120
  37. package/source/class/qx/Part.js +48 -77
  38. package/source/class/qx/Promise.js +5891 -4655
  39. package/source/class/qx/Theme.js +200 -134
  40. package/source/class/qx/__init__.js +8 -8
  41. package/source/class/qx/application/AbstractGui.js +20 -32
  42. package/source/class/qx/application/Basic.js +9 -18
  43. package/source/class/qx/application/IApplication.js +6 -10
  44. package/source/class/qx/application/Inline.js +4 -7
  45. package/source/class/qx/application/Mobile.js +22 -45
  46. package/source/class/qx/application/Native.js +8 -19
  47. package/source/class/qx/application/Routing.js +88 -114
  48. package/source/class/qx/application/Standalone.js +4 -9
  49. package/source/class/qx/application/__init__.js +1 -1
  50. package/source/class/qx/bom/AnimationFrame.js +26 -25
  51. package/source/class/qx/bom/Blocker.js +92 -100
  52. package/source/class/qx/bom/Cookie.js +18 -22
  53. package/source/class/qx/bom/Document.js +24 -31
  54. package/source/class/qx/bom/Element.js +65 -51
  55. package/source/class/qx/bom/Event.js +68 -78
  56. package/source/class/qx/bom/FileReader.js +110 -115
  57. package/source/class/qx/bom/Font.js +82 -122
  58. package/source/class/qx/bom/FullScreen.js +32 -41
  59. package/source/class/qx/bom/GeoLocation.js +39 -44
  60. package/source/class/qx/bom/HashHistory.js +58 -64
  61. package/source/class/qx/bom/History.js +61 -89
  62. package/source/class/qx/bom/Html.js +75 -71
  63. package/source/class/qx/bom/IdleCallback.js +20 -23
  64. package/source/class/qx/bom/Iframe.js +37 -69
  65. package/source/class/qx/bom/IframeHistory.js +83 -88
  66. package/source/class/qx/bom/Input.js +50 -66
  67. package/source/class/qx/bom/Label.js +65 -86
  68. package/source/class/qx/bom/Lifecycle.js +7 -9
  69. package/source/class/qx/bom/MediaQuery.js +324 -307
  70. package/source/class/qx/bom/NativeHistory.js +51 -46
  71. package/source/class/qx/bom/Notification.js +41 -47
  72. package/source/class/qx/bom/PageVisibility.js +19 -25
  73. package/source/class/qx/bom/Range.js +20 -30
  74. package/source/class/qx/bom/Selection.js +163 -172
  75. package/source/class/qx/bom/Selector.js +2401 -2181
  76. package/source/class/qx/bom/Shortcut.js +103 -129
  77. package/source/class/qx/bom/Storage.js +9 -8
  78. package/source/class/qx/bom/String.js +285 -290
  79. package/source/class/qx/bom/Style.js +30 -31
  80. package/source/class/qx/bom/Stylesheet.js +36 -60
  81. package/source/class/qx/bom/Template.js +730 -657
  82. package/source/class/qx/bom/Viewport.js +40 -46
  83. package/source/class/qx/bom/Vml.js +43 -28
  84. package/source/class/qx/bom/WebWorker.js +61 -50
  85. package/source/class/qx/bom/Window.js +88 -105
  86. package/source/class/qx/bom/__init__.js +11 -11
  87. package/source/class/qx/bom/client/Browser.js +45 -47
  88. package/source/class/qx/bom/client/Css.js +85 -85
  89. package/source/class/qx/bom/client/CssAnimation.js +41 -49
  90. package/source/class/qx/bom/client/CssTransform.js +21 -29
  91. package/source/class/qx/bom/client/CssTransition.js +9 -12
  92. package/source/class/qx/bom/client/Device.js +45 -45
  93. package/source/class/qx/bom/client/EcmaScript.js +153 -96
  94. package/source/class/qx/bom/client/Engine.js +38 -35
  95. package/source/class/qx/bom/client/Event.js +75 -63
  96. package/source/class/qx/bom/client/Html.js +97 -97
  97. package/source/class/qx/bom/client/Idle.js +4 -6
  98. package/source/class/qx/bom/client/Locale.js +15 -15
  99. package/source/class/qx/bom/client/OperatingSystem.js +89 -106
  100. package/source/class/qx/bom/client/Pdfjs.js +1364 -1067
  101. package/source/class/qx/bom/client/PhoneGap.js +6 -9
  102. package/source/class/qx/bom/client/Plugin.js +93 -97
  103. package/source/class/qx/bom/client/Runtime.js +14 -12
  104. package/source/class/qx/bom/client/Scroll.js +20 -16
  105. package/source/class/qx/bom/client/Stylesheet.js +44 -32
  106. package/source/class/qx/bom/client/Transport.js +38 -41
  107. package/source/class/qx/bom/client/Xml.js +39 -41
  108. package/source/class/qx/bom/client/__init__.js +4 -4
  109. package/source/class/qx/bom/element/Animation.js +15 -12
  110. package/source/class/qx/bom/element/AnimationCss.js +95 -64
  111. package/source/class/qx/bom/element/AnimationHandle.js +22 -29
  112. package/source/class/qx/bom/element/AnimationJs.js +94 -71
  113. package/source/class/qx/bom/element/Attribute.js +119 -134
  114. package/source/class/qx/bom/element/Background.js +35 -35
  115. package/source/class/qx/bom/element/BoxSizing.js +43 -44
  116. package/source/class/qx/bom/element/Class.js +50 -72
  117. package/source/class/qx/bom/element/Clip.js +36 -60
  118. package/source/class/qx/bom/element/Cursor.js +13 -20
  119. package/source/class/qx/bom/element/Dataset.js +33 -31
  120. package/source/class/qx/bom/element/Decoration.js +178 -168
  121. package/source/class/qx/bom/element/Dimension.js +78 -60
  122. package/source/class/qx/bom/element/Location.js +87 -94
  123. package/source/class/qx/bom/element/Opacity.js +42 -44
  124. package/source/class/qx/bom/element/Scroll.js +78 -88
  125. package/source/class/qx/bom/element/Style.js +61 -101
  126. package/source/class/qx/bom/element/Transform.js +38 -56
  127. package/source/class/qx/bom/element/__init__.js +4 -4
  128. package/source/class/qx/bom/media/Abstract.js +136 -143
  129. package/source/class/qx/bom/media/Audio.js +7 -12
  130. package/source/class/qx/bom/media/Video.js +15 -27
  131. package/source/class/qx/bom/request/IRequest.js +18 -21
  132. package/source/class/qx/bom/request/Jsonp.js +34 -39
  133. package/source/class/qx/bom/request/Script.js +94 -90
  134. package/source/class/qx/bom/request/SimpleXhr.js +111 -79
  135. package/source/class/qx/bom/request/Xhr.js +196 -143
  136. package/source/class/qx/bom/request/__init__.js +1 -1
  137. package/source/class/qx/bom/rest/Resource.js +269 -203
  138. package/source/class/qx/bom/storage/Memory.js +18 -29
  139. package/source/class/qx/bom/storage/UserData.js +28 -35
  140. package/source/class/qx/bom/storage/Web.js +19 -30
  141. package/source/class/qx/bom/webfonts/Manager.js +199 -130
  142. package/source/class/qx/bom/webfonts/Validator.js +84 -118
  143. package/source/class/qx/bom/webfonts/WebFont.js +24 -28
  144. package/source/class/qx/bom/webfonts/__init__.js +1 -1
  145. package/source/class/qx/core/Aspect.js +15 -22
  146. package/source/class/qx/core/Assert.js +391 -333
  147. package/source/class/qx/core/AssertionError.js +6 -15
  148. package/source/class/qx/core/BaseInit.js +25 -28
  149. package/source/class/qx/core/Environment.js +72 -86
  150. package/source/class/qx/core/GlobalError.js +12 -20
  151. package/source/class/qx/core/IDisposable.js +6 -9
  152. package/source/class/qx/core/Id.js +25 -15
  153. package/source/class/qx/core/Init.js +20 -20
  154. package/source/class/qx/core/MAssert.js +54 -97
  155. package/source/class/qx/core/MBindTo.js +10 -14
  156. package/source/class/qx/core/MEvent.js +76 -65
  157. package/source/class/qx/core/MLogging.js +9 -18
  158. package/source/class/qx/core/MObjectId.js +104 -65
  159. package/source/class/qx/core/MProperty.js +18 -34
  160. package/source/class/qx/core/Object.js +93 -122
  161. package/source/class/qx/core/ObjectRegistry.js +58 -81
  162. package/source/class/qx/core/Property.js +974 -780
  163. package/source/class/qx/core/ValidationError.js +3 -4
  164. package/source/class/qx/core/WindowError.js +13 -24
  165. package/source/class/qx/core/Wrapper.js +8 -9
  166. package/source/class/qx/data/Array.js +178 -191
  167. package/source/class/qx/data/Conversion.js +11 -18
  168. package/source/class/qx/data/IListData.js +11 -20
  169. package/source/class/qx/data/MBinding.js +31 -26
  170. package/source/class/qx/data/SingleValueBinding.js +491 -225
  171. package/source/class/qx/data/__init__.js +1 -1
  172. package/source/class/qx/data/controller/CheckedList.js +82 -54
  173. package/source/class/qx/data/controller/Form.js +81 -69
  174. package/source/class/qx/data/controller/IControllerDelegate.js +7 -12
  175. package/source/class/qx/data/controller/ISelection.js +6 -10
  176. package/source/class/qx/data/controller/List.js +151 -167
  177. package/source/class/qx/data/controller/MSelection.js +53 -72
  178. package/source/class/qx/data/controller/Object.js +106 -77
  179. package/source/class/qx/data/controller/Tree.js +164 -142
  180. package/source/class/qx/data/controller/__init__.js +1 -1
  181. package/source/class/qx/data/controller/website/List.js +34 -43
  182. package/source/class/qx/data/controller/website/__init__.js +2 -2
  183. package/source/class/qx/data/marshal/IMarshaler.js +4 -7
  184. package/source/class/qx/data/marshal/IMarshalerDelegate.js +10 -18
  185. package/source/class/qx/data/marshal/Json.js +112 -85
  186. package/source/class/qx/data/marshal/MEventBubbling.js +44 -42
  187. package/source/class/qx/data/marshal/__init__.js +1 -1
  188. package/source/class/qx/data/store/IStoreDelegate.js +6 -9
  189. package/source/class/qx/data/store/Json.js +71 -85
  190. package/source/class/qx/data/store/Jsonp.js +19 -25
  191. package/source/class/qx/data/store/Offline.js +21 -29
  192. package/source/class/qx/data/store/Rest.js +25 -23
  193. package/source/class/qx/data/store/__init__.js +1 -1
  194. package/source/class/qx/dev/Debug.js +105 -124
  195. package/source/class/qx/dev/FakeServer.js +68 -65
  196. package/source/class/qx/dev/ObjectSummary.js +33 -39
  197. package/source/class/qx/dev/Profile.js +62 -63
  198. package/source/class/qx/dev/StackTrace.js +64 -70
  199. package/source/class/qx/dev/Tokenizer.js +114 -126
  200. package/source/class/qx/dev/unit/AbstractTestSuite.js +17 -31
  201. package/source/class/qx/dev/unit/AsyncWrapper.js +22 -26
  202. package/source/class/qx/dev/unit/JsUnitTestResult.js +9 -21
  203. package/source/class/qx/dev/unit/MMeasure.js +46 -37
  204. package/source/class/qx/dev/unit/MMock.js +236 -240
  205. package/source/class/qx/dev/unit/MRequirements.js +53 -79
  206. package/source/class/qx/dev/unit/MRequirementsBasic.js +24 -19
  207. package/source/class/qx/dev/unit/MTestLoader.js +52 -57
  208. package/source/class/qx/dev/unit/MeasurementResult.js +18 -22
  209. package/source/class/qx/dev/unit/RequirementError.js +8 -17
  210. package/source/class/qx/dev/unit/Sinon.js +18826 -4613
  211. package/source/class/qx/dev/unit/TestCase.js +40 -51
  212. package/source/class/qx/dev/unit/TestClass.js +22 -23
  213. package/source/class/qx/dev/unit/TestFunction.js +28 -48
  214. package/source/class/qx/dev/unit/TestLoader.js +11 -14
  215. package/source/class/qx/dev/unit/TestLoaderBasic.js +3 -6
  216. package/source/class/qx/dev/unit/TestLoaderInline.js +8 -14
  217. package/source/class/qx/dev/unit/TestLoaderMobile.js +8 -14
  218. package/source/class/qx/dev/unit/TestLoaderNative.js +7 -13
  219. package/source/class/qx/dev/unit/TestResult.js +140 -118
  220. package/source/class/qx/dev/unit/TestSuite.js +46 -55
  221. package/source/class/qx/dom/Element.js +29 -74
  222. package/source/class/qx/dom/Hierarchy.js +60 -95
  223. package/source/class/qx/dom/Node.js +54 -81
  224. package/source/class/qx/dom/__init__.js +9 -9
  225. package/source/class/qx/event/AcceleratingTimer.js +28 -46
  226. package/source/class/qx/event/Emitter.js +54 -49
  227. package/source/class/qx/event/GlobalError.js +22 -38
  228. package/source/class/qx/event/IEventDispatcher.js +4 -9
  229. package/source/class/qx/event/IEventHandler.js +7 -13
  230. package/source/class/qx/event/Idle.js +32 -47
  231. package/source/class/qx/event/Manager.js +222 -237
  232. package/source/class/qx/event/Messaging.js +55 -48
  233. package/source/class/qx/event/Pool.js +5 -8
  234. package/source/class/qx/event/Registration.js +128 -118
  235. package/source/class/qx/event/Timer.js +50 -96
  236. package/source/class/qx/event/Utils.js +41 -28
  237. package/source/class/qx/event/dispatch/AbstractBubbling.js +133 -93
  238. package/source/class/qx/event/dispatch/Direct.js +46 -51
  239. package/source/class/qx/event/dispatch/DomBubbling.js +8 -15
  240. package/source/class/qx/event/dispatch/MouseCapture.js +74 -91
  241. package/source/class/qx/event/handler/Appear.js +40 -77
  242. package/source/class/qx/event/handler/Application.js +100 -126
  243. package/source/class/qx/event/handler/Capture.js +15 -37
  244. package/source/class/qx/event/handler/DragDrop.js +342 -228
  245. package/source/class/qx/event/handler/Element.js +45 -72
  246. package/source/class/qx/event/handler/ElementResize.js +35 -70
  247. package/source/class/qx/event/handler/Focus.js +908 -637
  248. package/source/class/qx/event/handler/Gesture.js +144 -93
  249. package/source/class/qx/event/handler/GestureCore.js +214 -163
  250. package/source/class/qx/event/handler/Iframe.js +21 -35
  251. package/source/class/qx/event/handler/Input.js +332 -209
  252. package/source/class/qx/event/handler/Keyboard.js +325 -270
  253. package/source/class/qx/event/handler/Mouse.js +212 -173
  254. package/source/class/qx/event/handler/Object.js +13 -31
  255. package/source/class/qx/event/handler/Offline.js +52 -67
  256. package/source/class/qx/event/handler/Orientation.js +56 -62
  257. package/source/class/qx/event/handler/OrientationCore.js +33 -43
  258. package/source/class/qx/event/handler/Pointer.js +84 -72
  259. package/source/class/qx/event/handler/PointerCore.js +183 -105
  260. package/source/class/qx/event/handler/Touch.js +43 -59
  261. package/source/class/qx/event/handler/TouchCore.js +159 -120
  262. package/source/class/qx/event/handler/Transition.js +91 -100
  263. package/source/class/qx/event/handler/UserAction.js +18 -42
  264. package/source/class/qx/event/handler/Video.js +12 -12
  265. package/source/class/qx/event/handler/Window.js +53 -69
  266. package/source/class/qx/event/message/Bus.js +109 -128
  267. package/source/class/qx/event/message/Message.js +14 -29
  268. package/source/class/qx/event/type/Data.js +11 -22
  269. package/source/class/qx/event/type/Dom.js +37 -52
  270. package/source/class/qx/event/type/Drag.js +37 -56
  271. package/source/class/qx/event/type/Event.js +80 -104
  272. package/source/class/qx/event/type/Focus.js +5 -8
  273. package/source/class/qx/event/type/GeoPosition.js +32 -41
  274. package/source/class/qx/event/type/KeyInput.js +9 -19
  275. package/source/class/qx/event/type/KeySequence.js +10 -21
  276. package/source/class/qx/event/type/Mouse.js +69 -72
  277. package/source/class/qx/event/type/MouseWheel.js +5 -9
  278. package/source/class/qx/event/type/Native.js +16 -27
  279. package/source/class/qx/event/type/Orientation.js +18 -30
  280. package/source/class/qx/event/type/Pinch.js +21 -27
  281. package/source/class/qx/event/type/Pointer.js +38 -41
  282. package/source/class/qx/event/type/Rest.js +7 -10
  283. package/source/class/qx/event/type/Roll.js +49 -58
  284. package/source/class/qx/event/type/Rotate.js +21 -27
  285. package/source/class/qx/event/type/Swipe.js +75 -86
  286. package/source/class/qx/event/type/Tap.js +2 -4
  287. package/source/class/qx/event/type/Touch.js +262 -286
  288. package/source/class/qx/event/type/Track.js +23 -28
  289. package/source/class/qx/event/type/dom/Custom.js +24 -20
  290. package/source/class/qx/event/type/dom/Pointer.js +86 -60
  291. package/source/class/qx/event/util/Keyboard.js +94 -106
  292. package/source/class/qx/html/Blocker.js +17 -18
  293. package/source/class/qx/html/Canvas.js +13 -29
  294. package/source/class/qx/html/Element.js +372 -497
  295. package/source/class/qx/html/Factory.js +31 -26
  296. package/source/class/qx/html/Iframe.js +35 -69
  297. package/source/class/qx/html/Image.js +43 -55
  298. package/source/class/qx/html/Input.js +44 -57
  299. package/source/class/qx/html/Jsx.js +49 -41
  300. package/source/class/qx/html/JsxRef.js +3 -5
  301. package/source/class/qx/html/Label.js +20 -32
  302. package/source/class/qx/html/Node.js +362 -422
  303. package/source/class/qx/html/Root.js +7 -16
  304. package/source/class/qx/html/Text.js +34 -27
  305. package/source/class/qx/io/ImageLoader.js +66 -90
  306. package/source/class/qx/io/PartLoader.js +17 -30
  307. package/source/class/qx/io/__init__.js +5 -3
  308. package/source/class/qx/io/exception/Cancel.js +33 -0
  309. package/source/class/qx/io/exception/Exception.js +37 -0
  310. package/source/class/qx/{tool/compiler/Version.js → io/exception/Protocol.js} +12 -7
  311. package/source/class/qx/io/exception/Transport.js +38 -0
  312. package/source/class/qx/io/exception/__init__.js +4 -0
  313. package/source/class/qx/io/graphql/Client.js +122 -0
  314. package/source/class/qx/io/graphql/__init__.js +9 -0
  315. package/source/class/qx/io/graphql/protocol/Message.js +65 -0
  316. package/source/class/qx/io/graphql/protocol/Request.js +93 -0
  317. package/source/class/qx/io/graphql/protocol/Response.js +63 -0
  318. package/source/class/qx/io/graphql/protocol/__init__.js +6 -0
  319. package/source/class/qx/io/jsonrpc/Client.js +355 -0
  320. package/source/class/qx/io/jsonrpc/__init__.js +15 -0
  321. package/source/class/qx/io/jsonrpc/protocol/Batch.js +103 -0
  322. package/source/class/qx/io/jsonrpc/protocol/Error.js +65 -0
  323. package/source/class/qx/io/jsonrpc/protocol/Message.js +48 -0
  324. package/source/class/qx/io/jsonrpc/protocol/Notification.js +47 -0
  325. package/source/class/qx/io/jsonrpc/protocol/Parser.js +105 -0
  326. package/source/class/qx/io/jsonrpc/protocol/Request.js +94 -0
  327. package/source/class/qx/io/jsonrpc/protocol/Result.js +49 -0
  328. package/source/class/qx/io/jsonrpc/protocol/__init__.js +5 -0
  329. package/source/class/qx/io/part/ClosurePart.js +16 -35
  330. package/source/class/qx/io/part/Package.js +35 -63
  331. package/source/class/qx/io/part/Part.js +29 -53
  332. package/source/class/qx/io/part/__init__.js +4 -4
  333. package/source/class/qx/io/request/AbstractRequest.js +268 -201
  334. package/source/class/qx/io/request/Jsonp.js +16 -19
  335. package/source/class/qx/io/request/Xhr.js +38 -37
  336. package/source/class/qx/io/request/__init__.js +1 -1
  337. package/source/class/qx/io/request/authentication/Basic.js +7 -13
  338. package/source/class/qx/io/request/authentication/Bearer.js +46 -0
  339. package/source/class/qx/io/request/authentication/IAuthentication.js +3 -6
  340. package/source/class/qx/io/request/authentication/__init__.js +1 -1
  341. package/source/class/qx/io/rest/Resource.js +122 -90
  342. package/source/class/qx/io/transport/AbstractClient.js +121 -0
  343. package/source/class/qx/io/transport/AbstractTransport.js +40 -0
  344. package/source/class/qx/io/transport/Fetch.js +98 -0
  345. package/source/class/qx/io/transport/ITransport.js +42 -0
  346. package/source/class/qx/io/transport/PostMessage.js +54 -0
  347. package/source/class/qx/io/transport/Websocket.js +97 -0
  348. package/source/class/qx/io/transport/Xhr.js +138 -0
  349. package/source/class/qx/io/transport/__init__.js +18 -0
  350. package/source/class/qx/lang/Array.js +133 -170
  351. package/source/class/qx/lang/Function.js +101 -104
  352. package/source/class/qx/lang/Json.js +1041 -774
  353. package/source/class/qx/lang/Number.js +11 -16
  354. package/source/class/qx/lang/Object.js +129 -100
  355. package/source/class/qx/lang/String.js +86 -94
  356. package/source/class/qx/lang/Type.js +44 -65
  357. package/source/class/qx/lang/normalize/Array.js +39 -49
  358. package/source/class/qx/lang/normalize/Date.js +50 -32
  359. package/source/class/qx/lang/normalize/Error.js +4 -7
  360. package/source/class/qx/lang/normalize/Function.js +11 -19
  361. package/source/class/qx/lang/normalize/Number.js +3 -5
  362. package/source/class/qx/lang/normalize/Object.js +17 -18
  363. package/source/class/qx/lang/normalize/String.js +39 -40
  364. package/source/class/qx/locale/Date.js +175 -178
  365. package/source/class/qx/locale/Key.js +13 -11
  366. package/source/class/qx/locale/LocalizedString.js +18 -15
  367. package/source/class/qx/locale/MTranslation.js +22 -23
  368. package/source/class/qx/locale/Manager.js +62 -100
  369. package/source/class/qx/locale/Number.js +20 -12
  370. package/source/class/qx/locale/String.js +26 -15
  371. package/source/class/qx/log/Logger.js +128 -180
  372. package/source/class/qx/log/__init__.js +3 -3
  373. package/source/class/qx/log/appender/Console.js +100 -111
  374. package/source/class/qx/log/appender/Element.js +25 -39
  375. package/source/class/qx/log/appender/Formatter.js +117 -66
  376. package/source/class/qx/log/appender/Native.js +4 -10
  377. package/source/class/qx/log/appender/NodeConsole.js +20 -28
  378. package/source/class/qx/log/appender/PhoneGap.js +5 -13
  379. package/source/class/qx/log/appender/RhinoConsole.js +12 -23
  380. package/source/class/qx/log/appender/RhinoFile.js +19 -26
  381. package/source/class/qx/log/appender/RingBuffer.js +10 -19
  382. package/source/class/qx/log/appender/Util.js +11 -9
  383. package/source/class/qx/module/Animation.js +73 -63
  384. package/source/class/qx/module/Attribute.js +27 -46
  385. package/source/class/qx/module/Blocker.js +33 -41
  386. package/source/class/qx/module/Cookie.js +6 -10
  387. package/source/class/qx/module/Css.js +82 -97
  388. package/source/class/qx/module/Dataset.js +12 -24
  389. package/source/class/qx/module/Environment.js +4 -6
  390. package/source/class/qx/module/Event.js +124 -127
  391. package/source/class/qx/module/Io.js +5 -9
  392. package/source/class/qx/module/Manipulating.js +98 -117
  393. package/source/class/qx/module/MatchMedia.js +50 -24
  394. package/source/class/qx/module/Messaging.js +6 -10
  395. package/source/class/qx/module/Placeholder.js +54 -44
  396. package/source/class/qx/module/Placement.js +33 -33
  397. package/source/class/qx/module/Rest.js +3 -4
  398. package/source/class/qx/module/Storage.js +34 -48
  399. package/source/class/qx/module/Template.js +6 -9
  400. package/source/class/qx/module/TextSelection.js +13 -21
  401. package/source/class/qx/module/Transform.js +28 -45
  402. package/source/class/qx/module/Traversing.js +160 -154
  403. package/source/class/qx/module/__init__.js +1 -1
  404. package/source/class/qx/module/dev/FakeServer.js +19 -25
  405. package/source/class/qx/module/event/GestureHandler.js +25 -13
  406. package/source/class/qx/module/event/Keyboard.js +42 -31
  407. package/source/class/qx/module/event/Mouse.js +48 -46
  408. package/source/class/qx/module/event/Native.js +18 -30
  409. package/source/class/qx/module/event/Orientation.js +11 -18
  410. package/source/class/qx/module/event/OrientationHandler.js +19 -17
  411. package/source/class/qx/module/event/Pinch.js +13 -14
  412. package/source/class/qx/module/event/Pointer.js +22 -22
  413. package/source/class/qx/module/event/PointerHandler.js +14 -11
  414. package/source/class/qx/module/event/Rotate.js +13 -14
  415. package/source/class/qx/module/event/Swipe.js +18 -24
  416. package/source/class/qx/module/event/Tap.js +25 -25
  417. package/source/class/qx/module/event/Touch.js +4 -7
  418. package/source/class/qx/module/event/TouchHandler.js +16 -16
  419. package/source/class/qx/module/event/Track.js +13 -14
  420. package/source/class/qx/module/util/Array.js +30 -41
  421. package/source/class/qx/module/util/Function.js +1 -2
  422. package/source/class/qx/module/util/Object.js +8 -11
  423. package/source/class/qx/module/util/String.js +10 -18
  424. package/source/class/qx/module/util/Type.js +3 -4
  425. package/source/class/qx/test/Annotation.js +195 -89
  426. package/source/class/qx/test/Bootstrap.js +98 -124
  427. package/source/class/qx/test/Browser.js +8 -11
  428. package/source/class/qx/test/Class.js +164 -198
  429. package/source/class/qx/test/Dom.js +10 -28
  430. package/source/class/qx/test/EditDistance.js +16 -16
  431. package/source/class/qx/test/Interface.js +380 -383
  432. package/source/class/qx/test/MAppearance.js +10 -14
  433. package/source/class/qx/test/MDecoration.js +1 -3
  434. package/source/class/qx/test/Mixin.js +449 -173
  435. package/source/class/qx/test/Promise.js +422 -333
  436. package/source/class/qx/test/Theme.js +204 -179
  437. package/source/class/qx/test/Xml.js +155 -84
  438. package/source/class/qx/test/application/Routing.js +45 -44
  439. package/source/class/qx/test/bom/AnimationFrame.js +23 -21
  440. package/source/class/qx/test/bom/Attribute.js +66 -47
  441. package/source/class/qx/test/bom/Basic.js +52 -27
  442. package/source/class/qx/test/bom/Blocker.js +100 -70
  443. package/source/class/qx/test/bom/Class.js +19 -34
  444. package/source/class/qx/test/bom/Cookie.js +49 -28
  445. package/source/class/qx/test/bom/Dataset.js +12 -24
  446. package/source/class/qx/test/bom/Element.js +55 -47
  447. package/source/class/qx/test/bom/Event.js +68 -45
  448. package/source/class/qx/test/bom/FileReader.js +6 -12
  449. package/source/class/qx/test/bom/Font.js +256 -118
  450. package/source/class/qx/test/bom/GeoLocation.js +82 -64
  451. package/source/class/qx/test/bom/History.js +63 -84
  452. package/source/class/qx/test/bom/IdleCallback.js +51 -38
  453. package/source/class/qx/test/bom/Iframe.js +14 -18
  454. package/source/class/qx/test/bom/Label.js +74 -105
  455. package/source/class/qx/test/bom/Location.js +70 -99
  456. package/source/class/qx/test/bom/PageVisibility.js +13 -16
  457. package/source/class/qx/test/bom/Selector.js +16 -16
  458. package/source/class/qx/test/bom/String.js +19 -15
  459. package/source/class/qx/test/bom/Stylesheet.js +39 -48
  460. package/source/class/qx/test/bom/Template.js +49 -57
  461. package/source/class/qx/test/bom/Viewport.js +7 -11
  462. package/source/class/qx/test/bom/WebWorker.js +49 -37
  463. package/source/class/qx/test/bom/Window.js +6 -12
  464. package/source/class/qx/test/bom/client/Css.js +26 -19
  465. package/source/class/qx/test/bom/client/Device.js +29 -18
  466. package/source/class/qx/test/bom/client/OperatingSystem.js +17 -20
  467. package/source/class/qx/test/bom/client/Pdfjs.js +15 -13
  468. package/source/class/qx/test/bom/element/AnimationHandle.js +20 -17
  469. package/source/class/qx/test/bom/element/AnimationJs.js +48 -31
  470. package/source/class/qx/test/bom/element/Background.js +93 -46
  471. package/source/class/qx/test/bom/element/BoxSizing.js +66 -61
  472. package/source/class/qx/test/bom/element/Class.js +33 -58
  473. package/source/class/qx/test/bom/element/Dimension.js +58 -37
  474. package/source/class/qx/test/bom/element/Style.js +87 -83
  475. package/source/class/qx/test/bom/element/Transform.js +209 -86
  476. package/source/class/qx/test/bom/media/Audio.js +18 -14
  477. package/source/class/qx/test/bom/media/MediaTestCase.js +61 -66
  478. package/source/class/qx/test/bom/media/Video.js +39 -28
  479. package/source/class/qx/test/bom/request/Jsonp.js +60 -57
  480. package/source/class/qx/test/bom/request/Script.js +150 -138
  481. package/source/class/qx/test/bom/request/SimpleXhr.js +206 -134
  482. package/source/class/qx/test/bom/request/Xhr.js +179 -132
  483. package/source/class/qx/test/bom/request/XhrWithRemote.js +206 -160
  484. package/source/class/qx/test/bom/rest/Resource.js +345 -281
  485. package/source/class/qx/test/bom/rest/ResourceWithRemote.js +74 -57
  486. package/source/class/qx/test/bom/storage/Local.js +3 -4
  487. package/source/class/qx/test/bom/storage/Session.js +3 -4
  488. package/source/class/qx/test/bom/storage/WebStorageTestCase.js +28 -27
  489. package/source/class/qx/test/bom/webfonts/Abstract.js +8 -10
  490. package/source/class/qx/test/bom/webfonts/Manager.js +127 -80
  491. package/source/class/qx/test/bom/webfonts/Validator.js +36 -30
  492. package/source/class/qx/test/compiler/ClassFile.js +29 -11
  493. package/source/class/qx/test/compiler/jsdoc/Parser.js +122 -96
  494. package/source/class/qx/test/core/Assert.js +151 -86
  495. package/source/class/qx/test/core/Environment.js +162 -123
  496. package/source/class/qx/test/core/EventEmitterDummy.js +7 -8
  497. package/source/class/qx/test/core/InheritanceDummy.js +23 -33
  498. package/source/class/qx/test/core/MemoryManagement.js +13 -5
  499. package/source/class/qx/test/core/Object.js +106 -112
  500. package/source/class/qx/test/core/ObjectId.js +7 -6
  501. package/source/class/qx/test/core/Property.js +483 -387
  502. package/source/class/qx/test/core/PropertyHelper.js +49 -64
  503. package/source/class/qx/test/core/Target.js +9 -13
  504. package/source/class/qx/test/core/Validation.js +409 -136
  505. package/source/class/qx/test/data/DataArray.js +1059 -394
  506. package/source/class/qx/test/data/DataArrayWithChangeBubble.js +315 -172
  507. package/source/class/qx/test/data/__init__.js +4 -4
  508. package/source/class/qx/test/data/controller/Form.js +141 -99
  509. package/source/class/qx/test/data/controller/FormWithArrayAndModel.js +66 -51
  510. package/source/class/qx/test/data/controller/List.js +644 -336
  511. package/source/class/qx/test/data/controller/ListReverse.js +64 -63
  512. package/source/class/qx/test/data/controller/ListWithObjects.js +305 -149
  513. package/source/class/qx/test/data/controller/Object.js +252 -94
  514. package/source/class/qx/test/data/controller/Tree.js +1219 -383
  515. package/source/class/qx/test/data/controller/__init__.js +4 -4
  516. package/source/class/qx/test/data/marshal/Json.js +832 -447
  517. package/source/class/qx/test/data/marshal/__init__.js +4 -4
  518. package/source/class/qx/test/data/singlevalue/Array.js +383 -144
  519. package/source/class/qx/test/data/singlevalue/Deep.js +361 -175
  520. package/source/class/qx/test/data/singlevalue/Resolve.js +51 -29
  521. package/source/class/qx/test/data/singlevalue/Simple.js +530 -208
  522. package/source/class/qx/test/data/singlevalue/TextFieldDummy.js +32 -28
  523. package/source/class/qx/test/data/singlevalue/__init__.js +4 -4
  524. package/source/class/qx/test/data/store/Json.js +574 -313
  525. package/source/class/qx/test/data/store/Jsonp.js +103 -77
  526. package/source/class/qx/test/data/store/Offline.js +127 -110
  527. package/source/class/qx/test/data/store/Rest.js +58 -52
  528. package/source/class/qx/test/data/store/RestWithRemote.js +36 -30
  529. package/source/class/qx/test/data/store/__init__.js +4 -4
  530. package/source/class/qx/test/dev/Debug.js +9 -13
  531. package/source/class/qx/test/dev/StackTrace.js +51 -42
  532. package/source/class/qx/test/dev/unit/Requirements.js +36 -49
  533. package/source/class/qx/test/dev/unit/Sinon.js +85 -73
  534. package/source/class/qx/test/dev/unit/TestCase.js +12 -17
  535. package/source/class/qx/test/dom/Element.js +17 -12
  536. package/source/class/qx/test/dom/Hierarchy.js +53 -38
  537. package/source/class/qx/test/dom/Node.js +97 -43
  538. package/source/class/qx/test/event/Bubbling.js +258 -88
  539. package/source/class/qx/test/event/Emitter.js +38 -39
  540. package/source/class/qx/test/event/GlobalError.js +59 -87
  541. package/source/class/qx/test/event/GlobalEventMonitors.js +22 -25
  542. package/source/class/qx/test/event/Messaging.js +66 -49
  543. package/source/class/qx/test/event/MockBubblingHandler.js +10 -15
  544. package/source/class/qx/test/event/MockHandler.js +14 -33
  545. package/source/class/qx/test/event/Registration.js +38 -32
  546. package/source/class/qx/test/event/Timer.js +61 -39
  547. package/source/class/qx/test/event/Utils.js +164 -123
  548. package/source/class/qx/test/event/dispatch/MouseCapture.js +61 -51
  549. package/source/class/qx/test/event/dispatch/MouseEventOnDocument.js +22 -23
  550. package/source/class/qx/test/event/dispatch/TestingHandler.js +8 -10
  551. package/source/class/qx/test/event/dispatch/TestingWindow.js +9 -13
  552. package/source/class/qx/test/event/dispatch/__init__.js +4 -4
  553. package/source/class/qx/test/event/handler/Offline.js +7 -8
  554. package/source/class/qx/test/event/message/Bus.js +112 -72
  555. package/source/class/qx/test/event/message/__init__.js +4 -4
  556. package/source/class/qx/test/event/type/Dom.js +12 -11
  557. package/source/class/qx/test/event/type/Event.js +7 -16
  558. package/source/class/qx/test/event/type/Mouse.js +12 -11
  559. package/source/class/qx/test/event/type/Native.js +12 -11
  560. package/source/class/qx/test/event/type/__init__.js +4 -4
  561. package/source/class/qx/test/event/util/Keyboard.js +4 -3
  562. package/source/class/qx/test/html/Element.js +538 -239
  563. package/source/class/qx/test/html/Iframe.js +85 -73
  564. package/source/class/qx/test/html/jsx/TestJsx.js +15 -4
  565. package/source/class/qx/test/html/jsx/TestJsxBrowser.js +37 -19
  566. package/source/class/qx/test/html/jsx/TestWidget.js +26 -26
  567. package/source/class/qx/test/io/ImageLoader.js +256 -160
  568. package/source/class/qx/test/io/MAssert.js +46 -0
  569. package/source/class/qx/test/io/MRemoteTest.js +9 -11
  570. package/source/class/qx/test/io/__init__.js +4 -4
  571. package/source/class/qx/test/io/graphql/Client.js +190 -0
  572. package/source/class/qx/test/io/graphql/ClientFetch.js +34 -0
  573. package/source/class/qx/test/io/graphql/Request.js +41 -0
  574. package/source/class/qx/test/io/jsonrpc/Client.js +333 -0
  575. package/source/class/qx/test/io/jsonrpc/Protocol.js +108 -0
  576. package/source/class/qx/test/io/request/Jsonp.js +23 -20
  577. package/source/class/qx/test/io/request/JsonpWithRemote.js +25 -22
  578. package/source/class/qx/test/io/request/MRequest.js +137 -114
  579. package/source/class/qx/test/io/request/Xhr.js +367 -209
  580. package/source/class/qx/test/io/request/XhrWithRemote.js +133 -100
  581. package/source/class/qx/test/io/rest/Resource.js +325 -270
  582. package/source/class/qx/test/io/rest/ResourceWithRemote.js +75 -58
  583. package/source/class/qx/test/io/transport/PostMessage.js +56 -0
  584. package/source/class/qx/test/io/transport/Websocket.js +64 -0
  585. package/source/class/qx/test/lang/Array.js +79 -105
  586. package/source/class/qx/test/lang/Function.js +64 -53
  587. package/source/class/qx/test/lang/Json.js +51 -79
  588. package/source/class/qx/test/lang/Number.js +4 -6
  589. package/source/class/qx/test/lang/Object.js +143 -133
  590. package/source/class/qx/test/lang/String.js +151 -95
  591. package/source/class/qx/test/lang/Type.js +34 -44
  592. package/source/class/qx/test/lang/Webkit.js +8 -13
  593. package/source/class/qx/test/lang/normalize/Array.js +121 -68
  594. package/source/class/qx/test/lang/normalize/Date.js +232 -49
  595. package/source/class/qx/test/lang/normalize/Error.js +5 -8
  596. package/source/class/qx/test/lang/normalize/Function.js +7 -13
  597. package/source/class/qx/test/lang/normalize/Object.js +22 -29
  598. package/source/class/qx/test/lang/normalize/String.js +19 -28
  599. package/source/class/qx/test/locale/Date.js +91 -43
  600. package/source/class/qx/test/locale/Locale.js +52 -32
  601. package/source/class/qx/test/locale/LocalizedString.js +12 -12
  602. package/source/class/qx/test/log/DeprecationMethodOverriding.js +52 -31
  603. package/source/class/qx/test/log/Filters.js +6 -3
  604. package/source/class/qx/test/log/Formatter.js +13 -7
  605. package/source/class/qx/test/log/Logger.js +19 -29
  606. package/source/class/qx/test/log/RingBuffer.js +14 -25
  607. package/source/class/qx/test/log/__init__.js +4 -4
  608. package/source/class/qx/test/log/fixture/ClassA.js +22 -22
  609. package/source/class/qx/test/log/fixture/ClassB1.js +7 -9
  610. package/source/class/qx/test/log/fixture/ClassB2.js +5 -7
  611. package/source/class/qx/test/log/fixture/ClassC1.js +5 -7
  612. package/source/class/qx/test/log/fixture/ClassC2.js +7 -9
  613. package/source/class/qx/test/mobile/LocaleSwitch.js +29 -36
  614. package/source/class/qx/test/mobile/MobileTestCase.js +39 -49
  615. package/source/class/qx/test/mobile/basic/Atom.js +129 -53
  616. package/source/class/qx/test/mobile/basic/Image.js +41 -31
  617. package/source/class/qx/test/mobile/basic/Label.js +6 -10
  618. package/source/class/qx/test/mobile/container/Carousel.js +41 -45
  619. package/source/class/qx/test/mobile/container/Composite.js +48 -65
  620. package/source/class/qx/test/mobile/container/Drawer.js +42 -29
  621. package/source/class/qx/test/mobile/container/Navigation.js +14 -20
  622. package/source/class/qx/test/mobile/container/Scroll.js +23 -19
  623. package/source/class/qx/test/mobile/core/Widget.js +150 -86
  624. package/source/class/qx/test/mobile/dialog/Menu.js +47 -26
  625. package/source/class/qx/test/mobile/dialog/Popup.js +30 -19
  626. package/source/class/qx/test/mobile/embed/Html.js +5 -8
  627. package/source/class/qx/test/mobile/form/Button.js +15 -13
  628. package/source/class/qx/test/mobile/form/CheckBox.js +21 -17
  629. package/source/class/qx/test/mobile/form/Form.js +37 -24
  630. package/source/class/qx/test/mobile/form/Group.js +5 -9
  631. package/source/class/qx/test/mobile/form/Label.js +11 -13
  632. package/source/class/qx/test/mobile/form/NumberField.js +49 -45
  633. package/source/class/qx/test/mobile/form/RadioButton.js +30 -19
  634. package/source/class/qx/test/mobile/form/SelectBox.js +39 -25
  635. package/source/class/qx/test/mobile/form/SingleRenderer.js +31 -27
  636. package/source/class/qx/test/mobile/form/Slider.js +55 -35
  637. package/source/class/qx/test/mobile/form/TextArea.js +34 -24
  638. package/source/class/qx/test/mobile/form/TextField.js +34 -24
  639. package/source/class/qx/test/mobile/form/ToggleButton.js +10 -14
  640. package/source/class/qx/test/mobile/layout/Card.js +21 -17
  641. package/source/class/qx/test/mobile/layout/HBox.js +25 -20
  642. package/source/class/qx/test/mobile/layout/VBox.js +25 -21
  643. package/source/class/qx/test/mobile/list/List.js +114 -83
  644. package/source/class/qx/test/mobile/navigationbar/NavigationBar.js +5 -9
  645. package/source/class/qx/test/mobile/page/Manager.js +7 -13
  646. package/source/class/qx/test/mobile/page/NavigationPage.js +7 -17
  647. package/source/class/qx/test/mobile/page/Page.js +101 -68
  648. package/source/class/qx/test/mobile/tabbar/TabBar.js +11 -21
  649. package/source/class/qx/test/mobile/toolbar/Toolbar.js +16 -16
  650. package/source/class/qx/test/performance/BaseCall.js +31 -36
  651. package/source/class/qx/test/performance/Event.js +60 -53
  652. package/source/class/qx/test/performance/Object.js +16 -22
  653. package/source/class/qx/test/performance/Property.js +20 -22
  654. package/source/class/qx/test/performance/data/Marshaling.js +25 -30
  655. package/source/class/qx/test/performance/decorator/AbstractDecorator.js +22 -34
  656. package/source/class/qx/test/performance/decorator/Background.js +4 -6
  657. package/source/class/qx/test/performance/decorator/BackgroundScale.js +6 -8
  658. package/source/class/qx/test/performance/decorator/Single.js +4 -6
  659. package/source/class/qx/test/performance/element/Element.js +50 -67
  660. package/source/class/qx/test/performance/widget/AbstractWidget.js +31 -44
  661. package/source/class/qx/test/performance/widget/Button.js +5 -7
  662. package/source/class/qx/test/performance/widget/Label.js +5 -7
  663. package/source/class/qx/test/performance/widget/RichLabel.js +6 -8
  664. package/source/class/qx/test/performance/widget/Widget.js +5 -7
  665. package/source/class/qx/test/performance/widget/WidgetWithDecorator.js +7 -9
  666. package/source/class/qx/test/performance/widget/WidgetWithSingle.js +9 -11
  667. package/source/class/qx/test/renderer/Color.js +22 -49
  668. package/source/class/qx/test/testclasses/BaseClassBoth.js +11 -8
  669. package/source/class/qx/test/testclasses/BaseClassIncluded.js +5 -6
  670. package/source/class/qx/test/testclasses/BaseClassPatched.js +15 -8
  671. package/source/class/qx/test/testclasses/DerivedClassBoth.js +7 -7
  672. package/source/class/qx/test/testclasses/DerivedClassIncluded.js +7 -7
  673. package/source/class/qx/test/testclasses/DerivedClassPatched.js +7 -7
  674. package/source/class/qx/test/testclasses/MMixinOne.js +4 -4
  675. package/source/class/qx/test/testclasses/MMixinTwo.js +2 -2
  676. package/source/class/qx/test/testclasses/RootClass.js +8 -8
  677. package/source/class/qx/test/theme/__init__.js +4 -4
  678. package/source/class/qx/test/theme/manager/Color.js +52 -66
  679. package/source/class/qx/test/theme/manager/Decoration.js +177 -154
  680. package/source/class/qx/test/theme/manager/Font.js +68 -39
  681. package/source/class/qx/test/theme/manager/Icon.js +46 -43
  682. package/source/class/qx/test/theme/manager/Meta.js +121 -110
  683. package/source/class/qx/test/theme/manager/__init__.js +4 -4
  684. package/source/class/qx/test/theme/manager/mock/Appearance.js +17 -23
  685. package/source/class/qx/test/theme/manager/mock/Color.js +7 -9
  686. package/source/class/qx/test/theme/manager/mock/Decoration.js +7 -10
  687. package/source/class/qx/test/theme/manager/mock/Font.js +6 -10
  688. package/source/class/qx/test/theme/simple/Appearance.js +268 -210
  689. package/source/class/qx/test/tool/utils/Utils.js +10 -8
  690. package/source/class/qx/test/toolchain/PrivateOptimization.js +20 -13
  691. package/source/class/qx/test/toolchain/TestRunner.js +12 -12
  692. package/source/class/qx/test/toolchain/VariantOptimization.js +37 -26
  693. package/source/class/qx/test/toolchain/__init__.js +4 -4
  694. package/source/class/qx/test/type/Array.js +8 -12
  695. package/source/class/qx/test/type/BaseArray.js +58 -78
  696. package/source/class/qx/test/type/BaseString.js +30 -61
  697. package/source/class/qx/test/type/__init__.js +4 -4
  698. package/source/class/qx/test/ui/BackgroundColor.js +20 -21
  699. package/source/class/qx/test/ui/ChildrenHandling.js +136 -81
  700. package/source/class/qx/test/ui/Destroy.js +310 -248
  701. package/source/class/qx/test/ui/Focus.js +40 -87
  702. package/source/class/qx/test/ui/Insets.js +14 -18
  703. package/source/class/qx/test/ui/LayoutTestCase.js +99 -92
  704. package/source/class/qx/test/ui/LocaleSwitch.js +37 -41
  705. package/source/class/qx/test/ui/RadioItems.js +11 -22
  706. package/source/class/qx/test/ui/Widget.js +13 -17
  707. package/source/class/qx/test/ui/Window.js +26 -39
  708. package/source/class/qx/test/ui/basic/Atom.js +37 -25
  709. package/source/class/qx/test/ui/basic/Image.js +179 -138
  710. package/source/class/qx/test/ui/basic/Label.js +147 -65
  711. package/source/class/qx/test/ui/basic/__init__.js +4 -4
  712. package/source/class/qx/test/ui/command/Command.js +105 -69
  713. package/source/class/qx/test/ui/command/Group.js +24 -21
  714. package/source/class/qx/test/ui/command/GroupManager.js +7 -12
  715. package/source/class/qx/test/ui/container/Stack.js +26 -36
  716. package/source/class/qx/test/ui/core/AbstractScrollArea.js +84 -67
  717. package/source/class/qx/test/ui/core/Appearance.js +53 -54
  718. package/source/class/qx/test/ui/core/Blocker.js +80 -44
  719. package/source/class/qx/test/ui/core/DragDropScrolling.js +69 -55
  720. package/source/class/qx/test/ui/core/Placement.js +22 -34
  721. package/source/class/qx/test/ui/core/Queues.js +28 -39
  722. package/source/class/qx/test/ui/core/SizeHint.js +32 -76
  723. package/source/class/qx/test/ui/core/SizeHintX.js +8 -15
  724. package/source/class/qx/test/ui/core/SizeHintY.js +8 -15
  725. package/source/class/qx/test/ui/core/Spacer.js +11 -18
  726. package/source/class/qx/test/ui/core/Widget.js +117 -112
  727. package/source/class/qx/test/ui/core/__init__.js +4 -4
  728. package/source/class/qx/test/ui/decoration/LinearGradient.js +18 -14
  729. package/source/class/qx/test/ui/embed/Iframe.js +70 -65
  730. package/source/class/qx/test/ui/embed/__init__.js +4 -4
  731. package/source/class/qx/test/ui/form/AbstractSelectBox.js +11 -16
  732. package/source/class/qx/test/ui/form/AbstractVirtualBox.js +12 -19
  733. package/source/class/qx/test/ui/form/BooleanFormat.js +40 -25
  734. package/source/class/qx/test/ui/form/Color.js +29 -19
  735. package/source/class/qx/test/ui/form/ComboBox.js +39 -67
  736. package/source/class/qx/test/ui/form/Date.js +34 -21
  737. package/source/class/qx/test/ui/form/DateField.js +16 -19
  738. package/source/class/qx/test/ui/form/Executable.js +98 -68
  739. package/source/class/qx/test/ui/form/Field.js +65 -54
  740. package/source/class/qx/test/ui/form/Form.js +211 -123
  741. package/source/class/qx/test/ui/form/FormManager.js +72 -100
  742. package/source/class/qx/test/ui/form/FormValidator.js +549 -399
  743. package/source/class/qx/test/ui/form/Label.js +87 -65
  744. package/source/class/qx/test/ui/form/List.js +19 -19
  745. package/source/class/qx/test/ui/form/MenuButton.js +26 -20
  746. package/source/class/qx/test/ui/form/ModelProperty.js +40 -36
  747. package/source/class/qx/test/ui/form/ModelSelection.js +39 -84
  748. package/source/class/qx/test/ui/form/NumberFormat.js +30 -19
  749. package/source/class/qx/test/ui/form/Placeholder.js +147 -87
  750. package/source/class/qx/test/ui/form/RadioButtonGroup.js +31 -26
  751. package/source/class/qx/test/ui/form/RadioGroup.js +58 -54
  752. package/source/class/qx/test/ui/form/Range.js +63 -28
  753. package/source/class/qx/test/ui/form/Renderer.js +39 -33
  754. package/source/class/qx/test/ui/form/Resetter.js +21 -35
  755. package/source/class/qx/test/ui/form/Slider.js +37 -21
  756. package/source/class/qx/test/ui/form/Spinner.js +9 -5
  757. package/source/class/qx/test/ui/form/SplitButton.js +7 -11
  758. package/source/class/qx/test/ui/form/StringFormat.js +60 -30
  759. package/source/class/qx/test/ui/form/TextArea.js +59 -41
  760. package/source/class/qx/test/ui/form/TextField.js +14 -16
  761. package/source/class/qx/test/ui/form/ToggleButton.js +20 -24
  762. package/source/class/qx/test/ui/form/VirtualSelectBox.js +66 -40
  763. package/source/class/qx/test/ui/form/__init__.js +4 -4
  764. package/source/class/qx/test/ui/form/virtual/VirtualComboBox.js +58 -60
  765. package/source/class/qx/test/ui/form/virtual/VirtualDropDownList.js +120 -110
  766. package/source/class/qx/test/ui/form/virtual/VirtualSelectBox.js +43 -27
  767. package/source/class/qx/test/ui/groupbox/CheckGroupBox.js +13 -18
  768. package/source/class/qx/test/ui/indicator/ProgressBar.js +73 -48
  769. package/source/class/qx/test/ui/layout/Box.js +23 -22
  770. package/source/class/qx/test/ui/layout/Flow.js +233 -153
  771. package/source/class/qx/test/ui/layout/Grid.js +88 -101
  772. package/source/class/qx/test/ui/layout/LayoutItem.js +57 -83
  773. package/source/class/qx/test/ui/layout/LayoutRoot.js +7 -11
  774. package/source/class/qx/test/ui/layout/Util.js +30 -31
  775. package/source/class/qx/test/ui/layout/__init__.js +4 -4
  776. package/source/class/qx/test/ui/list/AbstractListTest.js +13 -21
  777. package/source/class/qx/test/ui/list/Group.js +191 -114
  778. package/source/class/qx/test/ui/list/List.js +189 -132
  779. package/source/class/qx/test/ui/list/MAssert.js +14 -9
  780. package/source/class/qx/test/ui/list/ObjectGroup.js +131 -109
  781. package/source/class/qx/test/ui/list/core/MultiSelection.js +58 -44
  782. package/source/class/qx/test/ui/list/core/SingleSelection.js +43 -43
  783. package/source/class/qx/test/ui/list/fixture/GroupMock.js +6 -9
  784. package/source/class/qx/test/ui/list/fixture/ItemMock.js +9 -13
  785. package/source/class/qx/test/ui/root/Inline.js +22 -20
  786. package/source/class/qx/test/ui/selection/AbstractMultiSelectonTest.js +188 -105
  787. package/source/class/qx/test/ui/selection/AbstractSingleSelectonTest.js +173 -125
  788. package/source/class/qx/test/ui/selection/ListMultiSelection.js +19 -21
  789. package/source/class/qx/test/ui/selection/ListSingleSelection.js +19 -21
  790. package/source/class/qx/test/ui/selection/RadioGroup.js +41 -29
  791. package/source/class/qx/test/ui/selection/SelectBox.js +11 -17
  792. package/source/class/qx/test/ui/selection/Stack.js +22 -27
  793. package/source/class/qx/test/ui/selection/TabView.js +35 -26
  794. package/source/class/qx/test/ui/selection/TreeMultiSelection.js +14 -19
  795. package/source/class/qx/test/ui/selection/TreeSingleSelection.js +20 -24
  796. package/source/class/qx/test/ui/selection/__init__.js +4 -4
  797. package/source/class/qx/test/ui/table/Dispose.js +46 -46
  798. package/source/class/qx/test/ui/table/Table.js +74 -69
  799. package/source/class/qx/test/ui/table/__init__.js +4 -4
  800. package/source/class/qx/test/ui/table/celleditor/AbstractField.js +14 -28
  801. package/source/class/qx/test/ui/table/celleditor/ComboBox.js +11 -18
  802. package/source/class/qx/test/ui/table/celleditor/PasswordField.js +6 -10
  803. package/source/class/qx/test/ui/table/celleditor/SelectBox.js +16 -32
  804. package/source/class/qx/test/ui/table/celleditor/TextField.js +6 -9
  805. package/source/class/qx/test/ui/table/celleditor/__init__.js +4 -4
  806. package/source/class/qx/test/ui/table/columnmodel/Basic.js +130 -129
  807. package/source/class/qx/test/ui/table/model/Filtered.js +51 -36
  808. package/source/class/qx/test/ui/table/model/Simple.js +43 -45
  809. package/source/class/qx/test/ui/table/selection/Model.js +70 -22
  810. package/source/class/qx/test/ui/toolbar/OverflowHandling.js +145 -123
  811. package/source/class/qx/test/ui/toolbar/ToolBar.js +20 -30
  812. package/source/class/qx/test/ui/tree/Tree.js +63 -42
  813. package/source/class/qx/test/ui/tree/TreeFolder.js +44 -46
  814. package/source/class/qx/test/ui/tree/virtual/AbstractTreeTest.js +61 -96
  815. package/source/class/qx/test/ui/tree/virtual/MultiSelection.js +68 -39
  816. package/source/class/qx/test/ui/tree/virtual/OneSelection.js +82 -42
  817. package/source/class/qx/test/ui/tree/virtual/OpenCloseController.js +80 -101
  818. package/source/class/qx/test/ui/tree/virtual/SingleSelection.js +40 -32
  819. package/source/class/qx/test/ui/tree/virtual/Sorting.js +46 -47
  820. package/source/class/qx/test/ui/tree/virtual/Tree.js +267 -191
  821. package/source/class/qx/test/ui/tree/virtual/TreeItem.js +60 -63
  822. package/source/class/qx/test/ui/tree/virtual/UtilTest.js +65 -50
  823. package/source/class/qx/test/ui/tree/virtual/WidgetProvider.js +127 -132
  824. package/source/class/qx/test/ui/virtual/Axis.js +210 -193
  825. package/source/class/qx/test/ui/virtual/Pane.js +287 -190
  826. package/source/class/qx/test/ui/virtual/PaneUpdate.js +71 -77
  827. package/source/class/qx/test/ui/virtual/PointerEventMock.js +10 -13
  828. package/source/class/qx/test/ui/virtual/Scroller.js +29 -39
  829. package/source/class/qx/test/ui/virtual/__init__.js +4 -4
  830. package/source/class/qx/test/ui/virtual/cell/WidgetCell.js +39 -40
  831. package/source/class/qx/test/ui/virtual/layer/CellSpanManager.js +157 -127
  832. package/source/class/qx/test/ui/virtual/layer/Column.js +6 -10
  833. package/source/class/qx/test/ui/virtual/layer/GridLines.js +6 -10
  834. package/source/class/qx/test/ui/virtual/layer/GridLinesHorizontal.js +6 -9
  835. package/source/class/qx/test/ui/virtual/layer/GridLinesVertical.js +6 -9
  836. package/source/class/qx/test/ui/virtual/layer/HtmlCell.js +12 -19
  837. package/source/class/qx/test/ui/virtual/layer/HtmlCellSpan.js +13 -21
  838. package/source/class/qx/test/ui/virtual/layer/LayerMock.js +31 -43
  839. package/source/class/qx/test/ui/virtual/layer/LayerSimple.js +26 -26
  840. package/source/class/qx/test/ui/virtual/layer/LayerTestCase.js +52 -50
  841. package/source/class/qx/test/ui/virtual/layer/Row.js +6 -10
  842. package/source/class/qx/test/ui/virtual/layer/WidgetCell.js +45 -52
  843. package/source/class/qx/test/ui/virtual/layer/WidgetCellSpan.js +71 -48
  844. package/source/class/qx/test/ui/virtual/layer/__init__.js +4 -4
  845. package/source/class/qx/test/ui/virtual/performance/AbstractLayerTest.js +84 -68
  846. package/source/class/qx/test/ui/virtual/performance/DomCell.js +6 -9
  847. package/source/class/qx/test/ui/virtual/performance/DomPoolCell.js +6 -9
  848. package/source/class/qx/test/ui/virtual/performance/HtmlDivCell.js +7 -11
  849. package/source/class/qx/test/ui/virtual/performance/HtmlDivRelative.js +6 -9
  850. package/source/class/qx/test/ui/virtual/performance/HtmlTableCell.js +8 -13
  851. package/source/class/qx/test/ui/virtual/performance/HtmlTableCellNaive.js +8 -13
  852. package/source/class/qx/test/ui/virtual/performance/HtmlTableCssCell.js +8 -19
  853. package/source/class/qx/test/ui/virtual/performance/WidgetCell.js +10 -15
  854. package/source/class/qx/test/ui/virtual/performance/__init__.js +4 -4
  855. package/source/class/qx/test/ui/virtual/performance/layer/DomCell.js +24 -18
  856. package/source/class/qx/test/ui/virtual/performance/layer/DomPoolCell.js +28 -26
  857. package/source/class/qx/test/ui/virtual/performance/layer/HtmlDivRelative.js +13 -17
  858. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCell.js +29 -28
  859. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCellNaive.js +22 -24
  860. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCssCell.js +32 -47
  861. package/source/class/qx/test/ui/virtual/performance/layer/__init__.js +4 -4
  862. package/source/class/qx/test/ui/window/Desktop.js +21 -12
  863. package/source/class/qx/test/util/Base64.js +10 -13
  864. package/source/class/qx/test/util/ColorUtil.js +121 -54
  865. package/source/class/qx/test/util/DateFormat.js +569 -299
  866. package/source/class/qx/test/util/DateMock.js +16 -19
  867. package/source/class/qx/test/util/DeferredCall.js +12 -13
  868. package/source/class/qx/test/util/Delegate.js +28 -26
  869. package/source/class/qx/test/util/DisposeUtil.js +32 -14
  870. package/source/class/qx/test/util/DynamicScriptLoader.js +99 -64
  871. package/source/class/qx/test/util/Fsm.js +16 -18
  872. package/source/class/qx/test/util/Function.js +23 -19
  873. package/source/class/qx/test/util/LibraryManager.js +15 -22
  874. package/source/class/qx/test/util/NumberFormat.js +53 -64
  875. package/source/class/qx/test/util/PropertyUtil.js +35 -35
  876. package/source/class/qx/test/util/Request.js +26 -18
  877. package/source/class/qx/test/util/ResourceManager.js +50 -35
  878. package/source/class/qx/test/util/ResponseParser.js +45 -35
  879. package/source/class/qx/test/util/RingBuffer.js +15 -28
  880. package/source/class/qx/test/util/Serializer.js +210 -153
  881. package/source/class/qx/test/util/StringBuilder.js +7 -13
  882. package/source/class/qx/test/util/StringSplit.js +114 -69
  883. package/source/class/qx/test/util/Uri.js +74 -78
  884. package/source/class/qx/test/util/Validate.js +95 -64
  885. package/source/class/qx/test/util/placement/BestFitAxis.js +17 -26
  886. package/source/class/qx/test/util/placement/DirectAxis.js +8 -11
  887. package/source/class/qx/test/util/placement/KeepAlignAxis.js +17 -26
  888. package/source/class/qx/test/util/placement/Placement.js +607 -244
  889. package/source/class/qx/test/util/placement/__init__.js +4 -4
  890. package/source/class/qx/theme/Classic.js +9 -11
  891. package/source/class/qx/theme/Indigo.js +9 -11
  892. package/source/class/qx/theme/Modern.js +9 -11
  893. package/source/class/qx/theme/Simple.js +9 -11
  894. package/source/class/qx/theme/TangibleDark.js +1 -1
  895. package/source/class/qx/theme/TangibleLight.js +1 -1
  896. package/source/class/qx/theme/__init__.js +4 -4
  897. package/source/class/qx/theme/classic/Appearance.js +995 -1336
  898. package/source/class/qx/theme/classic/Color.js +83 -83
  899. package/source/class/qx/theme/classic/Decoration.js +318 -299
  900. package/source/class/qx/theme/classic/Font.js +38 -25
  901. package/source/class/qx/theme/icon/Oxygen.js +4 -5
  902. package/source/class/qx/theme/icon/Tango.js +4 -5
  903. package/source/class/qx/theme/indigo/Appearance.js +66 -85
  904. package/source/class/qx/theme/indigo/Color.js +65 -66
  905. package/source/class/qx/theme/indigo/Decoration.js +31 -45
  906. package/source/class/qx/theme/indigo/Font.js +20 -29
  907. package/source/class/qx/theme/manager/Appearance.js +58 -91
  908. package/source/class/qx/theme/manager/Color.js +20 -41
  909. package/source/class/qx/theme/manager/Decoration.js +72 -100
  910. package/source/class/qx/theme/manager/Font.js +51 -67
  911. package/source/class/qx/theme/manager/Icon.js +13 -27
  912. package/source/class/qx/theme/manager/Meta.js +27 -44
  913. package/source/class/qx/theme/modern/Appearance.js +1049 -1440
  914. package/source/class/qx/theme/modern/Color.js +155 -166
  915. package/source/class/qx/theme/modern/Decoration.js +471 -598
  916. package/source/class/qx/theme/modern/Font.js +59 -52
  917. package/source/class/qx/theme/simple/Appearance.js +936 -1207
  918. package/source/class/qx/theme/simple/Color.js +62 -62
  919. package/source/class/qx/theme/simple/Decoration.js +456 -678
  920. package/source/class/qx/theme/simple/Font.js +18 -25
  921. package/source/class/qx/theme/simple/Image.js +49 -52
  922. package/source/class/qx/theme/tangible/Appearance.js +1575 -1743
  923. package/source/class/qx/theme/tangible/ColorDark.js +5 -5
  924. package/source/class/qx/theme/tangible/ColorEngine.js +38 -35
  925. package/source/class/qx/theme/tangible/ColorLight.js +7 -7
  926. package/source/class/qx/theme/tangible/Decoration.js +1108 -1300
  927. package/source/class/qx/theme/tangible/Font.js +66 -70
  928. package/source/class/qx/theme/tangible/Image.js +44 -48
  929. package/source/class/qx/tool/cli/Application.js +5 -5
  930. package/source/class/qx/tool/cli/Cli.js +107 -54
  931. package/source/class/qx/tool/cli/ConfigDb.js +18 -15
  932. package/source/class/qx/tool/cli/LibraryApplication.js +1 -1
  933. package/source/class/qx/tool/cli/Watch.js +174 -102
  934. package/source/class/qx/tool/cli/api/AbstractApi.js +17 -18
  935. package/source/class/qx/tool/cli/api/CompilerApi.js +29 -12
  936. package/source/class/qx/tool/cli/api/LibraryApi.js +4 -6
  937. package/source/class/qx/tool/cli/api/Test.js +12 -9
  938. package/source/class/qx/tool/cli/commands/Add.js +12 -15
  939. package/source/class/qx/tool/cli/commands/Clean.js +10 -9
  940. package/source/class/qx/tool/cli/commands/Command.js +25 -13
  941. package/source/class/qx/tool/cli/commands/Compile.js +635 -269
  942. package/source/class/qx/tool/cli/commands/Config.js +75 -42
  943. package/source/class/qx/tool/cli/commands/Create.js +108 -59
  944. package/source/class/qx/tool/cli/commands/Deploy.js +138 -86
  945. package/source/class/qx/tool/cli/commands/Es6ify.js +118 -0
  946. package/source/class/qx/tool/cli/commands/Lint.js +101 -41
  947. package/source/class/qx/tool/cli/commands/Migrate.js +13 -7
  948. package/source/class/qx/tool/cli/commands/Package.js +67 -46
  949. package/source/class/qx/tool/cli/commands/Pkg.js +21 -18
  950. package/source/class/qx/tool/cli/commands/Run.js +57 -37
  951. package/source/class/qx/tool/cli/commands/Serve.js +62 -37
  952. package/source/class/qx/tool/cli/commands/Test.js +40 -18
  953. package/source/class/qx/tool/cli/commands/add/Class.js +66 -28
  954. package/source/class/qx/tool/cli/commands/add/Script.js +54 -27
  955. package/source/class/qx/tool/cli/commands/package/Install.js +265 -103
  956. package/source/class/qx/tool/cli/commands/package/List.js +199 -75
  957. package/source/class/qx/tool/cli/commands/package/Migrate.js +7 -3
  958. package/source/class/qx/tool/cli/commands/package/Publish.js +230 -115
  959. package/source/class/qx/tool/cli/commands/package/Remove.js +40 -17
  960. package/source/class/qx/tool/cli/commands/package/Update.js +115 -48
  961. package/source/class/qx/tool/cli/commands/package/Upgrade.js +41 -20
  962. package/source/class/qx/tool/compiler/Analyser.js +443 -239
  963. package/source/class/qx/tool/compiler/ClassFile.js +831 -401
  964. package/source/class/qx/tool/compiler/Console.js +136 -87
  965. package/source/class/qx/tool/compiler/Es6ify.js +404 -0
  966. package/source/class/qx/tool/compiler/Preprocess.js +28 -25
  967. package/source/class/qx/tool/compiler/app/Application.js +149 -72
  968. package/source/class/qx/tool/compiler/app/Cldr.js +506 -106
  969. package/source/class/qx/tool/compiler/app/Library.js +62 -27
  970. package/source/class/qx/tool/compiler/app/Part.js +10 -12
  971. package/source/class/qx/tool/compiler/app/Translation.js +189 -162
  972. package/source/class/qx/tool/compiler/app/WebFont.js +216 -162
  973. package/source/class/qx/tool/compiler/jsdoc/ChildControlParser.js +3 -3
  974. package/source/class/qx/tool/compiler/jsdoc/CommandParser.js +8 -9
  975. package/source/class/qx/tool/compiler/jsdoc/ParamParser.js +7 -6
  976. package/source/class/qx/tool/compiler/jsdoc/Parser.js +27 -18
  977. package/source/class/qx/tool/compiler/jsdoc/ReturnParser.js +3 -3
  978. package/source/class/qx/tool/compiler/jsdoc/ThrowsParser.js +4 -4
  979. package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +5 -6
  980. package/source/class/qx/tool/compiler/makers/AppMaker.js +53 -32
  981. package/source/class/qx/tool/compiler/makers/Maker.js +29 -21
  982. package/source/class/qx/tool/compiler/resources/AbstractMatcher.js +8 -8
  983. package/source/class/qx/tool/compiler/resources/Asset.js +123 -61
  984. package/source/class/qx/tool/compiler/resources/ImageLoader.js +18 -8
  985. package/source/class/qx/tool/compiler/resources/Manager.js +156 -93
  986. package/source/class/qx/tool/compiler/resources/MetaLoader.js +5 -3
  987. package/source/class/qx/tool/compiler/resources/ResourceConverter.js +8 -8
  988. package/source/class/qx/tool/compiler/resources/ResourceLoader.js +8 -9
  989. package/source/class/qx/tool/compiler/resources/ScssConverter.js +54 -18
  990. package/source/class/qx/tool/compiler/resources/ScssFile.js +157 -80
  991. package/source/class/qx/tool/compiler/resources/ScssIncludeConverter.js +3 -3
  992. package/source/class/qx/tool/compiler/targets/BuildTarget.js +23 -13
  993. package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +29 -9
  994. package/source/class/qx/tool/compiler/targets/SourceTarget.js +2 -2
  995. package/source/class/qx/tool/compiler/targets/Target.js +292 -187
  996. package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +163 -104
  997. package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +48 -23
  998. package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +75 -62
  999. package/source/class/qx/tool/compiler/targets/meta/BootJs.js +49 -29
  1000. package/source/class/qx/tool/compiler/targets/meta/Javascript.js +6 -7
  1001. package/source/class/qx/tool/compiler/targets/meta/Package.js +54 -51
  1002. package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +41 -21
  1003. package/source/class/qx/tool/compiler/targets/meta/Part.js +9 -10
  1004. package/source/class/qx/tool/compiler/targets/meta/PolyfillJs.js +23 -10
  1005. package/source/class/qx/tool/compiler/targets/meta/Uglify.js +35 -23
  1006. package/source/class/qx/tool/config/Abstract.js +61 -25
  1007. package/source/class/qx/tool/config/Compile.js +3 -2
  1008. package/source/class/qx/tool/config/Lockfile.js +3 -2
  1009. package/source/class/qx/tool/config/Manifest.js +3 -2
  1010. package/source/class/qx/tool/config/Registry.js +4 -3
  1011. package/source/class/qx/tool/config/Utils.js +97 -37
  1012. package/source/class/qx/tool/migration/BaseMigration.js +67 -25
  1013. package/source/class/qx/tool/migration/M6_0_0.js +96 -46
  1014. package/source/class/qx/tool/migration/M7_0_0.js +12 -6
  1015. package/source/class/qx/tool/migration/Runner.js +28 -14
  1016. package/source/class/qx/tool/utils/IndexedArray.js +15 -18
  1017. package/source/class/qx/tool/utils/Json.js +36 -15
  1018. package/source/class/qx/tool/utils/LogManager.js +50 -26
  1019. package/source/class/qx/tool/utils/Logger.js +11 -12
  1020. package/source/class/qx/tool/utils/Promisify.js +45 -49
  1021. package/source/class/qx/tool/utils/Utils.js +63 -48
  1022. package/source/class/qx/tool/utils/Values.js +4 -7
  1023. package/source/class/qx/tool/utils/Website.js +82 -29
  1024. package/source/class/qx/tool/utils/files/FindFiles.js +37 -33
  1025. package/source/class/qx/tool/utils/files/Utils.js +74 -54
  1026. package/source/class/qx/tool/utils/json/Parser.js +163 -54
  1027. package/source/class/qx/tool/utils/json/Stringify.js +87 -72
  1028. package/source/class/qx/tool/utils/json/Tokenizer.js +64 -39
  1029. package/source/class/qx/tool/utils/json/Writer.js +20 -21
  1030. package/source/class/qx/type/Array.js +19 -41
  1031. package/source/class/qx/type/BaseArray.js +136 -151
  1032. package/source/class/qx/type/BaseError.js +17 -34
  1033. package/source/class/qx/type/BaseString.js +104 -120
  1034. package/source/class/qx/type/__init__.js +3 -3
  1035. package/source/class/qx/ui/basic/Atom.js +75 -109
  1036. package/source/class/qx/ui/basic/Image.js +283 -319
  1037. package/source/class/qx/ui/basic/Label.js +161 -208
  1038. package/source/class/qx/ui/command/Command.js +51 -86
  1039. package/source/class/qx/ui/command/Group.js +43 -50
  1040. package/source/class/qx/ui/command/GroupManager.js +50 -53
  1041. package/source/class/qx/ui/container/Composite.js +15 -29
  1042. package/source/class/qx/ui/container/Resizer.js +7 -11
  1043. package/source/class/qx/ui/container/Scroll.js +10 -21
  1044. package/source/class/qx/ui/container/SlideBar.js +78 -118
  1045. package/source/class/qx/ui/container/Stack.js +27 -54
  1046. package/source/class/qx/ui/control/ColorPopup.js +109 -130
  1047. package/source/class/qx/ui/control/ColorSelector.js +334 -301
  1048. package/source/class/qx/ui/control/DateChooser.js +143 -177
  1049. package/source/class/qx/ui/core/Blocker.js +91 -127
  1050. package/source/class/qx/ui/core/ColumnData.js +16 -34
  1051. package/source/class/qx/ui/core/DragDropCursor.js +17 -30
  1052. package/source/class/qx/ui/core/DragDropScrolling.js +8 -14
  1053. package/source/class/qx/ui/core/EventHandler.js +108 -132
  1054. package/source/class/qx/ui/core/FocusHandler.js +78 -127
  1055. package/source/class/qx/ui/core/IMultiSelection.js +5 -9
  1056. package/source/class/qx/ui/core/ISingleSelection.js +10 -16
  1057. package/source/class/qx/ui/core/ISingleSelectionProvider.js +4 -6
  1058. package/source/class/qx/ui/core/LayoutItem.js +190 -306
  1059. package/source/class/qx/ui/core/MBlocker.js +22 -38
  1060. package/source/class/qx/ui/core/MChildrenHandling.js +14 -29
  1061. package/source/class/qx/ui/core/MContentPadding.js +50 -69
  1062. package/source/class/qx/ui/core/MDragDropScrolling.js +82 -80
  1063. package/source/class/qx/ui/core/MExecutable.js +27 -52
  1064. package/source/class/qx/ui/core/MLayoutHandling.js +6 -14
  1065. package/source/class/qx/ui/core/MMovable.js +64 -80
  1066. package/source/class/qx/ui/core/MMultiSelectionHandling.js +68 -87
  1067. package/source/class/qx/ui/core/MNativeOverflow.js +16 -26
  1068. package/source/class/qx/ui/core/MPlacement.js +171 -170
  1069. package/source/class/qx/ui/core/MRemoteChildrenHandling.js +14 -27
  1070. package/source/class/qx/ui/core/MRemoteLayoutHandling.js +4 -7
  1071. package/source/class/qx/ui/core/MResizable.js +142 -175
  1072. package/source/class/qx/ui/core/MSingleSelectionHandling.js +40 -45
  1073. package/source/class/qx/ui/core/SingleSelectionManager.js +41 -60
  1074. package/source/class/qx/ui/core/Spacer.js +12 -22
  1075. package/source/class/qx/ui/core/Widget.js +688 -973
  1076. package/source/class/qx/ui/core/queue/Appearance.js +15 -24
  1077. package/source/class/qx/ui/core/queue/Dispose.js +7 -16
  1078. package/source/class/qx/ui/core/queue/Layout.js +44 -71
  1079. package/source/class/qx/ui/core/queue/Manager.js +140 -133
  1080. package/source/class/qx/ui/core/queue/Visibility.js +21 -39
  1081. package/source/class/qx/ui/core/queue/Widget.js +15 -26
  1082. package/source/class/qx/ui/core/scroll/AbstractScrollArea.js +124 -162
  1083. package/source/class/qx/ui/core/scroll/IScrollBar.js +13 -24
  1084. package/source/class/qx/ui/core/scroll/MRoll.js +14 -19
  1085. package/source/class/qx/ui/core/scroll/MScrollBarFactory.js +3 -6
  1086. package/source/class/qx/ui/core/scroll/MWheelHandling.js +10 -12
  1087. package/source/class/qx/ui/core/scroll/NativeScrollBar.js +103 -124
  1088. package/source/class/qx/ui/core/scroll/ScrollBar.js +89 -130
  1089. package/source/class/qx/ui/core/scroll/ScrollPane.js +95 -134
  1090. package/source/class/qx/ui/core/scroll/ScrollSlider.js +13 -19
  1091. package/source/class/qx/ui/core/scroll/__init__.js +4 -4
  1092. package/source/class/qx/ui/core/selection/Abstract.js +255 -456
  1093. package/source/class/qx/ui/core/selection/ScrollArea.js +35 -73
  1094. package/source/class/qx/ui/core/selection/Widget.js +57 -120
  1095. package/source/class/qx/ui/decoration/Abstract.js +11 -20
  1096. package/source/class/qx/ui/decoration/Decorator.js +56 -55
  1097. package/source/class/qx/ui/decoration/IDecorator.js +5 -11
  1098. package/source/class/qx/ui/decoration/MBackgroundColor.js +13 -20
  1099. package/source/class/qx/ui/decoration/MBackgroundImage.js +82 -77
  1100. package/source/class/qx/ui/decoration/MBorderImage.js +72 -94
  1101. package/source/class/qx/ui/decoration/MBorderRadius.js +35 -38
  1102. package/source/class/qx/ui/decoration/MBoxShadow.js +61 -55
  1103. package/source/class/qx/ui/decoration/MDoubleBorder.js +157 -155
  1104. package/source/class/qx/ui/decoration/MLinearBackgroundGradient.js +169 -89
  1105. package/source/class/qx/ui/decoration/MSingleBorder.js +138 -124
  1106. package/source/class/qx/ui/decoration/MTransition.js +46 -42
  1107. package/source/class/qx/ui/decoration/__init__.js +2 -2
  1108. package/source/class/qx/ui/embed/AbstractIframe.js +37 -55
  1109. package/source/class/qx/ui/embed/Canvas.js +34 -66
  1110. package/source/class/qx/ui/embed/Html.js +46 -70
  1111. package/source/class/qx/ui/embed/Iframe.js +178 -158
  1112. package/source/class/qx/ui/embed/ThemedIframe.js +91 -135
  1113. package/source/class/qx/ui/form/AbstractField.js +262 -303
  1114. package/source/class/qx/ui/form/AbstractSelectBox.js +98 -88
  1115. package/source/class/qx/ui/form/Button.js +38 -73
  1116. package/source/class/qx/ui/form/CheckBox.js +47 -45
  1117. package/source/class/qx/ui/form/CheckedList.js +41 -25
  1118. package/source/class/qx/ui/form/CheckedSelectBox.js +97 -62
  1119. package/source/class/qx/ui/form/ComboBox.js +129 -143
  1120. package/source/class/qx/ui/form/DateField.js +150 -176
  1121. package/source/class/qx/ui/form/Form.js +50 -69
  1122. package/source/class/qx/ui/form/HoverButton.js +37 -54
  1123. package/source/class/qx/ui/form/IArrayForm.js +8 -16
  1124. package/source/class/qx/ui/form/IBooleanForm.js +8 -16
  1125. package/source/class/qx/ui/form/IColorForm.js +8 -16
  1126. package/source/class/qx/ui/form/IDateForm.js +8 -16
  1127. package/source/class/qx/ui/form/IExecutable.js +7 -14
  1128. package/source/class/qx/ui/form/IField.js +7 -14
  1129. package/source/class/qx/ui/form/IForm.js +17 -32
  1130. package/source/class/qx/ui/form/IListItem.js +1 -4
  1131. package/source/class/qx/ui/form/IModel.js +7 -15
  1132. package/source/class/qx/ui/form/IModelForm.js +8 -16
  1133. package/source/class/qx/ui/form/IModelSelection.js +4 -8
  1134. package/source/class/qx/ui/form/INumberForm.js +8 -15
  1135. package/source/class/qx/ui/form/IRadioItem.js +8 -17
  1136. package/source/class/qx/ui/form/IRange.js +10 -20
  1137. package/source/class/qx/ui/form/IStringForm.js +8 -16
  1138. package/source/class/qx/ui/form/List.js +85 -122
  1139. package/source/class/qx/ui/form/ListItem.js +21 -38
  1140. package/source/class/qx/ui/form/MForm.js +35 -41
  1141. package/source/class/qx/ui/form/MModelProperty.js +9 -14
  1142. package/source/class/qx/ui/form/MModelSelection.js +30 -32
  1143. package/source/class/qx/ui/form/MenuButton.js +68 -73
  1144. package/source/class/qx/ui/form/PasswordField.js +4 -6
  1145. package/source/class/qx/ui/form/RadioButton.js +43 -72
  1146. package/source/class/qx/ui/form/RadioButtonGroup.js +70 -82
  1147. package/source/class/qx/ui/form/RadioGroup.js +110 -126
  1148. package/source/class/qx/ui/form/RepeatButton.js +57 -106
  1149. package/source/class/qx/ui/form/Resetter.js +19 -29
  1150. package/source/class/qx/ui/form/SelectBox.js +80 -101
  1151. package/source/class/qx/ui/form/Slider.js +216 -268
  1152. package/source/class/qx/ui/form/Spinner.js +173 -217
  1153. package/source/class/qx/ui/form/SplitButton.js +76 -115
  1154. package/source/class/qx/ui/form/Tag.js +7 -8
  1155. package/source/class/qx/ui/form/TextArea.js +147 -153
  1156. package/source/class/qx/ui/form/TextField.js +37 -46
  1157. package/source/class/qx/ui/form/ToggleButton.js +62 -90
  1158. package/source/class/qx/ui/form/VirtualComboBox.js +73 -113
  1159. package/source/class/qx/ui/form/VirtualSelectBox.js +264 -274
  1160. package/source/class/qx/ui/form/core/AbstractVirtualBox.js +117 -157
  1161. package/source/class/qx/ui/form/core/VirtualDropDownList.js +101 -144
  1162. package/source/class/qx/ui/form/renderer/AbstractRenderer.js +48 -55
  1163. package/source/class/qx/ui/form/renderer/Double.js +25 -34
  1164. package/source/class/qx/ui/form/renderer/IFormRenderer.js +4 -8
  1165. package/source/class/qx/ui/form/renderer/Single.js +25 -35
  1166. package/source/class/qx/ui/form/renderer/SinglePlaceholder.js +12 -11
  1167. package/source/class/qx/ui/form/renderer/__init__.js +5 -5
  1168. package/source/class/qx/ui/form/validation/AsyncValidator.js +13 -19
  1169. package/source/class/qx/ui/form/validation/Manager.js +74 -108
  1170. package/source/class/qx/ui/form/validation/__init__.js +6 -6
  1171. package/source/class/qx/ui/groupbox/CheckGroupBox.js +30 -47
  1172. package/source/class/qx/ui/groupbox/GroupBox.js +36 -75
  1173. package/source/class/qx/ui/groupbox/RadioGroupBox.js +29 -59
  1174. package/source/class/qx/ui/groupbox/__init__.js +3 -3
  1175. package/source/class/qx/ui/indicator/ProgressBar.js +29 -46
  1176. package/source/class/qx/ui/layout/Abstract.js +28 -53
  1177. package/source/class/qx/ui/layout/Atom.js +95 -111
  1178. package/source/class/qx/ui/layout/Basic.js +29 -30
  1179. package/source/class/qx/ui/layout/Canvas.js +62 -99
  1180. package/source/class/qx/ui/layout/Dock.js +266 -250
  1181. package/source/class/qx/ui/layout/Flow.js +50 -76
  1182. package/source/class/qx/ui/layout/Grid.js +268 -343
  1183. package/source/class/qx/ui/layout/Grow.js +26 -32
  1184. package/source/class/qx/ui/layout/HBox.js +137 -153
  1185. package/source/class/qx/ui/layout/LineSizeIterator.js +19 -28
  1186. package/source/class/qx/ui/layout/Util.js +91 -120
  1187. package/source/class/qx/ui/layout/VBox.js +125 -147
  1188. package/source/class/qx/ui/list/List.js +148 -262
  1189. package/source/class/qx/ui/list/core/IListDelegate.js +13 -26
  1190. package/source/class/qx/ui/list/core/MWidgetController.js +51 -78
  1191. package/source/class/qx/ui/list/provider/IListProvider.js +15 -28
  1192. package/source/class/qx/ui/list/provider/WidgetProvider.js +52 -84
  1193. package/source/class/qx/ui/menu/AbstractButton.js +141 -122
  1194. package/source/class/qx/ui/menu/Button.js +14 -25
  1195. package/source/class/qx/ui/menu/ButtonLayout.js +49 -37
  1196. package/source/class/qx/ui/menu/CheckBox.js +28 -45
  1197. package/source/class/qx/ui/menu/Layout.js +45 -51
  1198. package/source/class/qx/ui/menu/Manager.js +132 -208
  1199. package/source/class/qx/ui/menu/Menu.js +227 -250
  1200. package/source/class/qx/ui/menu/MenuSlideBar.js +13 -20
  1201. package/source/class/qx/ui/menu/RadioButton.js +38 -51
  1202. package/source/class/qx/ui/menu/Separator.js +9 -16
  1203. package/source/class/qx/ui/menubar/Button.js +22 -67
  1204. package/source/class/qx/ui/menubar/MenuBar.js +17 -9
  1205. package/source/class/qx/ui/mobile/__init__.js +5 -5
  1206. package/source/class/qx/ui/mobile/basic/Atom.js +79 -101
  1207. package/source/class/qx/ui/mobile/basic/Image.js +80 -86
  1208. package/source/class/qx/ui/mobile/basic/Label.js +38 -54
  1209. package/source/class/qx/ui/mobile/container/Carousel.js +281 -188
  1210. package/source/class/qx/ui/mobile/container/Collapsible.js +57 -77
  1211. package/source/class/qx/ui/mobile/container/Composite.js +9 -13
  1212. package/source/class/qx/ui/mobile/container/Drawer.js +167 -164
  1213. package/source/class/qx/ui/mobile/container/INavigation.js +6 -10
  1214. package/source/class/qx/ui/mobile/container/IScrollDelegate.js +4 -6
  1215. package/source/class/qx/ui/mobile/container/MIScroll.js +108 -100
  1216. package/source/class/qx/ui/mobile/container/MNativeScroll.js +118 -102
  1217. package/source/class/qx/ui/mobile/container/MScrollHandling.js +8 -7
  1218. package/source/class/qx/ui/mobile/container/Navigation.js +46 -65
  1219. package/source/class/qx/ui/mobile/container/Scroll.js +140 -151
  1220. package/source/class/qx/ui/mobile/control/Picker.js +125 -112
  1221. package/source/class/qx/ui/mobile/core/Blocker.js +62 -71
  1222. package/source/class/qx/ui/mobile/core/DomUpdatedHandler.js +24 -60
  1223. package/source/class/qx/ui/mobile/core/EventHandler.js +158 -138
  1224. package/source/class/qx/ui/mobile/core/MChildrenHandling.js +14 -30
  1225. package/source/class/qx/ui/mobile/core/MLayoutHandling.js +6 -14
  1226. package/source/class/qx/ui/mobile/core/MResize.js +16 -30
  1227. package/source/class/qx/ui/mobile/core/Root.js +90 -80
  1228. package/source/class/qx/ui/mobile/core/Widget.js +351 -479
  1229. package/source/class/qx/ui/mobile/dialog/BusyIndicator.js +31 -46
  1230. package/source/class/qx/ui/mobile/dialog/Manager.js +127 -89
  1231. package/source/class/qx/ui/mobile/dialog/Menu.js +111 -122
  1232. package/source/class/qx/ui/mobile/dialog/Popup.js +202 -194
  1233. package/source/class/qx/ui/mobile/embed/Canvas.js +12 -25
  1234. package/source/class/qx/ui/mobile/embed/Html.js +13 -27
  1235. package/source/class/qx/ui/mobile/form/Button.js +12 -18
  1236. package/source/class/qx/ui/mobile/form/CheckBox.js +20 -35
  1237. package/source/class/qx/ui/mobile/form/Form.js +31 -51
  1238. package/source/class/qx/ui/mobile/form/Group.js +18 -30
  1239. package/source/class/qx/ui/mobile/form/Input.js +30 -35
  1240. package/source/class/qx/ui/mobile/form/Label.js +76 -79
  1241. package/source/class/qx/ui/mobile/form/MState.js +20 -27
  1242. package/source/class/qx/ui/mobile/form/MText.js +27 -47
  1243. package/source/class/qx/ui/mobile/form/MValue.js +66 -94
  1244. package/source/class/qx/ui/mobile/form/NumberField.js +30 -47
  1245. package/source/class/qx/ui/mobile/form/PasswordField.js +8 -14
  1246. package/source/class/qx/ui/mobile/form/RadioButton.js +25 -46
  1247. package/source/class/qx/ui/mobile/form/RadioGroup.js +2 -4
  1248. package/source/class/qx/ui/mobile/form/Row.js +14 -29
  1249. package/source/class/qx/ui/mobile/form/SelectBox.js +77 -104
  1250. package/source/class/qx/ui/mobile/form/Slider.js +116 -144
  1251. package/source/class/qx/ui/mobile/form/TextArea.js +26 -39
  1252. package/source/class/qx/ui/mobile/form/TextField.js +18 -28
  1253. package/source/class/qx/ui/mobile/form/Title.js +11 -19
  1254. package/source/class/qx/ui/mobile/form/ToggleButton.js +35 -58
  1255. package/source/class/qx/ui/mobile/form/__init__.js +1 -1
  1256. package/source/class/qx/ui/mobile/form/renderer/AbstractRenderer.js +24 -31
  1257. package/source/class/qx/ui/mobile/form/renderer/Single.js +59 -85
  1258. package/source/class/qx/ui/mobile/form/renderer/SinglePlaceholder.js +8 -16
  1259. package/source/class/qx/ui/mobile/layout/Abstract.js +48 -85
  1260. package/source/class/qx/ui/mobile/layout/AbstractBox.js +93 -125
  1261. package/source/class/qx/ui/mobile/layout/Card.js +133 -116
  1262. package/source/class/qx/ui/mobile/layout/CardAnimation.js +95 -72
  1263. package/source/class/qx/ui/mobile/layout/HBox.js +9 -12
  1264. package/source/class/qx/ui/mobile/layout/VBox.js +9 -12
  1265. package/source/class/qx/ui/mobile/list/IListDelegate.js +5 -9
  1266. package/source/class/qx/ui/mobile/list/List.js +172 -183
  1267. package/source/class/qx/ui/mobile/list/provider/Provider.js +58 -65
  1268. package/source/class/qx/ui/mobile/list/renderer/Abstract.js +54 -82
  1269. package/source/class/qx/ui/mobile/list/renderer/Default.js +39 -55
  1270. package/source/class/qx/ui/mobile/list/renderer/group/Abstract.js +20 -33
  1271. package/source/class/qx/ui/mobile/list/renderer/group/Default.js +29 -45
  1272. package/source/class/qx/ui/mobile/navigationbar/BackButton.js +11 -15
  1273. package/source/class/qx/ui/mobile/navigationbar/Button.js +11 -15
  1274. package/source/class/qx/ui/mobile/navigationbar/NavigationBar.js +23 -29
  1275. package/source/class/qx/ui/mobile/navigationbar/Title.js +12 -20
  1276. package/source/class/qx/ui/mobile/page/Manager.js +195 -169
  1277. package/source/class/qx/ui/mobile/page/NavigationPage.js +132 -196
  1278. package/source/class/qx/ui/mobile/page/Page.js +109 -148
  1279. package/source/class/qx/ui/mobile/tabbar/TabBar.js +41 -62
  1280. package/source/class/qx/ui/mobile/tabbar/TabButton.js +19 -28
  1281. package/source/class/qx/ui/mobile/toolbar/Button.js +7 -11
  1282. package/source/class/qx/ui/mobile/toolbar/Separator.js +11 -15
  1283. package/source/class/qx/ui/mobile/toolbar/ToolBar.js +30 -39
  1284. package/source/class/qx/ui/popup/Manager.js +41 -53
  1285. package/source/class/qx/ui/popup/Popup.js +22 -47
  1286. package/source/class/qx/ui/popup/__init__.js +32 -32
  1287. package/source/class/qx/ui/progressive/Progressive.js +96 -137
  1288. package/source/class/qx/ui/progressive/State.js +12 -19
  1289. package/source/class/qx/ui/progressive/headfoot/Abstract.js +10 -15
  1290. package/source/class/qx/ui/progressive/headfoot/Null.js +4 -7
  1291. package/source/class/qx/ui/progressive/headfoot/Progress.js +67 -69
  1292. package/source/class/qx/ui/progressive/headfoot/TableHeading.js +42 -54
  1293. package/source/class/qx/ui/progressive/model/Abstract.js +8 -15
  1294. package/source/class/qx/ui/progressive/model/Default.js +17 -29
  1295. package/source/class/qx/ui/progressive/renderer/Abstract.js +6 -11
  1296. package/source/class/qx/ui/progressive/renderer/FunctionCaller.js +4 -7
  1297. package/source/class/qx/ui/progressive/renderer/table/Row.js +215 -242
  1298. package/source/class/qx/ui/progressive/renderer/table/Widths.js +32 -47
  1299. package/source/class/qx/ui/progressive/renderer/table/cell/Abstract.js +17 -24
  1300. package/source/class/qx/ui/progressive/renderer/table/cell/Boolean.js +68 -79
  1301. package/source/class/qx/ui/progressive/renderer/table/cell/Conditional.js +146 -199
  1302. package/source/class/qx/ui/progressive/renderer/table/cell/Default.js +14 -32
  1303. package/source/class/qx/ui/progressive/renderer/table/cell/Html.js +2 -3
  1304. package/source/class/qx/ui/progressive/renderer/table/cell/Icon.js +38 -53
  1305. package/source/class/qx/ui/progressive/renderer/table/cell/Image.js +20 -42
  1306. package/source/class/qx/ui/progressive/renderer/table/cell/String.js +6 -12
  1307. package/source/class/qx/ui/progressive/structure/Abstract.js +14 -26
  1308. package/source/class/qx/ui/progressive/structure/Default.js +20 -40
  1309. package/source/class/qx/ui/root/Abstract.js +73 -90
  1310. package/source/class/qx/ui/root/Application.js +57 -61
  1311. package/source/class/qx/ui/root/Inline.js +78 -64
  1312. package/source/class/qx/ui/root/Page.js +25 -46
  1313. package/source/class/qx/ui/splitpane/Blocker.js +23 -30
  1314. package/source/class/qx/ui/splitpane/HLayout.js +53 -49
  1315. package/source/class/qx/ui/splitpane/Pane.js +115 -150
  1316. package/source/class/qx/ui/splitpane/Slider.js +9 -15
  1317. package/source/class/qx/ui/splitpane/Splitter.js +27 -46
  1318. package/source/class/qx/ui/splitpane/VLayout.js +53 -49
  1319. package/source/class/qx/ui/style/Stylesheet.js +12 -19
  1320. package/source/class/qx/ui/table/ICellEditorFactory.js +4 -8
  1321. package/source/class/qx/ui/table/ICellRenderer.js +3 -7
  1322. package/source/class/qx/ui/table/IColumnMenuButton.js +6 -11
  1323. package/source/class/qx/ui/table/IColumnMenuItem.js +5 -8
  1324. package/source/class/qx/ui/table/IHeaderRenderer.js +4 -8
  1325. package/source/class/qx/ui/table/IRowRenderer.js +6 -12
  1326. package/source/class/qx/ui/table/ITableModel.js +23 -41
  1327. package/source/class/qx/ui/table/MTableContextMenu.js +25 -28
  1328. package/source/class/qx/ui/table/Table.js +573 -743
  1329. package/source/class/qx/ui/table/celleditor/AbstractField.js +16 -26
  1330. package/source/class/qx/ui/table/celleditor/CheckBox.js +15 -16
  1331. package/source/class/qx/ui/table/celleditor/ComboBox.js +24 -34
  1332. package/source/class/qx/ui/table/celleditor/Dynamic.js +25 -32
  1333. package/source/class/qx/ui/table/celleditor/PasswordField.js +4 -8
  1334. package/source/class/qx/ui/table/celleditor/SelectBox.js +29 -38
  1335. package/source/class/qx/ui/table/celleditor/TextField.js +9 -14
  1336. package/source/class/qx/ui/table/cellrenderer/Abstract.js +79 -72
  1337. package/source/class/qx/ui/table/cellrenderer/AbstractImage.js +71 -86
  1338. package/source/class/qx/ui/table/cellrenderer/Boolean.js +36 -50
  1339. package/source/class/qx/ui/table/cellrenderer/Conditional.js +74 -63
  1340. package/source/class/qx/ui/table/cellrenderer/Date.js +12 -22
  1341. package/source/class/qx/ui/table/cellrenderer/Debug.js +9 -9
  1342. package/source/class/qx/ui/table/cellrenderer/Default.js +30 -52
  1343. package/source/class/qx/ui/table/cellrenderer/Dynamic.js +13 -24
  1344. package/source/class/qx/ui/table/cellrenderer/Html.js +6 -8
  1345. package/source/class/qx/ui/table/cellrenderer/Image.js +13 -26
  1346. package/source/class/qx/ui/table/cellrenderer/Number.js +13 -24
  1347. package/source/class/qx/ui/table/cellrenderer/Password.js +8 -11
  1348. package/source/class/qx/ui/table/cellrenderer/Replace.js +27 -42
  1349. package/source/class/qx/ui/table/cellrenderer/String.js +5 -7
  1350. package/source/class/qx/ui/table/columnmenu/Button.js +19 -29
  1351. package/source/class/qx/ui/table/columnmenu/MenuItem.js +11 -19
  1352. package/source/class/qx/ui/table/columnmenu/__init__.js +4 -4
  1353. package/source/class/qx/ui/table/columnmenu/grid/__init__.js +4 -4
  1354. package/source/class/qx/ui/table/columnmenu/simple/__init__.js +4 -4
  1355. package/source/class/qx/ui/table/columnmodel/Basic.js +193 -215
  1356. package/source/class/qx/ui/table/columnmodel/Resize.js +65 -111
  1357. package/source/class/qx/ui/table/columnmodel/resizebehavior/Abstract.js +17 -24
  1358. package/source/class/qx/ui/table/columnmodel/resizebehavior/Default.js +66 -117
  1359. package/source/class/qx/ui/table/headerrenderer/Default.js +25 -46
  1360. package/source/class/qx/ui/table/headerrenderer/HeaderCell.js +39 -51
  1361. package/source/class/qx/ui/table/headerrenderer/Icon.js +11 -27
  1362. package/source/class/qx/ui/table/model/Abstract.js +52 -62
  1363. package/source/class/qx/ui/table/model/Filtered.js +121 -153
  1364. package/source/class/qx/ui/table/model/Remote.js +166 -271
  1365. package/source/class/qx/ui/table/model/Simple.js +215 -250
  1366. package/source/class/qx/ui/table/pane/CellEvent.js +25 -32
  1367. package/source/class/qx/ui/table/pane/Clipper.js +8 -12
  1368. package/source/class/qx/ui/table/pane/FocusIndicator.js +42 -48
  1369. package/source/class/qx/ui/table/pane/Header.js +48 -86
  1370. package/source/class/qx/ui/table/pane/Model.js +80 -97
  1371. package/source/class/qx/ui/table/pane/Pane.js +129 -189
  1372. package/source/class/qx/ui/table/pane/Scroller.js +542 -663
  1373. package/source/class/qx/ui/table/rowrenderer/Default.js +76 -87
  1374. package/source/class/qx/ui/table/selection/Manager.js +23 -57
  1375. package/source/class/qx/ui/table/selection/Model.js +89 -179
  1376. package/source/class/qx/ui/tabview/Page.js +69 -74
  1377. package/source/class/qx/ui/tabview/TabButton.js +45 -72
  1378. package/source/class/qx/ui/tabview/TabView.js +96 -140
  1379. package/source/class/qx/ui/toolbar/Button.js +13 -43
  1380. package/source/class/qx/ui/toolbar/CheckBox.js +12 -43
  1381. package/source/class/qx/ui/toolbar/MenuButton.js +18 -34
  1382. package/source/class/qx/ui/toolbar/Part.js +42 -64
  1383. package/source/class/qx/ui/toolbar/PartContainer.js +19 -28
  1384. package/source/class/qx/ui/toolbar/RadioButton.js +29 -15
  1385. package/source/class/qx/ui/toolbar/Separator.js +15 -25
  1386. package/source/class/qx/ui/toolbar/SplitButton.js +18 -55
  1387. package/source/class/qx/ui/toolbar/ToolBar.js +185 -232
  1388. package/source/class/qx/ui/tooltip/Manager.js +125 -123
  1389. package/source/class/qx/ui/tooltip/ToolTip.js +49 -79
  1390. package/source/class/qx/ui/tooltip/__init__.js +23 -23
  1391. package/source/class/qx/ui/tree/Tree.js +95 -148
  1392. package/source/class/qx/ui/tree/TreeFile.js +8 -15
  1393. package/source/class/qx/ui/tree/TreeFolder.js +8 -15
  1394. package/source/class/qx/ui/tree/VirtualTree.js +207 -333
  1395. package/source/class/qx/ui/tree/VirtualTreeItem.js +30 -45
  1396. package/source/class/qx/ui/tree/__init__.js +50 -50
  1397. package/source/class/qx/ui/tree/core/AbstractItem.js +98 -152
  1398. package/source/class/qx/ui/tree/core/AbstractTreeItem.js +83 -137
  1399. package/source/class/qx/ui/tree/core/FolderOpenButton.js +15 -34
  1400. package/source/class/qx/ui/tree/core/IVirtualTree.js +13 -33
  1401. package/source/class/qx/ui/tree/core/IVirtualTreeDelegate.js +9 -16
  1402. package/source/class/qx/ui/tree/core/MWidgetController.js +58 -69
  1403. package/source/class/qx/ui/tree/core/OpenCloseController.js +29 -35
  1404. package/source/class/qx/ui/tree/core/Util.js +12 -16
  1405. package/source/class/qx/ui/tree/provider/IVirtualTreeProvider.js +10 -23
  1406. package/source/class/qx/ui/tree/provider/WidgetProvider.js +39 -67
  1407. package/source/class/qx/ui/tree/selection/SelectionManager.js +27 -41
  1408. package/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js +2 -3
  1409. package/source/class/qx/ui/treevirtual/MFamily.js +26 -63
  1410. package/source/class/qx/ui/treevirtual/MNode.js +43 -103
  1411. package/source/class/qx/ui/treevirtual/MTreePrimitive.js +41 -52
  1412. package/source/class/qx/ui/treevirtual/SelectionManager.js +44 -58
  1413. package/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js +172 -229
  1414. package/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +256 -367
  1415. package/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js +8 -18
  1416. package/source/class/qx/ui/treevirtual/TreeVirtual.js +155 -250
  1417. package/source/class/qx/ui/treevirtual/celleditor/NodeEditor.js +10 -16
  1418. package/source/class/qx/ui/treevirtual/pane/Scroller.js +14 -11
  1419. package/source/class/qx/ui/virtual/__init__.js +4 -4
  1420. package/source/class/qx/ui/virtual/behavior/Prefetch.js +71 -86
  1421. package/source/class/qx/ui/virtual/cell/Abstract.js +18 -27
  1422. package/source/class/qx/ui/virtual/cell/AbstractImage.js +42 -51
  1423. package/source/class/qx/ui/virtual/cell/AbstractWidget.js +25 -49
  1424. package/source/class/qx/ui/virtual/cell/Boolean.js +31 -44
  1425. package/source/class/qx/ui/virtual/cell/Cell.js +143 -183
  1426. package/source/class/qx/ui/virtual/cell/CellStylesheet.js +31 -38
  1427. package/source/class/qx/ui/virtual/cell/Date.js +15 -24
  1428. package/source/class/qx/ui/virtual/cell/Html.js +9 -20
  1429. package/source/class/qx/ui/virtual/cell/ICell.js +4 -6
  1430. package/source/class/qx/ui/virtual/cell/IWidgetCell.js +7 -12
  1431. package/source/class/qx/ui/virtual/cell/IWidgetCellDelegate.js +4 -6
  1432. package/source/class/qx/ui/virtual/cell/Image.js +8 -14
  1433. package/source/class/qx/ui/virtual/cell/Number.js +14 -23
  1434. package/source/class/qx/ui/virtual/cell/String.js +11 -20
  1435. package/source/class/qx/ui/virtual/cell/WidgetCell.js +13 -16
  1436. package/source/class/qx/ui/virtual/cell/__init__.js +4 -4
  1437. package/source/class/qx/ui/virtual/core/Axis.js +75 -103
  1438. package/source/class/qx/ui/virtual/core/CellEvent.js +23 -31
  1439. package/source/class/qx/ui/virtual/core/IHtmlCellProvider.js +4 -6
  1440. package/source/class/qx/ui/virtual/core/ILayer.js +5 -15
  1441. package/source/class/qx/ui/virtual/core/IWidgetCellProvider.js +5 -7
  1442. package/source/class/qx/ui/virtual/core/Pane.js +199 -242
  1443. package/source/class/qx/ui/virtual/core/Scroller.js +25 -43
  1444. package/source/class/qx/ui/virtual/layer/Abstract.js +44 -83
  1445. package/source/class/qx/ui/virtual/layer/AbstractBackground.js +47 -68
  1446. package/source/class/qx/ui/virtual/layer/CellSpanManager.js +74 -96
  1447. package/source/class/qx/ui/virtual/layer/Column.js +26 -36
  1448. package/source/class/qx/ui/virtual/layer/GridLines.js +43 -70
  1449. package/source/class/qx/ui/virtual/layer/HtmlCell.js +34 -32
  1450. package/source/class/qx/ui/virtual/layer/HtmlCellSpan.js +54 -56
  1451. package/source/class/qx/ui/virtual/layer/Row.js +28 -36
  1452. package/source/class/qx/ui/virtual/layer/WidgetCell.js +87 -123
  1453. package/source/class/qx/ui/virtual/layer/WidgetCellSpan.js +123 -124
  1454. package/source/class/qx/ui/virtual/selection/Abstract.js +26 -54
  1455. package/source/class/qx/ui/virtual/selection/CellLines.js +11 -21
  1456. package/source/class/qx/ui/virtual/selection/CellRectangle.js +45 -73
  1457. package/source/class/qx/ui/virtual/selection/Column.js +16 -35
  1458. package/source/class/qx/ui/virtual/selection/ISelectionDelegate.js +5 -9
  1459. package/source/class/qx/ui/virtual/selection/MModel.js +84 -122
  1460. package/source/class/qx/ui/virtual/selection/Row.js +29 -61
  1461. package/source/class/qx/ui/website/Accordion.js +39 -42
  1462. package/source/class/qx/ui/website/Button.js +17 -25
  1463. package/source/class/qx/ui/website/Calendar.js +243 -172
  1464. package/source/class/qx/ui/website/Carousel.js +169 -155
  1465. package/source/class/qx/ui/website/DatePicker.js +99 -85
  1466. package/source/class/qx/ui/website/Rating.js +35 -53
  1467. package/source/class/qx/ui/website/Slider.js +174 -153
  1468. package/source/class/qx/ui/website/Table.js +482 -456
  1469. package/source/class/qx/ui/website/Tabs.js +225 -180
  1470. package/source/class/qx/ui/website/Widget.js +39 -52
  1471. package/source/class/qx/ui/window/Desktop.js +14 -12
  1472. package/source/class/qx/ui/window/IDesktop.js +8 -10
  1473. package/source/class/qx/ui/window/IWindowManager.js +7 -9
  1474. package/source/class/qx/ui/window/MDesktop.js +34 -62
  1475. package/source/class/qx/ui/window/Manager.js +31 -57
  1476. package/source/class/qx/ui/window/Window.js +256 -349
  1477. package/source/class/qx/util/AliasManager.js +23 -42
  1478. package/source/class/qx/util/Animation.js +248 -191
  1479. package/source/class/qx/util/Base64.js +144 -89
  1480. package/source/class/qx/util/ColorUtil.js +253 -287
  1481. package/source/class/qx/util/DeferredCall.js +21 -30
  1482. package/source/class/qx/util/DeferredCallManager.js +23 -44
  1483. package/source/class/qx/util/Delegate.js +4 -10
  1484. package/source/class/qx/util/DisposeUtil.js +76 -70
  1485. package/source/class/qx/util/DynamicScriptLoader.js +83 -66
  1486. package/source/class/qx/util/EditDistance.js +64 -58
  1487. package/source/class/qx/util/ExtendedColor.js +157 -163
  1488. package/source/class/qx/util/Function.js +8 -8
  1489. package/source/class/qx/util/LibraryManager.js +11 -18
  1490. package/source/class/qx/util/OOUtil.js +17 -36
  1491. package/source/class/qx/util/ObjectPool.js +19 -45
  1492. package/source/class/qx/util/Permutation.js +9 -16
  1493. package/source/class/qx/util/PropertyUtil.js +58 -70
  1494. package/source/class/qx/util/Request.js +27 -16
  1495. package/source/class/qx/util/ResourceManager.js +103 -104
  1496. package/source/class/qx/util/ResponseParser.js +14 -21
  1497. package/source/class/qx/util/RingBuffer.js +46 -48
  1498. package/source/class/qx/util/Serializer.js +103 -68
  1499. package/source/class/qx/util/StringBuilder.js +11 -22
  1500. package/source/class/qx/util/StringEscape.js +15 -29
  1501. package/source/class/qx/util/StringSplit.js +18 -21
  1502. package/source/class/qx/util/TimerManager.js +61 -70
  1503. package/source/class/qx/util/Uri.js +42 -30
  1504. package/source/class/qx/util/Uuid.js +50 -35
  1505. package/source/class/qx/util/Validate.js +88 -73
  1506. package/source/class/qx/util/ValueManager.js +17 -29
  1507. package/source/class/qx/util/Wheel.js +22 -16
  1508. package/source/class/qx/util/format/DateFormat.js +853 -763
  1509. package/source/class/qx/util/format/IFormat.js +4 -8
  1510. package/source/class/qx/util/format/NumberFormat.js +84 -91
  1511. package/source/class/qx/util/fsm/FiniteStateMachine.js +323 -382
  1512. package/source/class/qx/util/fsm/State.js +210 -249
  1513. package/source/class/qx/util/fsm/Transition.js +138 -160
  1514. package/source/class/qx/util/placement/AbstractAxis.js +12 -14
  1515. package/source/class/qx/util/placement/BestFitAxis.js +5 -8
  1516. package/source/class/qx/util/placement/DirectAxis.js +5 -7
  1517. package/source/class/qx/util/placement/KeepAlignAxis.js +8 -14
  1518. package/source/class/qx/util/placement/Placement.js +39 -56
  1519. package/source/class/qx/util/placement/__init__.js +4 -4
  1520. package/source/class/qx/xml/Document.js +21 -34
  1521. package/source/class/qx/xml/Element.js +90 -73
  1522. package/source/class/qx/xml/String.js +15 -21
  1523. package/source/class/qxWeb.js +104 -69
  1524. package/source/resource/qx/decoration/Indigo/font/JosefinSlab-SemiBold.ttf +0 -0
  1525. package/source/resource/qx/decoration/Indigo/font/SIL Open Font License 1.1.txt +0 -0
  1526. package/source/resource/qx/iconfont/MaterialIcons/fetch-fonts.sh +0 -0
  1527. package/source/resource/qx/mobile/js/iscroll.js +1328 -982
  1528. package/source/resource/qx/mobile/js/iscroll.min.js +1081 -1
  1529. package/source/resource/qx/mobile/scss/common/_gradients.scss +3 -1
  1530. package/source/resource/qx/mobile/scss/theme/indigo/_styles.scss +1 -1
  1531. package/source/resource/qx/mobile/scss/ui/_carousel.scss +2 -2
  1532. package/source/resource/qx/mobile/scss/ui/_checkbox.scss +3 -3
  1533. package/source/resource/qx/mobile/scss/ui/_collapsible.scss +2 -2
  1534. package/source/resource/qx/mobile/scss/ui/_picker.scss +4 -4
  1535. package/source/resource/qx/mobile/scss/ui/_radiobutton.scss +4 -4
  1536. package/source/resource/qx/mobile/scss/ui/_slider.scss +7 -7
  1537. package/source/resource/qx/scss/_gradients.scss +3 -1
  1538. package/source/resource/qx/scss/_mixins.scss +4 -2
  1539. package/source/resource/qx/test/dynamicscriptloader/first.js +1 -1
  1540. package/source/resource/qx/test/dynamicscriptloader/second.js +1 -1
  1541. package/source/resource/qx/test/dynamicscriptloader/third.js +1 -1
  1542. package/source/resource/qx/test/script.js +1 -1
  1543. package/source/resource/qx/test/webworker.js +2 -2
  1544. package/source/resource/qx/tool/bin/build-devtools +0 -0
  1545. package/source/resource/qx/tool/bin/build-website +0 -0
  1546. package/source/resource/qx/tool/bin/download-assets +0 -0
  1547. package/source/resource/qx/tool/cli/templates/loader/loader-node.tmpl.js +3 -1
  1548. package/source/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/_styles.scss +1 -1
  1549. package/source/resource/qx/tool/cli/templates/template_vars.js +1 -1
  1550. package/source/resource/qx/tool/loadsass.js +16 -21
  1551. package/source/resource/qx/tool/schema/Manifest-1-0-0.json +1 -2
  1552. package/source/resource/qx/tool/schema/Manifest-2-0-0.json +1 -2
  1553. package/source/resource/qx/tool/schema/compile-1-0-0.json +16 -20
  1554. package/source/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
  1555. package/source/resource/qx/tool/website/build/assets/buttons.js +391 -1
  1556. package/source/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
  1557. package/source/resource/qx/tool/website/build/assets/jquery.js +5452 -3
  1558. package/source/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
  1559. package/source/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
  1560. package/source/resource/qx/tool/website/build/scripts/serve.js +87 -66
  1561. package/source/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
  1562. package/source/resource/qx/tool/website/src/assets/buttons.js +391 -1
  1563. package/source/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
  1564. package/source/resource/qx/tool/website/src/assets/jquery.js +5452 -3
  1565. package/source/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
  1566. package/source/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
  1567. package/source/resource/qx/tool/website/src/scripts/serve.js +87 -66
  1568. package/source/resource/qx/website/scss/ui/_carousel.scss +2 -2
  1569. package/source/translation/hr.po +297 -0
  1570. package/lib/resource/qx/static/blank.gif +0 -0
  1571. package/lib/resource/qx/tool/website/.gitignore +0 -2
  1572. package/source/class/qx/io/remote/Exchange.js +0 -1063
  1573. package/source/class/qx/io/remote/Request.js +0 -1021
  1574. package/source/class/qx/io/remote/RequestQueue.js +0 -521
  1575. package/source/class/qx/io/remote/Response.js +0 -137
  1576. package/source/class/qx/io/remote/Rpc.js +0 -1075
  1577. package/source/class/qx/io/remote/RpcError.js +0 -198
  1578. package/source/class/qx/io/remote/__init__.js +0 -88
  1579. package/source/class/qx/io/remote/transport/Abstract.js +0 -513
  1580. package/source/class/qx/io/remote/transport/Iframe.js +0 -652
  1581. package/source/class/qx/io/remote/transport/Script.js +0 -475
  1582. package/source/class/qx/io/remote/transport/XmlHttp.js +0 -1019
  1583. package/source/class/qx/io/remote/transport/__init__.js +0 -3
  1584. package/source/class/qx/io/request/auth/.gitignore +0 -0
  1585. package/source/class/qx/test/bom/client/.gitignore +0 -0
  1586. package/source/class/qx/test/io/remote/AbstractRequest.js +0 -150
  1587. package/source/class/qx/test/io/remote/RequestIframe.js +0 -105
  1588. package/source/class/qx/test/io/remote/RequestXhr.js +0 -151
  1589. package/source/class/qx/test/io/remote/Rpc.js +0 -205
  1590. package/source/class/qx/test/io/remote/__init__.js +0 -4
  1591. package/source/class/qx/test/io/remote/transport/Iframe.js +0 -67
  1592. package/source/class/qx/test/io/remote/transport/XmlHttp.js +0 -133
  1593. package/source/class/qx/test/io/remote/transport/__init__.js +0 -4
  1594. package/source/class/qx/test/ui/control/.gitignore +0 -0
  1595. package/source/resource/qx/decoration/Modern/treevirtual/.gitignore +0 -0
  1596. package/source/resource/qx/mobile/css/.gitignore +0 -3
  1597. package/source/resource/qx/tool/website/.gitignore +0 -2
  1598. package/source/resource/qx/website/.gitignore +0 -1
  1599. package/source/resource/qx/website/scss/.gitignore +0 -1
@@ -27,12 +27,9 @@
27
27
  * @childControl statusbar {qx.ui.basic.Label} label to show the status of the table
28
28
  * @childControl column-button {qx.ui.table.columnmenu.Button} button to open the column menu
29
29
  */
30
- qx.Class.define("qx.ui.table.Table",
31
- {
32
- extend : qx.ui.core.Widget,
33
- include : qx.ui.core.MDragDropScrolling,
34
-
35
-
30
+ qx.Class.define("qx.ui.table.Table", {
31
+ extend: qx.ui.core.Widget,
32
+ include: qx.ui.core.MDragDropScrolling,
36
33
 
37
34
  /*
38
35
  *****************************************************************************
@@ -123,14 +120,13 @@ qx.Class.define("qx.ui.table.Table",
123
120
  * </pre></dd>
124
121
  * </dl>
125
122
  */
126
- construct : function(tableModel, custom)
127
- {
128
- this.base(arguments);
123
+ construct(tableModel, custom) {
124
+ super();
129
125
  //
130
126
  // Use default objects if custom objects are not specified
131
127
  //
132
128
  if (!custom) {
133
- custom = { };
129
+ custom = {};
134
130
  }
135
131
 
136
132
  if (custom.initiallyHiddenColumns) {
@@ -172,8 +168,11 @@ qx.Class.define("qx.ui.table.Table",
172
168
  this._setLayout(new qx.ui.layout.VBox());
173
169
 
174
170
  // Create the child widgets
175
- this.__scrollerParent = new qx.ui.container.Composite(new qx.ui.layout.HBox());
176
- this._add(this.__scrollerParent, {flex: 1});
171
+ this.__scrollerParent = new qx.ui.container.Composite(
172
+ new qx.ui.layout.HBox()
173
+ );
174
+
175
+ this._add(this.__scrollerParent, { flex: 1 });
177
176
 
178
177
  // Allocate a default data row renderer
179
178
  this.setDataRowRenderer(new qx.ui.table.rowrenderer.Default(this));
@@ -184,7 +183,7 @@ qx.Class.define("qx.ui.table.Table",
184
183
  this.setTableModel(tableModel || this.getEmptyTableModel());
185
184
 
186
185
  // create the main meta column
187
- this.setMetaColumnCounts([ -1 ]);
186
+ this.setMetaColumnCounts([-1]);
188
187
 
189
188
  // Make focusable
190
189
  this.setTabIndex(1);
@@ -197,6 +196,7 @@ qx.Class.define("qx.ui.table.Table",
197
196
  var spacer = new qx.ui.core.Widget().set({
198
197
  height: 0
199
198
  });
199
+
200
200
  this._add(spacer);
201
201
  spacer.addListener("resize", this._onResize, this);
202
202
 
@@ -205,23 +205,26 @@ qx.Class.define("qx.ui.table.Table",
205
205
 
206
206
  // add an event listener which updates the table content on locale change
207
207
  if (qx.core.Environment.get("qx.dynlocale")) {
208
- qx.locale.Manager.getInstance().addListener("changeLocale", this._onChangeLocale, this);
208
+ qx.locale.Manager.getInstance().addListener(
209
+ "changeLocale",
210
+ this._onChangeLocale,
211
+ this
212
+ );
209
213
  }
210
214
 
211
215
  this.initStatusBarVisible();
212
216
 
213
217
  // If the table model has an init() method...
214
218
  tableModel = this.getTableModel();
215
- if (tableModel.init && typeof(tableModel.init) == "function")
216
- {
219
+ if (tableModel.init && typeof tableModel.init == "function") {
217
220
  // ... then call it now to allow the table model to affect table
218
221
  // properties.
219
222
  tableModel.init(this);
220
223
  }
221
- },
222
-
223
-
224
224
 
225
+ // ARIA attrs
226
+ this.getContentElement().setAttribute("role", "grid");
227
+ },
225
228
 
226
229
  /*
227
230
  *****************************************************************************
@@ -229,15 +232,14 @@ qx.Class.define("qx.ui.table.Table",
229
232
  *****************************************************************************
230
233
  */
231
234
 
232
- events :
233
- {
235
+ events: {
234
236
  /**
235
237
  * Dispatched before adding the column list to the column visibility menu.
236
238
  * The event data is a map with two properties: table and menu. Listeners
237
239
  * may add additional items to the menu, which appear at the top of the
238
240
  * menu.
239
241
  */
240
- "columnVisibilityMenuCreateStart" : "qx.event.type.Data",
242
+ columnVisibilityMenuCreateStart: "qx.event.type.Data",
241
243
 
242
244
  /**
243
245
  * Dispatched after adding the column list to the column visibility menu.
@@ -245,34 +247,34 @@ qx.Class.define("qx.ui.table.Table",
245
247
  * may add additional items to the menu, which appear at the bottom of the
246
248
  * menu.
247
249
  */
248
- "columnVisibilityMenuCreateEnd" : "qx.event.type.Data",
250
+ columnVisibilityMenuCreateEnd: "qx.event.type.Data",
249
251
 
250
- /**
251
- * Dispatched when the width of the table has changed.
252
- */
253
- "tableWidthChanged" : "qx.event.type.Event",
252
+ /**
253
+ * Dispatched when the width of the table has changed.
254
+ */
255
+ tableWidthChanged: "qx.event.type.Event",
254
256
 
255
257
  /**
256
258
  * Dispatched when updating scrollbars discovers that a vertical scrollbar
257
259
  * is needed when it previously was not, or vice versa. The data is a
258
260
  * boolean indicating whether a vertical scrollbar is now being used.
259
261
  */
260
- "verticalScrollBarChanged" : "qx.event.type.Data",
262
+ verticalScrollBarChanged: "qx.event.type.Data",
261
263
 
262
264
  /**
263
265
  * Dispatched when a data cell has been tapped.
264
266
  */
265
- "cellTap" : "qx.ui.table.pane.CellEvent",
267
+ cellTap: "qx.ui.table.pane.CellEvent",
266
268
 
267
269
  /**
268
270
  * Dispatched when a data cell has been tapped.
269
271
  */
270
- "cellDbltap" : "qx.ui.table.pane.CellEvent",
272
+ cellDbltap: "qx.ui.table.pane.CellEvent",
271
273
 
272
274
  /**
273
275
  * Dispatched when the context menu is needed in a data cell
274
276
  */
275
- "cellContextmenu" : "qx.ui.table.pane.CellEvent",
277
+ cellContextmenu: "qx.ui.table.pane.CellEvent",
276
278
 
277
279
  /**
278
280
  * Dispatched after a cell editor is flushed.
@@ -285,50 +287,40 @@ qx.Class.define("qx.ui.table.Table",
285
287
  * <li>oldValue</li>
286
288
  * </ul>
287
289
  */
288
- "dataEdited" : "qx.event.type.Data"
290
+ dataEdited: "qx.event.type.Data"
289
291
  },
290
292
 
291
-
292
-
293
293
  /*
294
294
  *****************************************************************************
295
295
  STATICS
296
296
  *****************************************************************************
297
297
  */
298
298
 
299
- statics :
300
- {
299
+ statics: {
301
300
  /** Events that must be redirected to the scrollers. */
302
- __redirectEvents : { cellTap: 1, cellDbltap: 1, cellContextmenu: 1 }
301
+ __redirectEvents: { cellTap: 1, cellDbltap: 1, cellContextmenu: 1 }
303
302
  },
304
303
 
305
-
306
304
  /*
307
305
  *****************************************************************************
308
306
  PROPERTIES
309
307
  *****************************************************************************
310
308
  */
311
309
 
312
- properties :
313
- {
314
- appearance :
315
- {
316
- refine : true,
317
- init : "table"
310
+ properties: {
311
+ appearance: {
312
+ refine: true,
313
+ init: "table"
318
314
  },
319
315
 
320
-
321
- focusable :
322
- {
323
- refine : true,
324
- init : true
316
+ focusable: {
317
+ refine: true,
318
+ init: true
325
319
  },
326
320
 
327
-
328
- minWidth :
329
- {
330
- refine : true,
331
- init : 50
321
+ minWidth: {
322
+ refine: true,
323
+ init: 50
332
324
  },
333
325
 
334
326
  /**
@@ -343,9 +335,8 @@ qx.Class.define("qx.ui.table.Table",
343
335
  * non-visible columns at constructor time can therefore avoid the initial
344
336
  * creation of all of those superfluous widgets.
345
337
  */
346
- initiallyHiddenColumns :
347
- {
348
- init : null
338
+ initiallyHiddenColumns: {
339
+ init: null
349
340
  },
350
341
 
351
342
  /**
@@ -357,148 +348,123 @@ qx.Class.define("qx.ui.table.Table",
357
348
  *
358
349
  * Note: This has no effect on Table!
359
350
  */
360
- selectable :
361
- {
362
- refine : true,
363
- init : false
351
+ selectable: {
352
+ refine: true,
353
+ init: false
364
354
  },
365
355
 
366
-
367
356
  /** The selection model. */
368
- selectionModel :
369
- {
370
- check : "qx.ui.table.selection.Model",
371
- apply : "_applySelectionModel",
372
- event : "changeSelectionModel"
357
+ selectionModel: {
358
+ check: "qx.ui.table.selection.Model",
359
+ apply: "_applySelectionModel",
360
+ event: "changeSelectionModel"
373
361
  },
374
362
 
375
-
376
363
  /** The table model. */
377
- tableModel :
378
- {
379
- check : "qx.ui.table.ITableModel",
380
- apply : "_applyTableModel",
381
- event : "changeTableModel"
364
+ tableModel: {
365
+ check: "qx.ui.table.ITableModel",
366
+ apply: "_applyTableModel",
367
+ event: "changeTableModel"
382
368
  },
383
369
 
384
-
385
370
  /** The height of the table rows. */
386
- rowHeight :
387
- {
388
- check : "Number",
389
- init : 20,
390
- apply : "_applyRowHeight",
391
- event : "changeRowHeight",
392
- themeable : true
371
+ rowHeight: {
372
+ check: "Number",
373
+ init: 20,
374
+ apply: "_applyRowHeight",
375
+ event: "changeRowHeight",
376
+ themeable: true
393
377
  },
394
378
 
395
-
396
379
  /**
397
380
  * Force line height to match row height. May be disabled if cell
398
381
  * renderers being used wish to render multiple lines of data within a
399
382
  * cell. (With the default setting, all but the first of multiple lines
400
383
  * of data will not be visible.)
401
384
  */
402
- forceLineHeight :
403
- {
404
- check : "Boolean",
405
- init : true
385
+ forceLineHeight: {
386
+ check: "Boolean",
387
+ init: true
406
388
  },
407
389
 
408
-
409
390
  /**
410
391
  * Whether the header cells are visible. When setting this to false,
411
392
  * you'll likely also want to set the {#columnVisibilityButtonVisible}
412
393
  * property to false as well, to entirely remove the header row.
413
394
  */
414
- headerCellsVisible :
415
- {
416
- check : "Boolean",
417
- init : true,
418
- apply : "_applyHeaderCellsVisible",
419
- themeable : true
395
+ headerCellsVisible: {
396
+ check: "Boolean",
397
+ init: true,
398
+ apply: "_applyHeaderCellsVisible",
399
+ themeable: true
420
400
  },
421
401
 
422
-
423
402
  /** The height of the header cells. */
424
- headerCellHeight :
425
- {
426
- check : "Integer",
427
- init : 16,
428
- apply : "_applyHeaderCellHeight",
429
- event : "changeHeaderCellHeight",
430
- nullable : true,
431
- themeable : true
403
+ headerCellHeight: {
404
+ check: "Integer",
405
+ init: 16,
406
+ apply: "_applyHeaderCellHeight",
407
+ event: "changeHeaderCellHeight",
408
+ nullable: true,
409
+ themeable: true
432
410
  },
433
411
 
434
-
435
412
  /** Whether to show the status bar */
436
- statusBarVisible :
437
- {
438
- check : "Boolean",
439
- init : true,
440
- apply : "_applyStatusBarVisible"
413
+ statusBarVisible: {
414
+ check: "Boolean",
415
+ init: true,
416
+ apply: "_applyStatusBarVisible"
441
417
  },
442
418
 
443
-
444
419
  /** The Statusbartext, set it, if you want some more Information */
445
- additionalStatusBarText :
446
- {
447
- nullable : true,
448
- init : null,
449
- apply : "_applyAdditionalStatusBarText"
420
+ additionalStatusBarText: {
421
+ nullable: true,
422
+ init: null,
423
+ apply: "_applyAdditionalStatusBarText"
450
424
  },
451
425
 
452
-
453
426
  /** Whether to show the column visibility button */
454
- columnVisibilityButtonVisible :
455
- {
456
- check : "Boolean",
457
- init : true,
458
- apply : "_applyColumnVisibilityButtonVisible",
459
- themeable : true
427
+ columnVisibilityButtonVisible: {
428
+ check: "Boolean",
429
+ init: true,
430
+ apply: "_applyColumnVisibilityButtonVisible",
431
+ themeable: true
460
432
  },
461
433
 
462
-
463
434
  /**
464
435
  * @type {Integer[]} The number of columns per meta column. If the last array entry is -1,
465
436
  * this meta column will get the remaining columns.
466
437
  */
467
- metaColumnCounts :
468
- {
469
- check : "Object",
470
- apply : "_applyMetaColumnCounts"
438
+ metaColumnCounts: {
439
+ check: "Object",
440
+ apply: "_applyMetaColumnCounts"
471
441
  },
472
442
 
473
-
474
443
  /**
475
444
  * Whether the focus should moved when the pointer is moved over a cell. If false
476
445
  * the focus is only moved on pointer taps.
477
446
  */
478
- focusCellOnPointerMove :
479
- {
480
- check : "Boolean",
481
- init : false,
482
- apply : "_applyFocusCellOnPointerMove"
447
+ focusCellOnPointerMove: {
448
+ check: "Boolean",
449
+ init: false,
450
+ apply: "_applyFocusCellOnPointerMove"
483
451
  },
484
452
 
485
453
  /**
486
454
  * Whether row focus change by keyboard also modifies selection
487
455
  */
488
- rowFocusChangeModifiesSelection :
489
- {
490
- check : "Boolean",
491
- init : true
456
+ rowFocusChangeModifiesSelection: {
457
+ check: "Boolean",
458
+ init: true
492
459
  },
493
460
 
494
461
  /**
495
462
  * Whether the cell focus indicator should be shown
496
463
  */
497
- showCellFocusIndicator :
498
- {
499
- check : "Boolean",
500
- init : true,
501
- apply : "_applyShowCellFocusIndicator"
464
+ showCellFocusIndicator: {
465
+ check: "Boolean",
466
+ init: true,
467
+ apply: "_applyShowCellFocusIndicator"
502
468
  },
503
469
 
504
470
  /**
@@ -510,37 +476,32 @@ qx.Class.define("qx.ui.table.Table",
510
476
  * in the event data will be null, so event handlers can check (row ===
511
477
  * null) to handle this case.
512
478
  */
513
- contextMenuFromDataCellsOnly :
514
- {
515
- check : "Boolean",
516
- init : true,
517
- apply : "_applyContextMenuFromDataCellsOnly"
479
+ contextMenuFromDataCellsOnly: {
480
+ check: "Boolean",
481
+ init: true,
482
+ apply: "_applyContextMenuFromDataCellsOnly"
518
483
  },
519
484
 
520
485
  /**
521
486
  * Whether the table should keep the first visible row complete. If set to false,
522
487
  * the first row may be rendered partial, depending on the vertical scroll value.
523
488
  */
524
- keepFirstVisibleRowComplete :
525
- {
526
- check : "Boolean",
527
- init : true,
528
- apply : "_applyKeepFirstVisibleRowComplete"
489
+ keepFirstVisibleRowComplete: {
490
+ check: "Boolean",
491
+ init: true,
492
+ apply: "_applyKeepFirstVisibleRowComplete"
529
493
  },
530
494
 
531
-
532
495
  /**
533
496
  * Whether the table cells should be updated when only the selection or the
534
497
  * focus changed. This slows down the table update but allows to react on a
535
498
  * changed selection or a changed focus in a cell renderer.
536
499
  */
537
- alwaysUpdateCells :
538
- {
539
- check : "Boolean",
540
- init : false
500
+ alwaysUpdateCells: {
501
+ check: "Boolean",
502
+ init: false
541
503
  },
542
504
 
543
-
544
505
  /**
545
506
  * Whether to reset the selection when a header cell is tapped. Since
546
507
  * most data models do not have provisions to retain a selection after
@@ -548,23 +509,20 @@ qx.Class.define("qx.ui.table.Table",
548
509
  * models, however, do have the capability to retain the selection, so
549
510
  * when using those, this property should be set to false.
550
511
  */
551
- resetSelectionOnHeaderTap :
552
- {
553
- check : "Boolean",
554
- init : true,
555
- apply : "_applyResetSelectionOnHeaderTap"
512
+ resetSelectionOnHeaderTap: {
513
+ check: "Boolean",
514
+ init: true,
515
+ apply: "_applyResetSelectionOnHeaderTap"
556
516
  },
557
517
 
558
-
559
518
  /**
560
519
  * Whether to reset the selection when the unpopulated table area is tapped.
561
520
  * The default is false which keeps the behaviour as before
562
521
  */
563
- resetSelectionOnTapBelowRows :
564
- {
565
- check : "Boolean",
566
- init : false,
567
- apply : "_applyResetSelectionOnTapBelowRows"
522
+ resetSelectionOnTapBelowRows: {
523
+ check: "Boolean",
524
+ init: false,
525
+ apply: "_applyResetSelectionOnTapBelowRows"
568
526
  },
569
527
 
570
528
  /**
@@ -577,17 +535,14 @@ qx.Class.define("qx.ui.table.Table",
577
535
  apply: "_applyMinCellEditHeight"
578
536
  },
579
537
 
580
-
581
538
  /** The renderer to use for styling the rows. */
582
- dataRowRenderer :
583
- {
584
- check : "qx.ui.table.IRowRenderer",
585
- init : null,
586
- nullable : true,
587
- event : "changeDataRowRenderer"
539
+ dataRowRenderer: {
540
+ check: "qx.ui.table.IRowRenderer",
541
+ init: null,
542
+ nullable: true,
543
+ event: "changeDataRowRenderer"
588
544
  },
589
545
 
590
-
591
546
  /**
592
547
  * A function to call when before modal cell editor is opened.
593
548
  *
@@ -602,211 +557,179 @@ qx.Class.define("qx.ui.table.Table",
602
557
  * col, row, xPos, value
603
558
  *
604
559
  */
605
- modalCellEditorPreOpenFunction :
606
- {
607
- check : "Function",
608
- init : null,
609
- nullable : true
560
+ modalCellEditorPreOpenFunction: {
561
+ check: "Function",
562
+ init: null,
563
+ nullable: true
610
564
  },
611
565
 
612
-
613
566
  /**
614
567
  * By default, all Scrollers' (meta-columns') horizontal scrollbars are
615
568
  * shown if any one is required. Allow not showing any that are not
616
569
  * required.
617
570
  */
618
- excludeScrollerScrollbarsIfNotNeeded :
619
- {
620
- check : "Boolean",
621
- init : false,
622
- nullable : false
571
+ excludeScrollerScrollbarsIfNotNeeded: {
572
+ check: "Boolean",
573
+ init: false,
574
+ nullable: false
623
575
  },
624
576
 
625
-
626
577
  /**
627
578
  * A function to instantiate a new column menu button.
628
579
  */
629
- newColumnMenu :
630
- {
631
- check : "Function",
632
- init : function() {
580
+ newColumnMenu: {
581
+ check: "Function",
582
+ init() {
633
583
  return new qx.ui.table.columnmenu.Button();
634
584
  }
635
585
  },
636
586
 
637
-
638
587
  /**
639
588
  * A function to instantiate a selection manager. this allows subclasses of
640
589
  * Table to subclass this internal class. To take effect, this property must
641
590
  * be set before calling the Table constructor.
642
591
  */
643
- newSelectionManager :
644
- {
645
- check : "Function",
646
- init : function(obj) {
592
+ newSelectionManager: {
593
+ check: "Function",
594
+ init(obj) {
647
595
  return new qx.ui.table.selection.Manager(obj);
648
596
  }
649
597
  },
650
598
 
651
-
652
599
  /**
653
600
  * A function to instantiate a selection model. this allows subclasses of
654
601
  * Table to subclass this internal class. To take effect, this property must
655
602
  * be set before calling the Table constructor.
656
603
  */
657
- newSelectionModel :
658
- {
659
- check : "Function",
660
- init : function(obj) {
604
+ newSelectionModel: {
605
+ check: "Function",
606
+ init(obj) {
661
607
  return new qx.ui.table.selection.Model(obj);
662
608
  }
663
609
  },
664
610
 
665
-
666
611
  /**
667
612
  * A function to instantiate a table column model. This allows subclasses
668
613
  * of Table to subclass this internal class. To take effect, this
669
614
  * property must be set before calling the Table constructor.
670
615
  */
671
- newTableColumnModel :
672
- {
673
- check : "Function",
674
- init : function(table) {
616
+ newTableColumnModel: {
617
+ check: "Function",
618
+ init(table) {
675
619
  return new qx.ui.table.columnmodel.Basic(table);
676
620
  }
677
621
  },
678
622
 
679
-
680
623
  /**
681
624
  * A function to instantiate a table pane. this allows subclasses of
682
625
  * Table to subclass this internal class. To take effect, this property
683
626
  * must be set before calling the Table constructor.
684
627
  */
685
- newTablePane :
686
- {
687
- check : "Function",
688
- init : function(obj) {
628
+ newTablePane: {
629
+ check: "Function",
630
+ init(obj) {
689
631
  return new qx.ui.table.pane.Pane(obj);
690
632
  }
691
633
  },
692
634
 
693
-
694
635
  /**
695
636
  * A function to instantiate a table pane. this allows subclasses of
696
637
  * Table to subclass this internal class. To take effect, this property
697
638
  * must be set before calling the Table constructor.
698
639
  */
699
- newTablePaneHeader :
700
- {
701
- check : "Function",
702
- init : function(obj) {
640
+ newTablePaneHeader: {
641
+ check: "Function",
642
+ init(obj) {
703
643
  return new qx.ui.table.pane.Header(obj);
704
644
  }
705
645
  },
706
646
 
707
-
708
647
  /**
709
648
  * A function to instantiate a table pane scroller. this allows
710
649
  * subclasses of Table to subclass this internal class. To take effect,
711
650
  * this property must be set before calling the Table constructor.
712
651
  */
713
- newTablePaneScroller :
714
- {
715
- check : "Function",
716
- init : function(obj) {
652
+ newTablePaneScroller: {
653
+ check: "Function",
654
+ init(obj) {
717
655
  return new qx.ui.table.pane.Scroller(obj);
718
656
  }
719
657
  },
720
658
 
721
-
722
659
  /**
723
660
  * A function to instantiate a table pane model. this allows subclasses
724
661
  * of Table to subclass this internal class. To take effect, this
725
662
  * property must be set before calling the Table constructor.
726
663
  */
727
- newTablePaneModel :
728
- {
729
- check : "Function",
730
- init : function(columnModel) {
664
+ newTablePaneModel: {
665
+ check: "Function",
666
+ init(columnModel) {
731
667
  return new qx.ui.table.pane.Model(columnModel);
732
668
  }
733
669
  }
734
670
  },
735
671
 
736
-
737
-
738
-
739
672
  /*
740
673
  *****************************************************************************
741
674
  MEMBERS
742
675
  *****************************************************************************
743
676
  */
744
677
 
745
- members :
746
- {
747
- __focusedCol : null,
748
- __focusedRow : null,
749
-
750
- __scrollerParent : null,
678
+ members: {
679
+ __focusedCol: null,
680
+ __focusedRow: null,
751
681
 
752
- __selectionManager : null,
682
+ __scrollerParent: null,
753
683
 
754
- __additionalStatusBarText : null,
755
- __lastRowCount : null,
756
- __internalChange : null,
684
+ __selectionManager: null,
757
685
 
758
- __columnMenuButtons : null,
759
- __columnModel : null,
760
- __emptyTableModel : null,
686
+ __additionalStatusBarText: null,
687
+ __lastRowCount: null,
688
+ __lastColCount: null,
689
+ __internalChange: null,
761
690
 
762
- __hadVerticalScrollBar : null,
691
+ __columnMenuButtons: null,
692
+ __columnModel: null,
693
+ __emptyTableModel: null,
763
694
 
764
- __timer : null,
695
+ __hadVerticalScrollBar: null,
765
696
 
697
+ __timer: null,
766
698
 
767
699
  // overridden
768
- _createChildControlImpl : function(id, hash)
769
- {
700
+ _createChildControlImpl(id, hash) {
770
701
  var control;
771
702
 
772
- switch(id)
773
- {
774
- case "statusbar":
775
- control = new qx.ui.basic.Label();
776
- control.set(
777
- {
703
+ switch (id) {
704
+ case "statusbar":
705
+ control = new qx.ui.basic.Label();
706
+ control.set({
778
707
  allowGrowX: true
779
708
  });
780
- this._add(control);
781
- break;
782
709
 
783
- case "column-button":
784
- control = this.getNewColumnMenu()();
785
- control.set({
786
- focusable : false
787
- });
710
+ this._add(control);
711
+ break;
788
712
 
789
- // Create the initial menu too
790
- var menu = control.factory("menu", { table : this });
713
+ case "column-button":
714
+ control = this.getNewColumnMenu()();
715
+ control.set({
716
+ focusable: false
717
+ });
791
718
 
792
- // Add a listener to initialize the column menu when it becomes visible
793
- menu.addListener(
794
- "appear",
795
- this._initColumnMenu,
796
- this
797
- );
719
+ // Create the initial menu too
720
+ var menu = control.factory("menu", { table: this });
721
+
722
+ // Add a listener to initialize the column menu when it becomes visible
723
+ menu.addListener("appear", this._initColumnMenu, this);
798
724
 
799
- break;
725
+ break;
800
726
  }
801
727
 
802
- return control || this.base(arguments, id);
728
+ return control || super._createChildControlImpl(id);
803
729
  },
804
730
 
805
-
806
-
807
731
  // property modifier
808
- _applySelectionModel : function(value, old)
809
- {
732
+ _applySelectionModel(value, old) {
810
733
  this.__selectionManager.setSelectionModel(value);
811
734
 
812
735
  if (old != null) {
@@ -816,24 +739,20 @@ qx.Class.define("qx.ui.table.Table",
816
739
  value.addListener("changeSelection", this._onSelectionChanged, this);
817
740
  },
818
741
 
819
-
820
742
  // property modifier
821
- _applyRowHeight : function(value, old)
822
- {
743
+ _applyRowHeight(value, old) {
823
744
  var scrollerArr = this._getPaneScrollerArr();
824
745
 
825
- for (var i=0; i<scrollerArr.length; i++) {
746
+ for (var i = 0; i < scrollerArr.length; i++) {
826
747
  scrollerArr[i].updateVerScrollBarMaximum();
827
748
  }
828
749
  },
829
750
 
830
-
831
751
  // property modifier
832
- _applyHeaderCellsVisible : function(value, old)
833
- {
752
+ _applyHeaderCellsVisible(value, old) {
834
753
  var scrollerArr = this._getPaneScrollerArr();
835
754
 
836
- for (var i=0; i<scrollerArr.length; i++) {
755
+ for (var i = 0; i < scrollerArr.length; i++) {
837
756
  if (value) {
838
757
  scrollerArr[i]._showChildControl("header");
839
758
  } else {
@@ -841,43 +760,37 @@ qx.Class.define("qx.ui.table.Table",
841
760
  }
842
761
  }
843
762
  // also hide the column visibility button
844
- if(this.getColumnVisibilityButtonVisible()) {
763
+ if (this.getColumnVisibilityButtonVisible()) {
845
764
  this._applyColumnVisibilityButtonVisible(value);
846
765
  }
847
766
  },
848
767
 
849
-
850
768
  // property modifier
851
- _applyHeaderCellHeight : function(value, old)
852
- {
769
+ _applyHeaderCellHeight(value, old) {
853
770
  var scrollerArr = this._getPaneScrollerArr();
854
771
 
855
- for (var i=0; i<scrollerArr.length; i++) {
772
+ for (var i = 0; i < scrollerArr.length; i++) {
856
773
  scrollerArr[i].getHeader().setHeight(value);
857
774
  }
858
775
  },
859
776
 
860
-
861
777
  // property modifier
862
- _applyMinCellEditHeight: function(value) {
778
+ _applyMinCellEditHeight(value) {
863
779
  var scrollerArr = this._getPaneScrollerArr();
864
780
 
865
- for (var i=0; i<scrollerArr.length; i++) {
781
+ for (var i = 0; i < scrollerArr.length; i++) {
866
782
  scrollerArr[i].setMinCellEditHeight(value);
867
783
  }
868
784
  },
869
785
 
870
-
871
786
  /**
872
787
  * Get an empty table model instance to use for this table. Use this table
873
788
  * to configure the table with no table model.
874
789
  *
875
790
  * @return {qx.ui.table.ITableModel} The empty table model
876
791
  */
877
- getEmptyTableModel : function()
878
- {
879
- if (!this.__emptyTableModel)
880
- {
792
+ getEmptyTableModel() {
793
+ if (!this.__emptyTableModel) {
881
794
  this.__emptyTableModel = new qx.ui.table.model.Simple();
882
795
  this.__emptyTableModel.setColumns([]);
883
796
  this.__emptyTableModel.setData([]);
@@ -885,67 +798,60 @@ qx.Class.define("qx.ui.table.Table",
885
798
  return this.__emptyTableModel;
886
799
  },
887
800
 
888
-
889
801
  // property modifier
890
- _applyTableModel : function(value, old)
891
- {
802
+ _applyTableModel(value, old) {
892
803
  this.getTableColumnModel().init(value.getColumnCount(), this);
893
804
 
894
- if (old != null)
895
- {
805
+ if (old != null) {
896
806
  old.removeListener(
897
807
  "metaDataChanged",
898
- this._onTableModelMetaDataChanged, this
808
+ this._onTableModelMetaDataChanged,
809
+ this
899
810
  );
900
811
 
901
- old.removeListener(
902
- "dataChanged",
903
- this._onTableModelDataChanged,
904
- this);
812
+ old.removeListener("dataChanged", this._onTableModelDataChanged, this);
905
813
  }
906
814
 
907
815
  value.addListener(
908
816
  "metaDataChanged",
909
- this._onTableModelMetaDataChanged, this
817
+ this._onTableModelMetaDataChanged,
818
+ this
910
819
  );
911
820
 
912
- value.addListener(
913
- "dataChanged",
914
- this._onTableModelDataChanged,
915
- this);
821
+ value.addListener("dataChanged", this._onTableModelDataChanged, this);
916
822
 
917
823
  // Update the status bar
918
824
  this._updateStatusBar();
919
825
 
920
- this._updateTableData(
921
- 0, value.getRowCount(),
922
- 0, value.getColumnCount()
923
- );
826
+ this._updateTableData(0, value.getRowCount(), 0, value.getColumnCount());
827
+
924
828
  this._onTableModelMetaDataChanged();
925
829
 
926
830
  // If the table model has an init() method, call it. We don't, however,
927
831
  // call it if this is the initial setting of the table model, as the
928
832
  // scrollers are not yet initialized. In that case, the init method is
929
833
  // called explicitly by the Table constructor.
930
- if (old && value.init && typeof(value.init) == "function")
931
- {
834
+ if (old && value.init && typeof value.init == "function") {
932
835
  value.init(this);
933
836
  }
934
837
  },
935
838
 
936
-
937
839
  /**
938
840
  * Get the The table column model.
939
841
  *
940
842
  * @return {qx.ui.table.columnmodel.Basic} The table's column model
941
843
  */
942
- getTableColumnModel : function()
943
- {
944
- if (!this.__columnModel)
945
- {
946
- var columnModel = this.__columnModel = this.getNewTableColumnModel()(this);
844
+ getTableColumnModel() {
845
+ if (!this.__columnModel) {
846
+ var columnModel = (this.__columnModel =
847
+ this.getNewTableColumnModel()(this));
848
+
849
+ columnModel.addListener(
850
+ "visibilityChanged",
851
+ this._onColVisibilityChanged,
852
+ this
853
+ );
947
854
 
948
- columnModel.addListener("visibilityChanged", this._onColVisibilityChanged, this);
949
855
  columnModel.addListener("widthChanged", this._onColWidthChanged, this);
950
856
  columnModel.addListener("orderChanged", this._onColOrderChanged, this);
951
857
 
@@ -956,8 +862,7 @@ qx.Class.define("qx.ui.table.Table",
956
862
  // Reset the table column model in each table pane model
957
863
  var scrollerArr = this._getPaneScrollerArr();
958
864
 
959
- for (var i=0; i<scrollerArr.length; i++)
960
- {
865
+ for (var i = 0; i < scrollerArr.length; i++) {
961
866
  var paneScroller = scrollerArr[i];
962
867
  var paneModel = paneScroller.getTablePaneModel();
963
868
  paneModel.setTableColumnModel(columnModel);
@@ -966,10 +871,8 @@ qx.Class.define("qx.ui.table.Table",
966
871
  return this.__columnModel;
967
872
  },
968
873
 
969
-
970
874
  // property modifier
971
- _applyStatusBarVisible : function(value, old)
972
- {
875
+ _applyStatusBarVisible(value, old) {
973
876
  if (value) {
974
877
  this._showChildControl("statusbar");
975
878
  } else {
@@ -981,18 +884,14 @@ qx.Class.define("qx.ui.table.Table",
981
884
  }
982
885
  },
983
886
 
984
-
985
887
  // property modifier
986
- _applyAdditionalStatusBarText : function(value, old)
987
- {
888
+ _applyAdditionalStatusBarText(value, old) {
988
889
  this.__additionalStatusBarText = value;
989
890
  this._updateStatusBar();
990
891
  },
991
892
 
992
-
993
893
  // property modifier
994
- _applyColumnVisibilityButtonVisible : function(value, old)
995
- {
894
+ _applyColumnVisibilityButtonVisible(value, old) {
996
895
  if (value) {
997
896
  this._showChildControl("column-button");
998
897
  } else {
@@ -1000,28 +899,29 @@ qx.Class.define("qx.ui.table.Table",
1000
899
  }
1001
900
  },
1002
901
 
1003
-
1004
902
  // property modifier
1005
- _applyMetaColumnCounts : function(value, old)
1006
- {
903
+ _applyMetaColumnCounts(value, old) {
1007
904
  var metaColumnCounts = value;
1008
905
  var scrollerArr = this._getPaneScrollerArr();
1009
- var handlers = { };
906
+ var handlers = {};
1010
907
 
1011
- if (value > old)
1012
- {
908
+ if (value > old) {
1013
909
  // Save event listeners on the redirected events so we can re-apply
1014
910
  // them to new scrollers.
1015
911
  var manager = qx.event.Registration.getManager(scrollerArr[0]);
1016
- for (var evName in qx.ui.table.Table.__redirectEvents)
1017
- {
1018
- handlers[evName] = { };
1019
- handlers[evName].capture = manager.getListeners(scrollerArr[0],
1020
- evName,
1021
- true);
1022
- handlers[evName].bubble = manager.getListeners(scrollerArr[0],
1023
- evName,
1024
- false);
912
+ for (var evName in qx.ui.table.Table.__redirectEvents) {
913
+ handlers[evName] = {};
914
+ handlers[evName].capture = manager.getListeners(
915
+ scrollerArr[0],
916
+ evName,
917
+ true
918
+ );
919
+
920
+ handlers[evName].bubble = manager.getListeners(
921
+ scrollerArr[0],
922
+ evName,
923
+ false
924
+ );
1025
925
  }
1026
926
  }
1027
927
 
@@ -1031,8 +931,7 @@ qx.Class.define("qx.ui.table.Table",
1031
931
  // Update the old panes
1032
932
  var leftX = 0;
1033
933
 
1034
- for (var i=0; i<scrollerArr.length; i++)
1035
- {
934
+ for (var i = 0; i < scrollerArr.length; i++) {
1036
935
  var paneScroller = scrollerArr[i];
1037
936
  var paneModel = paneScroller.getTablePaneModel();
1038
937
  paneModel.setFirstColumnX(leftX);
@@ -1041,12 +940,10 @@ qx.Class.define("qx.ui.table.Table",
1041
940
  }
1042
941
 
1043
942
  // Add the new panes
1044
- if (metaColumnCounts.length > scrollerArr.length)
1045
- {
943
+ if (metaColumnCounts.length > scrollerArr.length) {
1046
944
  var columnModel = this.getTableColumnModel();
1047
945
 
1048
- for (var i=scrollerArr.length; i<metaColumnCounts.length; i++)
1049
- {
946
+ for (var i = scrollerArr.length; i < metaColumnCounts.length; i++) {
1050
947
  var paneModel = this.getNewTablePaneModel()(columnModel);
1051
948
  paneModel.setFirstColumnX(leftX);
1052
949
  paneModel.setMaxColumnCount(metaColumnCounts[i]);
@@ -1059,21 +956,19 @@ qx.Class.define("qx.ui.table.Table",
1059
956
  paneScroller.addListener("changeScrollY", this._onScrollY, this);
1060
957
 
1061
958
  // Apply redirected events to this new scroller
1062
- for (evName in qx.ui.table.Table.__redirectEvents)
1063
- {
959
+ for (evName in qx.ui.table.Table.__redirectEvents) {
1064
960
  // On first setting of meta columns (constructing phase), there
1065
961
  // are no handlers to deal with yet.
1066
- if (! handlers[evName])
1067
- {
962
+ if (!handlers[evName]) {
1068
963
  break;
1069
964
  }
1070
965
 
1071
- if (handlers[evName].capture &&
1072
- handlers[evName].capture.length > 0)
1073
- {
966
+ if (
967
+ handlers[evName].capture &&
968
+ handlers[evName].capture.length > 0
969
+ ) {
1074
970
  var capture = handlers[evName].capture;
1075
- for (var j = 0; j < capture.length; j++)
1076
- {
971
+ for (var j = 0; j < capture.length; j++) {
1077
972
  // Determine what context to use. If the context does not
1078
973
  // exist, we assume that the context is this table. If it
1079
974
  // does exist and it equals the first pane scroller (from
@@ -1081,12 +976,9 @@ qx.Class.define("qx.ui.table.Table",
1081
976
  // to be this new pane scroller. Otherwise leave the context
1082
977
  // as it was set.
1083
978
  var context = capture[j].context;
1084
- if (! context)
1085
- {
979
+ if (!context) {
1086
980
  context = this;
1087
- }
1088
- else if (context == scrollerArr[0])
1089
- {
981
+ } else if (context == scrollerArr[0]) {
1090
982
  context = paneScroller;
1091
983
  }
1092
984
 
@@ -1094,16 +986,14 @@ qx.Class.define("qx.ui.table.Table",
1094
986
  evName,
1095
987
  capture[j].handler,
1096
988
  context,
1097
- true);
989
+ true
990
+ );
1098
991
  }
1099
992
  }
1100
993
 
1101
- if (handlers[evName].bubble &&
1102
- handlers[evName].bubble.length > 0)
1103
- {
994
+ if (handlers[evName].bubble && handlers[evName].bubble.length > 0) {
1104
995
  var bubble = handlers[evName].bubble;
1105
- for (var j = 0; j < bubble.length; j++)
1106
- {
996
+ for (var j = 0; j < bubble.length; j++) {
1107
997
  // Determine what context to use. If the context does not
1108
998
  // exist, we assume that the context is this table. If it
1109
999
  // does exist and it equals the first pane scroller (from
@@ -1111,12 +1001,9 @@ qx.Class.define("qx.ui.table.Table",
1111
1001
  // to be this new pane scroller. Otherwise leave the context
1112
1002
  // as it was set.
1113
1003
  var context = bubble[j].context;
1114
- if (! context)
1115
- {
1004
+ if (!context) {
1116
1005
  context = this;
1117
- }
1118
- else if (context == scrollerArr[0])
1119
- {
1006
+ } else if (context == scrollerArr[0]) {
1120
1007
  context = paneScroller;
1121
1008
  }
1122
1009
 
@@ -1124,29 +1011,31 @@ qx.Class.define("qx.ui.table.Table",
1124
1011
  evName,
1125
1012
  bubble[j].handler,
1126
1013
  context,
1127
- false);
1014
+ false
1015
+ );
1128
1016
  }
1129
1017
  }
1130
1018
  }
1131
1019
 
1132
1020
  // last meta column is flexible
1133
- var flex = (i == metaColumnCounts.length - 1) ? 1 : 0;
1134
- this.__scrollerParent.add(paneScroller, {flex: flex});
1021
+ var flex = i == metaColumnCounts.length - 1 ? 1 : 0;
1022
+ this.__scrollerParent.add(paneScroller, { flex: flex });
1135
1023
  scrollerArr = this._getPaneScrollerArr();
1136
1024
  }
1137
1025
  }
1138
1026
 
1139
1027
  // Update all meta columns
1140
- for (var i=0; i<scrollerArr.length; i++)
1141
- {
1028
+ for (var i = 0; i < scrollerArr.length; i++) {
1142
1029
  var paneScroller = scrollerArr[i];
1143
- var isLast = (i == (scrollerArr.length - 1));
1030
+ var isLast = i == scrollerArr.length - 1;
1144
1031
 
1145
1032
  // Set the right header height
1146
1033
  paneScroller.getHeader().setHeight(this.getHeaderCellHeight());
1147
1034
 
1148
1035
  // Put the column visibility button in the top right corner of the last meta column
1149
- paneScroller.setTopRightWidget(isLast ? this.getChildControl("column-button") : null);
1036
+ paneScroller.setTopRightWidget(
1037
+ isLast ? this.getChildControl("column-button") : null
1038
+ );
1150
1039
  }
1151
1040
 
1152
1041
  if (!this.isColumnVisibilityButtonVisible()) {
@@ -1157,104 +1046,88 @@ qx.Class.define("qx.ui.table.Table",
1157
1046
  this._updateScrollBarVisibility();
1158
1047
  },
1159
1048
 
1160
-
1161
1049
  // property modifier
1162
- _applyFocusCellOnPointerMove : function(value, old)
1163
- {
1050
+ _applyFocusCellOnPointerMove(value, old) {
1164
1051
  var scrollerArr = this._getPaneScrollerArr();
1165
1052
 
1166
- for (var i=0; i<scrollerArr.length; i++) {
1053
+ for (var i = 0; i < scrollerArr.length; i++) {
1167
1054
  scrollerArr[i].setFocusCellOnPointerMove(value);
1168
1055
  }
1169
1056
  },
1170
1057
 
1171
-
1172
1058
  // property modifier
1173
- _applyShowCellFocusIndicator : function(value, old)
1174
- {
1059
+ _applyShowCellFocusIndicator(value, old) {
1175
1060
  var scrollerArr = this._getPaneScrollerArr();
1176
1061
 
1177
- for (var i=0; i<scrollerArr.length; i++) {
1062
+ for (var i = 0; i < scrollerArr.length; i++) {
1178
1063
  scrollerArr[i].setShowCellFocusIndicator(value);
1179
1064
  }
1180
1065
  },
1181
1066
 
1182
-
1183
1067
  // property modifier
1184
- _applyContextMenuFromDataCellsOnly : function(value, old)
1185
- {
1068
+ _applyContextMenuFromDataCellsOnly(value, old) {
1186
1069
  var scrollerArr = this._getPaneScrollerArr();
1187
1070
 
1188
- for (var i=0; i<scrollerArr.length; i++) {
1071
+ for (var i = 0; i < scrollerArr.length; i++) {
1189
1072
  scrollerArr[i].setContextMenuFromDataCellsOnly(value);
1190
1073
  }
1191
1074
  },
1192
1075
 
1193
-
1194
1076
  // property modifier
1195
- _applyKeepFirstVisibleRowComplete : function(value, old)
1196
- {
1077
+ _applyKeepFirstVisibleRowComplete(value, old) {
1197
1078
  var scrollerArr = this._getPaneScrollerArr();
1198
1079
 
1199
- for (var i=0; i<scrollerArr.length; i++) {
1080
+ for (var i = 0; i < scrollerArr.length; i++) {
1200
1081
  scrollerArr[i].onKeepFirstVisibleRowCompleteChanged();
1201
1082
  }
1202
1083
  },
1203
1084
 
1204
-
1205
1085
  // property modifier
1206
- _applyResetSelectionOnHeaderTap : function(value, old)
1207
- {
1086
+ _applyResetSelectionOnHeaderTap(value, old) {
1208
1087
  var scrollerArr = this._getPaneScrollerArr();
1209
1088
 
1210
- for (var i=0; i<scrollerArr.length; i++) {
1089
+ for (var i = 0; i < scrollerArr.length; i++) {
1211
1090
  scrollerArr[i].setResetSelectionOnHeaderTap(value);
1212
1091
  }
1213
1092
  },
1214
1093
 
1215
-
1216
1094
  // property modifier
1217
- _applyResetSelectionOnTapBelowRows : function(value, old)
1218
- {
1095
+ _applyResetSelectionOnTapBelowRows(value, old) {
1219
1096
  var scrollerArr = this._getPaneScrollerArr();
1220
1097
 
1221
- for (var i=0; i<scrollerArr.length; i++) {
1098
+ for (var i = 0; i < scrollerArr.length; i++) {
1222
1099
  scrollerArr[i].setResetSelectionOnTapBelowRows(value);
1223
1100
  }
1224
1101
  },
1225
1102
 
1226
-
1227
1103
  /**
1228
1104
  * Returns the selection manager.
1229
1105
  *
1230
1106
  * @return {qx.ui.table.selection.Manager} the selection manager.
1231
1107
  */
1232
- getSelectionManager : function() {
1108
+ getSelectionManager() {
1233
1109
  return this.__selectionManager;
1234
1110
  },
1235
1111
 
1236
-
1237
1112
  /**
1238
1113
  * Returns an array containing all TablePaneScrollers in this table.
1239
1114
  *
1240
1115
  * @return {qx.ui.table.pane.Scroller[]} all TablePaneScrollers in this table.
1241
1116
  */
1242
- _getPaneScrollerArr : function() {
1117
+ _getPaneScrollerArr() {
1243
1118
  return this.__scrollerParent.getChildren();
1244
1119
  },
1245
1120
 
1246
-
1247
1121
  /**
1248
1122
  * Returns a TablePaneScroller of this table.
1249
1123
  *
1250
1124
  * @param metaColumn {Integer} the meta column to get the TablePaneScroller for.
1251
1125
  * @return {qx.ui.table.pane.Scroller} the qx.ui.table.pane.Scroller.
1252
1126
  */
1253
- getPaneScroller : function(metaColumn) {
1127
+ getPaneScroller(metaColumn) {
1254
1128
  return this._getPaneScrollerArr()[metaColumn];
1255
1129
  },
1256
1130
 
1257
-
1258
1131
  /**
1259
1132
  * Cleans up the meta columns.
1260
1133
  *
@@ -1262,96 +1135,85 @@ qx.Class.define("qx.ui.table.Table",
1262
1135
  * meta columns will be cleaned up, too. All previous meta columns will
1263
1136
  * stay unchanged. If 0 all meta columns will be cleaned up.
1264
1137
  */
1265
- _cleanUpMetaColumns : function(fromMetaColumn)
1266
- {
1138
+ _cleanUpMetaColumns(fromMetaColumn) {
1267
1139
  var scrollerArr = this._getPaneScrollerArr();
1268
1140
 
1269
- if (scrollerArr != null)
1270
- {
1271
- for (var i=scrollerArr.length-1; i>=fromMetaColumn; i--)
1272
- {
1141
+ if (scrollerArr != null) {
1142
+ for (var i = scrollerArr.length - 1; i >= fromMetaColumn; i--) {
1273
1143
  scrollerArr[i].destroy();
1274
1144
  }
1275
1145
  }
1276
1146
  },
1277
1147
 
1278
-
1279
1148
  /**
1280
1149
  * Event handler. Called when the locale has changed.
1281
1150
  *
1282
1151
  * @param evt {Event} the event.
1283
1152
  */
1284
- _onChangeLocale : function(evt)
1285
- {
1153
+ _onChangeLocale(evt) {
1286
1154
  this.updateContent();
1287
1155
  this._updateStatusBar();
1288
1156
  },
1289
1157
 
1290
-
1291
1158
  // overridden
1292
- _onChangeTheme : function() {
1293
- this.base(arguments);
1159
+ _onChangeTheme() {
1160
+ super._onChangeTheme();
1294
1161
 
1295
1162
  this.getDataRowRenderer().initThemeValues();
1296
1163
  this.updateContent();
1297
1164
  this._updateStatusBar();
1298
1165
  },
1299
1166
 
1300
-
1301
1167
  /**
1302
1168
  * Event handler. Called when the selection has changed.
1303
1169
  *
1304
1170
  * @param evt {Map} the event.
1305
1171
  */
1306
- _onSelectionChanged : function(evt)
1307
- {
1172
+ _onSelectionChanged(evt) {
1308
1173
  var scrollerArr = this._getPaneScrollerArr();
1309
1174
 
1310
- for (var i=0; i<scrollerArr.length; i++) {
1175
+ for (var i = 0; i < scrollerArr.length; i++) {
1311
1176
  scrollerArr[i].onSelectionChanged();
1312
1177
  }
1313
1178
 
1314
1179
  this._updateStatusBar();
1315
1180
  },
1316
1181
 
1317
-
1318
1182
  /**
1319
1183
  * Event handler. Called when the table model meta data has changed.
1320
1184
  *
1321
1185
  * @param evt {Map} the event.
1322
1186
  */
1323
- _onTableModelMetaDataChanged : function(evt)
1324
- {
1187
+ _onTableModelMetaDataChanged(evt) {
1325
1188
  var scrollerArr = this._getPaneScrollerArr();
1326
1189
 
1327
- for (var i=0; i<scrollerArr.length; i++) {
1190
+ for (var i = 0; i < scrollerArr.length; i++) {
1328
1191
  scrollerArr[i].onTableModelMetaDataChanged();
1329
1192
  }
1330
1193
 
1331
1194
  this._updateStatusBar();
1332
1195
  },
1333
1196
 
1334
-
1335
1197
  /**
1336
1198
  * Event handler. Called when the table model data has changed.
1337
1199
  *
1338
1200
  * @param evt {Map} the event.
1339
1201
  */
1340
- _onTableModelDataChanged : function(evt)
1341
- {
1202
+ _onTableModelDataChanged(evt) {
1342
1203
  var data = evt.getData();
1343
1204
 
1344
1205
  this._updateTableData(
1345
- data.firstRow, data.lastRow,
1346
- data.firstColumn, data.lastColumn,
1347
- data.removeStart, data.removeCount
1206
+ data.firstRow,
1207
+ data.lastRow,
1208
+ data.firstColumn,
1209
+ data.lastColumn,
1210
+ data.removeStart,
1211
+ data.removeCount
1348
1212
  );
1349
1213
  },
1350
1214
 
1351
-
1352
1215
  // overridden
1353
- _onContextMenuOpen : function(e)
1354
- {
1216
+ _onContextMenuOpen(e) {
1355
1217
  // This is Widget's context menu handler which typically retrieves
1356
1218
  // and displays the menu as soon as it receives a "contextmenu" event.
1357
1219
  // We want to allow the cellContextmenu handler to create the menu,
@@ -1359,7 +1221,6 @@ qx.Class.define("qx.ui.table.Table",
1359
1221
  // placement and display handling in our _onContextMenu method.
1360
1222
  },
1361
1223
 
1362
-
1363
1224
  /**
1364
1225
  * To update the table if the table model has changed and remove selection.
1365
1226
  *
@@ -1370,54 +1231,77 @@ qx.Class.define("qx.ui.table.Table",
1370
1231
  * @param removeStart {Integer ? null} The first index of the interval (including), to remove selection.
1371
1232
  * @param removeCount {Integer ? null} The count of the interval, to remove selection.
1372
1233
  */
1373
- _updateTableData : function(firstRow, lastRow, firstColumn, lastColumn, removeStart, removeCount)
1374
- {
1234
+ _updateTableData(
1235
+ firstRow,
1236
+ lastRow,
1237
+ firstColumn,
1238
+ lastColumn,
1239
+ removeStart,
1240
+ removeCount
1241
+ ) {
1375
1242
  var scrollerArr = this._getPaneScrollerArr();
1376
1243
 
1377
1244
  // update selection if rows were removed
1378
1245
  if (removeCount) {
1379
- this.getSelectionModel().removeSelectionInterval(removeStart, removeStart + removeCount - 1, true);
1246
+ this.getSelectionModel().removeSelectionInterval(
1247
+ removeStart,
1248
+ removeStart + removeCount - 1,
1249
+ true
1250
+ );
1251
+
1380
1252
  // remove focus if the focused row has been removed
1381
- if (this.__focusedRow >= removeStart && this.__focusedRow < (removeStart + removeCount)) {
1253
+ if (
1254
+ this.__focusedRow >= removeStart &&
1255
+ this.__focusedRow < removeStart + removeCount
1256
+ ) {
1382
1257
  this.setFocusedCell();
1383
1258
  }
1384
1259
  }
1385
1260
 
1386
- for (var i=0; i<scrollerArr.length; i++)
1387
- {
1261
+ for (var i = 0; i < scrollerArr.length; i++) {
1388
1262
  scrollerArr[i].onTableModelDataChanged(
1389
- firstRow, lastRow,
1390
- firstColumn, lastColumn
1263
+ firstRow,
1264
+ lastRow,
1265
+ firstColumn,
1266
+ lastColumn
1391
1267
  );
1392
1268
  }
1393
1269
 
1394
1270
  var rowCount = this.getTableModel().getRowCount();
1395
1271
 
1396
- if (rowCount != this.__lastRowCount)
1397
- {
1272
+ if (rowCount != this.__lastRowCount) {
1398
1273
  this.__lastRowCount = rowCount;
1399
1274
 
1400
1275
  this._updateScrollBarVisibility();
1401
1276
  this._updateStatusBar();
1277
+
1278
+ // ARIA attrs
1279
+ this.getContentElement().setAttribute("aria-rowcount", rowCount);
1402
1280
  }
1403
- },
1404
1281
 
1282
+ const colCount = this.getTableModel().getColumnCount();
1283
+
1284
+ if (colCount != this.__lastColCount) {
1285
+ this.__lastColCount = colCount;
1286
+
1287
+ // ARIA attrs
1288
+ this.getContentElement().setAttribute("aria-colcount", colCount);
1289
+ }
1290
+ },
1405
1291
 
1406
1292
  /**
1407
1293
  * Event handler. Called when a TablePaneScroller has been scrolled vertically.
1408
1294
  *
1409
1295
  * @param evt {Map} the event.
1410
1296
  */
1411
- _onScrollY : function(evt)
1412
- {
1413
- if (!this.__internalChange)
1414
- {
1297
+ _onScrollY(evt) {
1298
+ if (!this.__internalChange) {
1415
1299
  this.__internalChange = true;
1416
1300
 
1417
1301
  // Set the same scroll position to all meta columns
1418
1302
  var scrollerArr = this._getPaneScrollerArr();
1419
1303
 
1420
- for (var i=0; i<scrollerArr.length; i++) {
1304
+ for (var i = 0; i < scrollerArr.length; i++) {
1421
1305
  scrollerArr[i].setScrollY(evt.getData());
1422
1306
  }
1423
1307
 
@@ -1425,26 +1309,33 @@ qx.Class.define("qx.ui.table.Table",
1425
1309
  }
1426
1310
  },
1427
1311
 
1428
-
1429
1312
  /**
1430
1313
  * Event handler. Called when a key was pressed.
1431
1314
  *
1432
1315
  * @param evt {qx.event.type.KeySequence} the event.
1433
1316
  * @deprecated {6.0} please use _onKeyDown instead!
1434
1317
  */
1435
- _onKeyPress : function(evt)
1436
- {
1437
- qx.log.Logger.deprecatedMethodWarning(this._onKeyPress, "The method '_onKeyPress()' is deprecated. Please use '_onKeyDown()' instead.");
1438
- qx.log.Logger.deprecateMethodOverriding(this, qx.ui.table.Table, "_onKeyPress", "The method '_onKeyPress()' is deprecated. Please use '_onKeyDown()' instead.");
1439
- this._onKeyDown(evt);
1318
+ _onKeyPress(evt) {
1319
+ qx.log.Logger.deprecatedMethodWarning(
1320
+ this._onKeyPress,
1321
+ "The method '_onKeyPress()' is deprecated. Please use '_onKeyDown()' instead."
1322
+ );
1323
+
1324
+ qx.log.Logger.deprecateMethodOverriding(
1325
+ this,
1326
+ qx.ui.table.Table,
1327
+ "_onKeyPress",
1328
+ "The method '_onKeyPress()' is deprecated. Please use '_onKeyDown()' instead."
1329
+ );
1330
+
1331
+ this._onKeyDown(evt);
1440
1332
  },
1441
1333
  /**
1442
1334
  * Event handler. Called when on key down event
1443
1335
  *
1444
1336
  * @param evt {qx.event.type.KeySequence} the event.
1445
1337
  */
1446
- _onKeyDown : function(evt)
1447
- {
1338
+ _onKeyDown(evt) {
1448
1339
  if (!this.getEnabled()) {
1449
1340
  return;
1450
1341
  }
@@ -1456,13 +1347,10 @@ qx.Class.define("qx.ui.table.Table",
1456
1347
  // Handle keys that are independent from the modifiers
1457
1348
  var identifier = evt.getKeyIdentifier();
1458
1349
 
1459
- if (this.isEditing())
1460
- {
1350
+ if (this.isEditing()) {
1461
1351
  // Editing mode
1462
- if (evt.getModifiers() == 0)
1463
- {
1464
- switch(identifier)
1465
- {
1352
+ if (evt.getModifiers() == 0) {
1353
+ switch (identifier) {
1466
1354
  case "Enter":
1467
1355
  this.stopEditing();
1468
1356
  var oldFocusedRow = this.__focusedRow;
@@ -1484,18 +1372,13 @@ qx.Class.define("qx.ui.table.Table",
1484
1372
  break;
1485
1373
  }
1486
1374
  }
1487
-
1488
- }
1489
- else
1490
- {
1375
+ } else {
1491
1376
  consumed = true;
1492
1377
  // No editing mode
1493
- if (evt.isCtrlPressed())
1494
- {
1378
+ if (evt.isCtrlPressed()) {
1495
1379
  // Handle keys that depend on modifiers
1496
1380
 
1497
- switch(identifier)
1498
- {
1381
+ switch (identifier) {
1499
1382
  case "A": // Ctrl + A
1500
1383
  var rowCount = this.getTableModel().getRowCount();
1501
1384
 
@@ -1509,14 +1392,15 @@ qx.Class.define("qx.ui.table.Table",
1509
1392
  consumed = false;
1510
1393
  break;
1511
1394
  }
1512
- }
1513
- else
1514
- {
1395
+ } else {
1515
1396
  // Handle keys that are independent from the modifiers
1516
- switch(identifier)
1517
- {
1397
+ switch (identifier) {
1518
1398
  case "Space":
1519
- this.__selectionManager.handleSelectKeyDown(this.__focusedRow, evt);
1399
+ this.__selectionManager.handleSelectKeyDown(
1400
+ this.__focusedRow,
1401
+ evt
1402
+ );
1403
+
1520
1404
  break;
1521
1405
 
1522
1406
  case "F2":
@@ -1555,9 +1439,12 @@ qx.Class.define("qx.ui.table.Table",
1555
1439
  var scroller = this.getPaneScroller(0);
1556
1440
  var pane = scroller.getTablePane();
1557
1441
  var rowHeight = this.getRowHeight();
1558
- var direction = (identifier == "PageUp") ? -1 : 1;
1442
+ var direction = identifier == "PageUp" ? -1 : 1;
1559
1443
  rowCount = pane.getVisibleRowCount() - 1;
1560
- scroller.setScrollY(scroller.getScrollY() + direction * rowCount * rowHeight);
1444
+ scroller.setScrollY(
1445
+ scroller.getScrollY() + direction * rowCount * rowHeight
1446
+ );
1447
+
1561
1448
  this.moveFocusedCell(0, direction * rowCount);
1562
1449
  break;
1563
1450
 
@@ -1567,52 +1454,51 @@ qx.Class.define("qx.ui.table.Table",
1567
1454
  }
1568
1455
  }
1569
1456
 
1570
- if (oldFocusedRow != this.__focusedRow &&
1571
- this.getRowFocusChangeModifiesSelection())
1572
- {
1457
+ if (
1458
+ oldFocusedRow != this.__focusedRow &&
1459
+ this.getRowFocusChangeModifiesSelection()
1460
+ ) {
1573
1461
  // The focus moved -> Let the selection manager handle this event
1574
1462
  this.__selectionManager.handleMoveKeyDown(this.__focusedRow, evt);
1575
1463
  }
1576
1464
 
1577
- if (consumed)
1578
- {
1465
+ if (consumed) {
1579
1466
  evt.preventDefault();
1580
1467
  evt.stopPropagation();
1581
1468
  }
1582
1469
  },
1583
1470
 
1584
-
1585
1471
  /**
1586
1472
  * Event handler. Called when the table gets the focus.
1587
1473
  *
1588
1474
  * @param evt {Map} the event.
1589
1475
  */
1590
- _onFocusChanged : function(evt)
1591
- {
1476
+ _onFocusChanged(evt) {
1592
1477
  var scrollerArr = this._getPaneScrollerArr();
1593
1478
 
1594
- for (var i=0; i<scrollerArr.length; i++) {
1479
+ for (var i = 0; i < scrollerArr.length; i++) {
1595
1480
  scrollerArr[i].onFocusChanged();
1596
1481
  }
1597
1482
  },
1598
1483
 
1599
-
1600
1484
  /**
1601
1485
  * Event handler. Called when the visibility of a column has changed.
1602
1486
  *
1603
1487
  * @param evt {Map} the event.
1604
1488
  */
1605
- _onColVisibilityChanged : function(evt)
1606
- {
1489
+ _onColVisibilityChanged(evt) {
1607
1490
  var scrollerArr = this._getPaneScrollerArr();
1608
1491
 
1609
- for (var i=0; i<scrollerArr.length; i++) {
1492
+ for (var i = 0; i < scrollerArr.length; i++) {
1610
1493
  scrollerArr[i].onColVisibilityChanged();
1611
1494
  }
1612
1495
 
1613
1496
  var data = evt.getData();
1614
- if (this.__columnMenuButtons != null && data.col != null &&
1615
- data.visible != null) {
1497
+ if (
1498
+ this.__columnMenuButtons != null &&
1499
+ data.col != null &&
1500
+ data.visible != null
1501
+ ) {
1616
1502
  this.__columnMenuButtons[data.col].setColumnVisible(data.visible);
1617
1503
  }
1618
1504
 
@@ -1620,18 +1506,15 @@ qx.Class.define("qx.ui.table.Table",
1620
1506
  this._updateScrollBarVisibility();
1621
1507
  },
1622
1508
 
1623
-
1624
1509
  /**
1625
1510
  * Event handler. Called when the width of a column has changed.
1626
1511
  *
1627
1512
  * @param evt {Map} the event.
1628
1513
  */
1629
- _onColWidthChanged : function(evt)
1630
- {
1514
+ _onColWidthChanged(evt) {
1631
1515
  var scrollerArr = this._getPaneScrollerArr();
1632
1516
 
1633
- for (var i=0; i<scrollerArr.length; i++)
1634
- {
1517
+ for (var i = 0; i < scrollerArr.length; i++) {
1635
1518
  var data = evt.getData();
1636
1519
  scrollerArr[i].setColumnWidth(data.col, data.newWidth);
1637
1520
  }
@@ -1640,17 +1523,15 @@ qx.Class.define("qx.ui.table.Table",
1640
1523
  this._updateScrollBarVisibility();
1641
1524
  },
1642
1525
 
1643
-
1644
1526
  /**
1645
1527
  * Event handler. Called when the column order has changed.
1646
1528
  *
1647
1529
  * @param evt {Map} the event.
1648
1530
  */
1649
- _onColOrderChanged : function(evt)
1650
- {
1531
+ _onColOrderChanged(evt) {
1651
1532
  var scrollerArr = this._getPaneScrollerArr();
1652
1533
 
1653
- for (var i=0; i<scrollerArr.length; i++) {
1534
+ for (var i = 0; i < scrollerArr.length; i++) {
1654
1535
  scrollerArr[i].onColOrderChanged();
1655
1536
  }
1656
1537
 
@@ -1659,7 +1540,6 @@ qx.Class.define("qx.ui.table.Table",
1659
1540
  this._updateScrollBarVisibility();
1660
1541
  },
1661
1542
 
1662
-
1663
1543
  /**
1664
1544
  * Gets the TablePaneScroller at a certain x position in the page. If there is
1665
1545
  * no TablePaneScroller at this position, null is returned.
@@ -1667,13 +1547,11 @@ qx.Class.define("qx.ui.table.Table",
1667
1547
  * @param pageX {Integer} the position in the page to check (in pixels).
1668
1548
  * @return {qx.ui.table.pane.Scroller} the TablePaneScroller or null.
1669
1549
  */
1670
- getTablePaneScrollerAtPageX : function(pageX)
1671
- {
1550
+ getTablePaneScrollerAtPageX(pageX) {
1672
1551
  var metaCol = this._getMetaColumnAtPageX(pageX);
1673
- return (metaCol != -1) ? this.getPaneScroller(metaCol) : null;
1552
+ return metaCol != -1 ? this.getPaneScroller(metaCol) : null;
1674
1553
  },
1675
1554
 
1676
-
1677
1555
  /**
1678
1556
  * Sets the currently focused cell. A value of <code>null</code> hides the
1679
1557
  * focus cell.
@@ -1683,10 +1561,11 @@ qx.Class.define("qx.ui.table.Table",
1683
1561
  * @param scrollVisible {Boolean ? false} whether to scroll the new focused cell
1684
1562
  * visible.
1685
1563
  */
1686
- setFocusedCell : function(col, row, scrollVisible)
1687
- {
1688
- if (!this.isEditing() && (col != this.__focusedCol || row != this.__focusedRow))
1689
- {
1564
+ setFocusedCell(col, row, scrollVisible) {
1565
+ if (
1566
+ !this.isEditing() &&
1567
+ (col != this.__focusedCol || row != this.__focusedRow)
1568
+ ) {
1690
1569
  if (col === null) {
1691
1570
  col = 0;
1692
1571
  }
@@ -1696,53 +1575,53 @@ qx.Class.define("qx.ui.table.Table",
1696
1575
 
1697
1576
  var scrollerArr = this._getPaneScrollerArr();
1698
1577
 
1699
- for (var i=0; i<scrollerArr.length; i++) {
1578
+ for (var i = 0; i < scrollerArr.length; i++) {
1700
1579
  scrollerArr[i].setFocusedCell(col, row);
1701
1580
  }
1702
1581
 
1703
1582
  if (col != null && scrollVisible) {
1704
1583
  this.scrollCellVisible(col, row);
1705
1584
  }
1585
+
1586
+ // ARIA attrs
1587
+ const cellId =
1588
+ "qooxdoo-table-cell-" + this.toHashCode() + "-" + row + "-" + col;
1589
+ this.getContentElement().setAttribute("aria-activedescendant", cellId);
1706
1590
  }
1707
1591
  },
1708
1592
 
1709
-
1710
1593
  /**
1711
1594
  * Resets (clears) the current selection
1712
1595
  */
1713
- resetSelection : function() {
1596
+ resetSelection() {
1714
1597
  this.getSelectionModel().resetSelection();
1715
1598
  },
1716
1599
 
1717
-
1718
1600
  /**
1719
1601
  * Resets the focused cell.
1720
1602
  */
1721
- resetCellFocus : function() {
1603
+ resetCellFocus() {
1722
1604
  this.setFocusedCell(null, null, false);
1723
1605
  },
1724
1606
 
1725
-
1726
1607
  /**
1727
1608
  * Returns the column of the currently focused cell.
1728
1609
  *
1729
1610
  * @return {Integer} the model index of the focused cell's column.
1730
1611
  */
1731
- getFocusedColumn : function() {
1612
+ getFocusedColumn() {
1732
1613
  return this.__focusedCol;
1733
1614
  },
1734
1615
 
1735
-
1736
1616
  /**
1737
1617
  * Returns the row of the currently focused cell.
1738
1618
  *
1739
1619
  * @return {Integer} the model index of the focused cell's column.
1740
1620
  */
1741
- getFocusedRow : function() {
1621
+ getFocusedRow() {
1742
1622
  return this.__focusedRow;
1743
1623
  },
1744
1624
 
1745
-
1746
1625
  /**
1747
1626
  * Select whether the focused row is highlighted
1748
1627
  *
@@ -1750,12 +1629,10 @@ qx.Class.define("qx.ui.table.Table",
1750
1629
  * Flag indicating whether the focused row should be highlighted.
1751
1630
  *
1752
1631
  */
1753
- highlightFocusedRow : function(bHighlight)
1754
- {
1632
+ highlightFocusedRow(bHighlight) {
1755
1633
  this.getDataRowRenderer().setHighlightFocusRow(bHighlight);
1756
1634
  },
1757
1635
 
1758
-
1759
1636
  /**
1760
1637
  * Remove the highlighting of the current focus row.
1761
1638
  *
@@ -1768,17 +1645,15 @@ qx.Class.define("qx.ui.table.Table",
1768
1645
  *
1769
1646
  * @param evt {qx.event.type.Pointer} Incoming pointer event
1770
1647
  */
1771
- clearFocusedRowHighlight : function(evt)
1772
- {
1773
- if(evt)
1774
- {
1648
+ clearFocusedRowHighlight(evt) {
1649
+ if (evt) {
1775
1650
  var relatedTarget = evt.getRelatedTarget();
1776
1651
  if (
1777
1652
  relatedTarget instanceof qx.ui.table.pane.Pane ||
1778
1653
  relatedTarget instanceof qx.ui.table.pane.FocusIndicator
1779
- ) {
1780
- return ;
1781
- }
1654
+ ) {
1655
+ return;
1656
+ }
1782
1657
  }
1783
1658
 
1784
1659
  // Remove focus from any cell that has it
@@ -1786,32 +1661,34 @@ qx.Class.define("qx.ui.table.Table",
1786
1661
 
1787
1662
  // Now, for each pane scroller...
1788
1663
  var scrollerArr = this._getPaneScrollerArr();
1789
- for (var i=0; i<scrollerArr.length; i++)
1790
- {
1664
+ for (var i = 0; i < scrollerArr.length; i++) {
1791
1665
  // ... repaint without focus.
1792
1666
  scrollerArr[i].onFocusChanged();
1793
1667
  }
1794
1668
  },
1795
1669
 
1796
-
1797
1670
  /**
1798
1671
  * Moves the focus.
1799
1672
  *
1800
1673
  * @param deltaX {Integer} The delta by which the focus should be moved on the x axis.
1801
1674
  * @param deltaY {Integer} The delta by which the focus should be moved on the y axis.
1802
1675
  */
1803
- moveFocusedCell : function(deltaX, deltaY)
1804
- {
1676
+ moveFocusedCell(deltaX, deltaY) {
1805
1677
  var col = this.__focusedCol;
1806
1678
  var row = this.__focusedRow;
1807
1679
 
1808
- // could also be undefined [BUG #4676]
1809
- if (col == null || row == null) {
1680
+ // could also be undefined [BUG #4676]. In that case default to first cell focus
1681
+ if (
1682
+ col === null ||
1683
+ col === undefined ||
1684
+ row === null ||
1685
+ row === undefined
1686
+ ) {
1687
+ this.setFocusedCell(0, 0, true);
1810
1688
  return;
1811
1689
  }
1812
1690
 
1813
- if (deltaX != 0)
1814
- {
1691
+ if (deltaX != 0) {
1815
1692
  var columnModel = this.getTableColumnModel();
1816
1693
  var x = columnModel.getVisibleX(col);
1817
1694
  var colCount = columnModel.getVisibleColumnCount();
@@ -1819,32 +1696,37 @@ qx.Class.define("qx.ui.table.Table",
1819
1696
  col = columnModel.getVisibleColumnAtX(x);
1820
1697
  }
1821
1698
 
1822
- if (deltaY != 0)
1823
- {
1699
+ if (deltaY != 0) {
1824
1700
  var tableModel = this.getTableModel();
1825
- row = qx.lang.Number.limit(row + deltaY, 0, tableModel.getRowCount() - 1);
1701
+ row = qx.lang.Number.limit(
1702
+ row + deltaY,
1703
+ 0,
1704
+ tableModel.getRowCount() - 1
1705
+ );
1826
1706
  }
1827
1707
 
1828
1708
  this.setFocusedCell(col, row, true);
1829
1709
  },
1830
1710
 
1831
-
1832
1711
  /**
1833
1712
  * Scrolls a cell visible.
1834
1713
  *
1835
1714
  * @param col {Integer} the model index of the column the cell belongs to.
1836
1715
  * @param row {Integer} the model index of the row the cell belongs to.
1837
1716
  */
1838
- scrollCellVisible : function(col, row)
1839
- {
1717
+ scrollCellVisible(col, row) {
1840
1718
  // get the dom element
1841
1719
  var elem = this.getContentElement().getDomElement();
1842
1720
  // if the dom element is not available, the table hasn't been rendered
1843
1721
  if (!elem) {
1844
1722
  // postpone the scroll until the table has appeared
1845
- this.addListenerOnce("appear", function() {
1846
- this.scrollCellVisible(col, row);
1847
- }, this);
1723
+ this.addListenerOnce(
1724
+ "appear",
1725
+ function () {
1726
+ this.scrollCellVisible(col, row);
1727
+ },
1728
+ this
1729
+ );
1848
1730
  }
1849
1731
 
1850
1732
  var columnModel = this.getTableColumnModel();
@@ -1857,16 +1739,13 @@ qx.Class.define("qx.ui.table.Table",
1857
1739
  }
1858
1740
  },
1859
1741
 
1860
-
1861
1742
  /**
1862
1743
  * Returns whether currently a cell is editing.
1863
1744
  *
1864
1745
  * @return {var} whether currently a cell is editing.
1865
1746
  */
1866
- isEditing : function()
1867
- {
1868
- if (this.__focusedCol != null)
1869
- {
1747
+ isEditing() {
1748
+ if (this.__focusedCol != null) {
1870
1749
  var x = this.getTableColumnModel().getVisibleX(this.__focusedCol);
1871
1750
  var metaColumn = this._getMetaColumnAtColumnX(x);
1872
1751
  return this.getPaneScroller(metaColumn).isEditing();
@@ -1874,17 +1753,14 @@ qx.Class.define("qx.ui.table.Table",
1874
1753
  return false;
1875
1754
  },
1876
1755
 
1877
-
1878
1756
  /**
1879
1757
  * Starts editing the currently focused cell. Does nothing if already editing
1880
1758
  * or if the column is not editable.
1881
1759
  *
1882
1760
  * @return {Boolean} whether editing was started
1883
1761
  */
1884
- startEditing : function()
1885
- {
1886
- if (this.__focusedCol != null)
1887
- {
1762
+ startEditing() {
1763
+ if (this.__focusedCol != null) {
1888
1764
  var x = this.getTableColumnModel().getVisibleX(this.__focusedCol);
1889
1765
  var metaColumn = this._getMetaColumnAtColumnX(x);
1890
1766
  var started = this.getPaneScroller(metaColumn).startEditing();
@@ -1894,41 +1770,34 @@ qx.Class.define("qx.ui.table.Table",
1894
1770
  return false;
1895
1771
  },
1896
1772
 
1897
-
1898
1773
  /**
1899
1774
  * Stops editing and writes the editor's value to the model.
1900
1775
  */
1901
- stopEditing : function()
1902
- {
1903
- if (this.__focusedCol != null)
1904
- {
1776
+ stopEditing() {
1777
+ if (this.__focusedCol != null) {
1905
1778
  var x = this.getTableColumnModel().getVisibleX(this.__focusedCol);
1906
1779
  var metaColumn = this._getMetaColumnAtColumnX(x);
1907
1780
  this.getPaneScroller(metaColumn).stopEditing();
1908
1781
  }
1909
1782
  },
1910
1783
 
1911
-
1912
1784
  /**
1913
1785
  * Stops editing without writing the editor's value to the model.
1914
1786
  */
1915
- cancelEditing : function()
1916
- {
1917
- if (this.__focusedCol != null)
1918
- {
1787
+ cancelEditing() {
1788
+ if (this.__focusedCol != null) {
1919
1789
  var x = this.getTableColumnModel().getVisibleX(this.__focusedCol);
1920
1790
  var metaColumn = this._getMetaColumnAtColumnX(x);
1921
1791
  this.getPaneScroller(metaColumn).cancelEditing();
1922
1792
  }
1923
1793
  },
1924
1794
 
1925
-
1926
1795
  /**
1927
1796
  * Update the table content of every attached table pane.
1928
1797
  */
1929
- updateContent : function() {
1798
+ updateContent() {
1930
1799
  var scrollerArr = this._getPaneScrollerArr();
1931
- for (var i=0; i<scrollerArr.length; i++) {
1800
+ for (var i = 0; i < scrollerArr.length; i++) {
1932
1801
  scrollerArr[i].getTablePane().updateContent(true);
1933
1802
  }
1934
1803
  },
@@ -1937,24 +1806,21 @@ qx.Class.define("qx.ui.table.Table",
1937
1806
  * Activates the blocker widgets on all column headers and the
1938
1807
  * column button
1939
1808
  */
1940
- blockHeaderElements : function()
1941
- {
1809
+ blockHeaderElements() {
1942
1810
  var scrollerArr = this._getPaneScrollerArr();
1943
- for (var i=0; i<scrollerArr.length; i++) {
1811
+ for (var i = 0; i < scrollerArr.length; i++) {
1944
1812
  scrollerArr[i].getHeader().getBlocker().blockContent(20);
1945
1813
  }
1946
1814
  this.getChildControl("column-button").getBlocker().blockContent(20);
1947
1815
  },
1948
1816
 
1949
-
1950
1817
  /**
1951
1818
  * Deactivates the blocker widgets on all column headers and the
1952
1819
  * column button
1953
1820
  */
1954
- unblockHeaderElements : function()
1955
- {
1821
+ unblockHeaderElements() {
1956
1822
  var scrollerArr = this._getPaneScrollerArr();
1957
- for (var i=0; i<scrollerArr.length; i++) {
1823
+ for (var i = 0; i < scrollerArr.length; i++) {
1958
1824
  scrollerArr[i].getHeader().getBlocker().unblock();
1959
1825
  }
1960
1826
  this.getChildControl("column-button").getBlocker().unblock();
@@ -1967,12 +1833,10 @@ qx.Class.define("qx.ui.table.Table",
1967
1833
  * @param pageX {Integer} the position in the page to check (in pixels).
1968
1834
  * @return {Integer} the index of the meta column or -1.
1969
1835
  */
1970
- _getMetaColumnAtPageX : function(pageX)
1971
- {
1836
+ _getMetaColumnAtPageX(pageX) {
1972
1837
  var scrollerArr = this._getPaneScrollerArr();
1973
1838
 
1974
- for (var i=0; i<scrollerArr.length; i++)
1975
- {
1839
+ for (var i = 0; i < scrollerArr.length; i++) {
1976
1840
  var pos = scrollerArr[i].getContentLocation();
1977
1841
 
1978
1842
  if (pageX >= pos.left && pageX <= pos.right) {
@@ -1983,7 +1847,6 @@ qx.Class.define("qx.ui.table.Table",
1983
1847
  return -1;
1984
1848
  },
1985
1849
 
1986
-
1987
1850
  /**
1988
1851
  * Returns the meta column a column is shown in. If the column is not shown at
1989
1852
  * all, -1 is returned.
@@ -1991,13 +1854,11 @@ qx.Class.define("qx.ui.table.Table",
1991
1854
  * @param visXPos {Integer} the visible x position of the column.
1992
1855
  * @return {Integer} the meta column the column is shown in.
1993
1856
  */
1994
- _getMetaColumnAtColumnX : function(visXPos)
1995
- {
1857
+ _getMetaColumnAtColumnX(visXPos) {
1996
1858
  var metaColumnCounts = this.getMetaColumnCounts();
1997
1859
  var rightXPos = 0;
1998
1860
 
1999
- for (var i=0; i<metaColumnCounts.length; i++)
2000
- {
1861
+ for (var i = 0; i < metaColumnCounts.length; i++) {
2001
1862
  var counts = metaColumnCounts[i];
2002
1863
  rightXPos += counts;
2003
1864
 
@@ -2009,32 +1870,33 @@ qx.Class.define("qx.ui.table.Table",
2009
1870
  return -1;
2010
1871
  },
2011
1872
 
2012
-
2013
1873
  /**
2014
1874
  * Updates the text shown in the status bar.
2015
1875
  */
2016
- _updateStatusBar : function()
2017
- {
1876
+ _updateStatusBar() {
2018
1877
  var tableModel = this.getTableModel();
2019
1878
 
2020
- if (this.getStatusBarVisible())
2021
- {
1879
+ if (this.getStatusBarVisible()) {
2022
1880
  var selectedRowCount = this.getSelectionModel().getSelectedCount();
2023
1881
  var rowCount = tableModel.getRowCount();
2024
1882
 
2025
1883
  var text;
2026
1884
 
2027
- if (rowCount >= 0)
2028
- {
1885
+ if (rowCount >= 0) {
2029
1886
  if (selectedRowCount == 0) {
2030
1887
  text = this.trn("one row", "%1 rows", rowCount, rowCount);
2031
1888
  } else {
2032
- text = this.trn("one of one row", "%1 of %2 rows", rowCount, selectedRowCount, rowCount);
1889
+ text = this.trn(
1890
+ "one of one row",
1891
+ "%1 of %2 rows",
1892
+ rowCount,
1893
+ selectedRowCount,
1894
+ rowCount
1895
+ );
2033
1896
  }
2034
1897
  }
2035
1898
 
2036
- if (this.__additionalStatusBarText)
2037
- {
1899
+ if (this.__additionalStatusBarText) {
2038
1900
  if (text) {
2039
1901
  text += this.__additionalStatusBarText;
2040
1902
  } else {
@@ -2048,33 +1910,28 @@ qx.Class.define("qx.ui.table.Table",
2048
1910
  }
2049
1911
  },
2050
1912
 
2051
-
2052
1913
  /**
2053
1914
  * Updates the widths of all scrollers.
2054
1915
  */
2055
- _updateScrollerWidths : function()
2056
- {
1916
+ _updateScrollerWidths() {
2057
1917
  // Give all scrollers except for the last one the wanted width
2058
1918
  // (The last one has a flex with)
2059
1919
  var scrollerArr = this._getPaneScrollerArr();
2060
1920
 
2061
- for (var i=0; i<scrollerArr.length; i++)
2062
- {
2063
- var isLast = (i == (scrollerArr.length - 1));
1921
+ for (var i = 0; i < scrollerArr.length; i++) {
1922
+ var isLast = i == scrollerArr.length - 1;
2064
1923
  var width = scrollerArr[i].getTablePaneModel().getTotalWidth();
2065
1924
  scrollerArr[i].setPaneWidth(width);
2066
1925
 
2067
1926
  var flex = isLast ? 1 : 0;
2068
- scrollerArr[i].setLayoutProperties({flex: flex});
1927
+ scrollerArr[i].setLayoutProperties({ flex: flex });
2069
1928
  }
2070
1929
  },
2071
1930
 
2072
-
2073
1931
  /**
2074
1932
  * Updates the visibility of the scrollbars in the meta columns.
2075
1933
  */
2076
- _updateScrollBarVisibility : function()
2077
- {
1934
+ _updateScrollBarVisibility() {
2078
1935
  if (!this.getBounds()) {
2079
1936
  return;
2080
1937
  }
@@ -2088,17 +1945,14 @@ qx.Class.define("qx.ui.table.Table",
2088
1945
  var verNeeded = false;
2089
1946
  var excludeScrollerScrollbarsIfNotNeeded;
2090
1947
 
2091
-
2092
1948
  // Determine whether we need to render horizontal scrollbars for meta
2093
1949
  // columns that don't themselves actually require it
2094
1950
  excludeScrollerScrollbarsIfNotNeeded =
2095
1951
  this.getExcludeScrollerScrollbarsIfNotNeeded();
2096
1952
 
2097
- if (! excludeScrollerScrollbarsIfNotNeeded)
2098
- {
2099
- for (var i=0; i<scrollerArr.length; i++)
2100
- {
2101
- var isLast = (i == (scrollerArr.length - 1));
1953
+ if (!excludeScrollerScrollbarsIfNotNeeded) {
1954
+ for (var i = 0; i < scrollerArr.length; i++) {
1955
+ var isLast = i == scrollerArr.length - 1;
2102
1956
 
2103
1957
  // Only show the last vertical scrollbar
2104
1958
  var bars = scrollerArr[i].getNeededScrollBars(horNeeded, !isLast);
@@ -2107,49 +1961,51 @@ qx.Class.define("qx.ui.table.Table",
2107
1961
  horNeeded = true;
2108
1962
  }
2109
1963
 
2110
- if (isLast && (bars & verBar)) {
1964
+ if (isLast && bars & verBar) {
2111
1965
  verNeeded = true;
2112
1966
  }
2113
1967
  }
2114
1968
  }
2115
1969
 
2116
1970
  // Set the needed scrollbars
2117
- for (var i=0; i<scrollerArr.length; i++)
2118
- {
2119
- isLast = (i == (scrollerArr.length - 1));
1971
+ for (var i = 0; i < scrollerArr.length; i++) {
1972
+ isLast = i == scrollerArr.length - 1;
2120
1973
 
2121
1974
  // If we don't want to include scrollbars for meta columns that don't
2122
1975
  // require it, find out whether this meta column requires it.
2123
- if (excludeScrollerScrollbarsIfNotNeeded)
2124
- {
2125
- horNeeded =
2126
- !! (scrollerArr[i].getNeededScrollBars(false, !isLast) & horBar);
1976
+ if (excludeScrollerScrollbarsIfNotNeeded) {
1977
+ horNeeded = !!(
1978
+ scrollerArr[i].getNeededScrollBars(false, !isLast) & horBar
1979
+ );
2127
1980
 
2128
1981
  // Show the horizontal scrollbar if needed. Specify null to indicate
2129
1982
  // that the scrollbar should be hidden rather than excluded.
2130
1983
  scrollerArr[i].setHorizontalScrollBarVisible(horNeeded || null);
2131
- }
2132
- else
2133
- {
1984
+ } else {
2134
1985
  // Show the horizontal scrollbar if needed.
2135
1986
  scrollerArr[i].setHorizontalScrollBarVisible(horNeeded);
2136
1987
  }
2137
1988
 
2138
1989
  // If this is the last meta-column...
2139
- if (isLast)
2140
- {
1990
+ if (isLast) {
2141
1991
  // ... then get the current (old) use of vertical scroll bar
2142
- verNeeded =
2143
- !! (scrollerArr[i].getNeededScrollBars(false, false) & verBar);
1992
+ verNeeded = !!(
1993
+ scrollerArr[i].getNeededScrollBars(false, false) & verBar
1994
+ );
1995
+
2144
1996
  if (this.__hadVerticalScrollBar == null) {
2145
- this.__hadVerticalScrollBar = scrollerArr[i].getVerticalScrollBarVisible();
2146
- this.__timer = qx.event.Timer.once(function()
2147
- {
2148
- // reset the last visible state of the vertical scroll bar
2149
- // in a timeout to prevent infinite loops.
2150
- this.__hadVerticalScrollBar = null;
2151
- this.__timer = null;
2152
- }, this, 0);
1997
+ this.__hadVerticalScrollBar =
1998
+ scrollerArr[i].getVerticalScrollBarVisible();
1999
+ this.__timer = qx.event.Timer.once(
2000
+ function () {
2001
+ // reset the last visible state of the vertical scroll bar
2002
+ // in a timeout to prevent infinite loops.
2003
+ this.__hadVerticalScrollBar = null;
2004
+ this.__timer = null;
2005
+ },
2006
+ this,
2007
+ 0
2008
+ );
2153
2009
  }
2154
2010
  }
2155
2011
 
@@ -2157,20 +2013,17 @@ qx.Class.define("qx.ui.table.Table",
2157
2013
 
2158
2014
  // If this is the last meta-column and the use of a vertical scroll bar
2159
2015
  // has changed...
2160
- if (isLast && verNeeded != this.__hadVerticalScrollBar)
2161
- {
2016
+ if (isLast && verNeeded != this.__hadVerticalScrollBar) {
2162
2017
  // ... then dispatch an event to any awaiting listeners
2163
2018
  this.fireDataEvent("verticalScrollBarChanged", verNeeded);
2164
2019
  }
2165
2020
  }
2166
2021
  },
2167
2022
 
2168
-
2169
2023
  /**
2170
2024
  * Initialize the column menu
2171
2025
  */
2172
- _initColumnMenu : function()
2173
- {
2026
+ _initColumnMenu() {
2174
2027
  var tableModel = this.getTableModel();
2175
2028
  var columnModel = this.getTableColumnModel();
2176
2029
 
@@ -2181,166 +2034,138 @@ qx.Class.define("qx.ui.table.Table",
2181
2034
 
2182
2035
  // Inform listeners who may want to insert menu items at the beginning
2183
2036
  var menu = columnButton.getMenu();
2184
- var data =
2185
- {
2186
- table : this,
2187
- menu : menu,
2188
- columnButton : columnButton
2037
+ var data = {
2038
+ table: this,
2039
+ menu: menu,
2040
+ columnButton: columnButton
2189
2041
  };
2042
+
2190
2043
  this.fireDataEvent("columnVisibilityMenuCreateStart", data);
2191
2044
 
2192
2045
  this.__columnMenuButtons = {};
2193
- for (var col=0, l=tableModel.getColumnCount(); col<l; col++)
2194
- {
2195
- var menuButton =
2196
- columnButton.factory("menu-button",
2197
- {
2198
- text : tableModel.getColumnName(col),
2199
- column : col,
2200
- bVisible : columnModel.isColumnVisible(col)
2201
- });
2202
-
2203
- qx.core.Assert.assertInterface(menuButton,
2204
- qx.ui.table.IColumnMenuItem);
2046
+ for (var iCol = 0, l = tableModel.getColumnCount(); iCol < l; iCol++) {
2047
+ var col = columnModel.getOverallColumnAtX(iCol);
2048
+ var menuButton = columnButton.factory("menu-button", {
2049
+ text: tableModel.getColumnName(col),
2050
+ column: col,
2051
+ bVisible: columnModel.isColumnVisible(col)
2052
+ });
2053
+
2054
+ qx.core.Assert.assertInterface(menuButton, qx.ui.table.IColumnMenuItem);
2205
2055
 
2206
2056
  menuButton.addListener(
2207
2057
  "changeColumnVisible",
2208
- this._createColumnVisibilityCheckBoxHandler(col), this);
2058
+ this._createColumnVisibilityCheckBoxHandler(col),
2059
+ this
2060
+ );
2061
+
2209
2062
  this.__columnMenuButtons[col] = menuButton;
2210
2063
  }
2211
2064
 
2212
2065
  // Inform listeners who may want to insert menu items at the end
2213
- data =
2214
- {
2215
- table : this,
2216
- menu : menu,
2217
- columnButton : columnButton
2066
+ data = {
2067
+ table: this,
2068
+ menu: menu,
2069
+ columnButton: columnButton
2218
2070
  };
2071
+
2219
2072
  this.fireDataEvent("columnVisibilityMenuCreateEnd", data);
2220
2073
  },
2221
2074
 
2222
-
2223
-
2224
-
2225
-
2226
2075
  /**
2227
2076
  * Creates a handler for a check box of the column visibility menu.
2228
2077
  *
2229
2078
  * @param col {Integer} the model index of column to create the handler for.
2230
2079
  * @return {Function} The created event handler.
2231
2080
  */
2232
- _createColumnVisibilityCheckBoxHandler : function(col)
2233
- {
2234
- return function(evt)
2235
- {
2081
+ _createColumnVisibilityCheckBoxHandler(col) {
2082
+ return function (evt) {
2236
2083
  var columnModel = this.getTableColumnModel();
2237
2084
  columnModel.setColumnVisible(col, evt.getData());
2238
2085
  };
2239
2086
  },
2240
2087
 
2241
-
2242
2088
  /**
2243
2089
  * Sets the width of a column.
2244
2090
  *
2245
2091
  * @param col {Integer} the model index of column.
2246
2092
  * @param width {Integer} the new width in pixels.
2247
2093
  */
2248
- setColumnWidth : function(col, width) {
2094
+ setColumnWidth(col, width) {
2249
2095
  this.getTableColumnModel().setColumnWidth(col, width);
2250
2096
  },
2251
2097
 
2252
-
2253
2098
  /**
2254
2099
  * Resize event handler
2255
2100
  */
2256
- _onResize : function()
2257
- {
2101
+ _onResize() {
2258
2102
  this.fireEvent("tableWidthChanged");
2259
2103
  this._updateScrollerWidths();
2260
2104
  this._updateScrollBarVisibility();
2261
2105
  },
2262
2106
 
2263
-
2264
2107
  // overridden
2265
- addListener : function(type, listener, self, capture)
2266
- {
2267
- if (this.self(arguments).__redirectEvents[type])
2268
- {
2108
+ addListener(type, listener, self, capture) {
2109
+ if (this.self(arguments).__redirectEvents[type]) {
2269
2110
  // start the id with the type (needed for removing)
2270
2111
  var id = [type];
2271
- for (var i = 0, arr = this._getPaneScrollerArr(); i < arr.length; i++)
2272
- {
2112
+ for (var i = 0, arr = this._getPaneScrollerArr(); i < arr.length; i++) {
2273
2113
  id.push(arr[i].addListener.apply(arr[i], arguments));
2274
2114
  }
2275
2115
  // join the id's of every event with "
2276
2116
  return id.join('"');
2277
- }
2278
- else
2279
- {
2280
- return this.base(arguments, type, listener, self, capture);
2117
+ } else {
2118
+ return super.addListener(type, listener, self, capture);
2281
2119
  }
2282
2120
  },
2283
2121
 
2284
-
2285
2122
  // overridden
2286
- removeListener : function(type, listener, self, capture)
2287
- {
2288
- if (this.self(arguments).__redirectEvents[type])
2289
- {
2290
- for (var i = 0, arr = this._getPaneScrollerArr(); i < arr.length; i++)
2291
- {
2123
+ removeListener(type, listener, self, capture) {
2124
+ if (this.self(arguments).__redirectEvents[type]) {
2125
+ for (var i = 0, arr = this._getPaneScrollerArr(); i < arr.length; i++) {
2292
2126
  arr[i].removeListener.apply(arr[i], arguments);
2293
2127
  }
2294
- }
2295
- else
2296
- {
2297
- this.base(arguments, type, listener, self, capture);
2128
+ } else {
2129
+ super.removeListener(type, listener, self, capture);
2298
2130
  }
2299
2131
  },
2300
2132
 
2301
-
2302
2133
  // overridden
2303
- removeListenerById : function(id) {
2134
+ removeListenerById(id) {
2304
2135
  var ids = id.split('"');
2305
2136
  // type is the first entry of the connected id
2306
2137
  var type = ids.shift();
2307
- if (this.self(arguments).__redirectEvents[type])
2308
- {
2138
+ if (this.self(arguments).__redirectEvents[type]) {
2309
2139
  var removed = true;
2310
- for (var i = 0, arr = this._getPaneScrollerArr(); i < arr.length; i++)
2311
- {
2140
+ for (var i = 0, arr = this._getPaneScrollerArr(); i < arr.length; i++) {
2312
2141
  removed = arr[i].removeListenerById.call(arr[i], ids[i]) && removed;
2313
2142
  }
2314
2143
  return removed;
2315
- }
2316
- else
2317
- {
2318
- return this.base(arguments, id);
2144
+ } else {
2145
+ return super.removeListenerById(id);
2319
2146
  }
2320
2147
  },
2321
2148
 
2322
-
2323
- destroy : function()
2324
- {
2149
+ destroy() {
2325
2150
  this.getChildControl("column-button").getMenu().destroy();
2326
- this.base(arguments);
2151
+ super.destroy();
2327
2152
  }
2328
2153
  },
2329
2154
 
2330
-
2331
-
2332
-
2333
2155
  /*
2334
2156
  *****************************************************************************
2335
2157
  DESTRUCTOR
2336
2158
  *****************************************************************************
2337
2159
  */
2338
2160
 
2339
- destruct : function()
2340
- {
2161
+ destruct() {
2341
2162
  // remove the event listener which handled the locale change
2342
2163
  if (qx.core.Environment.get("qx.dynlocale")) {
2343
- qx.locale.Manager.getInstance().removeListener("changeLocale", this._onChangeLocale, this);
2164
+ qx.locale.Manager.getInstance().removeListener(
2165
+ "changeLocale",
2166
+ this._onChangeLocale,
2167
+ this
2168
+ );
2344
2169
  }
2345
2170
 
2346
2171
  // we allocated these objects on init so we have to clean them up.
@@ -2354,26 +2179,31 @@ qx.Class.define("qx.ui.table.Table",
2354
2179
  dataRowRenderer.dispose();
2355
2180
  }
2356
2181
 
2357
- if (this.getTableModel() != null)
2358
- {
2182
+ if (this.getTableModel() != null) {
2359
2183
  this.getTableModel().removeListener(
2360
2184
  "metaDataChanged",
2361
- this._onTableModelMetaDataChanged, this
2185
+ this._onTableModelMetaDataChanged,
2186
+ this
2362
2187
  );
2363
2188
 
2364
2189
  this.getTableModel().removeListener(
2365
2190
  "dataChanged",
2366
2191
  this._onTableModelDataChanged,
2367
- this);
2192
+ this
2193
+ );
2368
2194
  }
2369
2195
 
2370
2196
  this._cleanUpMetaColumns(0);
2371
2197
  this.getTableColumnModel().dispose();
2372
2198
  this._disposeObjects(
2373
- "__selectionManager", "__scrollerParent",
2374
- "__emptyTableModel", "__emptyTableModel",
2375
- "__columnModel", "__timer"
2199
+ "__selectionManager",
2200
+ "__scrollerParent",
2201
+ "__emptyTableModel",
2202
+ "__emptyTableModel",
2203
+ "__columnModel",
2204
+ "__timer"
2376
2205
  );
2206
+
2377
2207
  this._disposeMap("__columnMenuButtons");
2378
2208
  }
2379
2209
  });