@openui5/sap.ui.table 1.105.0 → 1.106.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.reuse/dep5 +20 -17
  2. package/THIRDPARTY.txt +31 -21
  3. package/package.json +3 -3
  4. package/src/sap/ui/table/.library +1 -1
  5. package/src/sap/ui/table/AnalyticalColumn.js +19 -1
  6. package/src/sap/ui/table/AnalyticalColumnMenu.js +19 -14
  7. package/src/sap/ui/table/AnalyticalTable.js +1 -1
  8. package/src/sap/ui/table/Column.js +102 -47
  9. package/src/sap/ui/table/ColumnMenu.js +18 -3
  10. package/src/sap/ui/table/CreationRow.js +1 -1
  11. package/src/sap/ui/table/Row.js +1 -1
  12. package/src/sap/ui/table/RowAction.js +1 -1
  13. package/src/sap/ui/table/RowActionItem.js +1 -1
  14. package/src/sap/ui/table/RowSettings.js +1 -1
  15. package/src/sap/ui/table/Table.js +43 -13
  16. package/src/sap/ui/table/TablePersoController.js +1 -1
  17. package/src/sap/ui/table/TreeTable.js +1 -1
  18. package/src/sap/ui/table/extensions/Accessibility.js +4 -4
  19. package/src/sap/ui/table/extensions/AccessibilityRender.js +1 -1
  20. package/src/sap/ui/table/extensions/DragAndDrop.js +1 -1
  21. package/src/sap/ui/table/extensions/ExtensionBase.js +1 -1
  22. package/src/sap/ui/table/extensions/Keyboard.js +1 -1
  23. package/src/sap/ui/table/extensions/KeyboardDelegate.js +1 -1
  24. package/src/sap/ui/table/extensions/Pointer.js +4 -2
  25. package/src/sap/ui/table/extensions/Scrolling.js +1 -1
  26. package/src/sap/ui/table/extensions/ScrollingIOS.js +1 -1
  27. package/src/sap/ui/table/extensions/Synchronization.js +1 -1
  28. package/src/sap/ui/table/library.js +10 -10
  29. package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +224 -0
  30. package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +398 -0
  31. package/src/sap/ui/table/plugins/BindingSelection.js +1 -1
  32. package/src/sap/ui/table/plugins/PluginBase.js +1 -1
  33. package/src/sap/ui/table/plugins/SelectionModelSelection.js +1 -1
  34. package/src/sap/ui/table/plugins/SelectionPlugin.js +1 -1
  35. package/src/sap/ui/table/plugins/V4Aggregation.js +13 -15
  36. package/src/sap/ui/table/rowmodes/AutoRowMode.js +1 -1
  37. package/src/sap/ui/table/rowmodes/FixedRowMode.js +1 -1
  38. package/src/sap/ui/table/rowmodes/InteractiveRowMode.js +1 -1
  39. package/src/sap/ui/table/rowmodes/RowMode.js +1 -1
  40. package/src/sap/ui/table/rowmodes/VariableRowMode.js +1 -1
  41. package/src/sap/ui/table/utils/TableUtils.js +1 -1
  42. package/src/sap/ui/table/utils/_BindingUtils.js +1 -1
  43. package/src/sap/ui/table/utils/_ColumnUtils.js +1 -1
  44. package/src/sap/ui/table/utils/_GroupingUtils.js +1 -1
  45. package/src/sap/ui/table/utils/_HookUtils.js +1 -1
  46. package/src/sap/ui/table/utils/_MenuUtils.js +19 -21
package/.reuse/dep5 CHANGED
@@ -43,6 +43,14 @@ License: Apache-2.0
43
43
  #
44
44
 
45
45
 
46
+ # Library: sap.m:
47
+
48
+ Files: src/sap.m/src/sap/m/_thirdparty/purify.js
49
+ Copyright: Mario Heiderich
50
+ License: Apache-2.0
51
+ Comment: these files belong to: purify.js
52
+
53
+
46
54
  # Library: sap.ui.codeeditor:
47
55
 
48
56
  Files: src/sap.ui.codeeditor/src/sap/ui/codeeditor/js/ace/*
@@ -127,17 +135,17 @@ Copyright:
127
135
  License: Apache-2.0 and MIT
128
136
  Comment: these files contain content from SAP and jQuery UI 1.11: zIndex.js is overall written by SAP, but contains an implementation of the function 'fnzIndex' which is taken from jQuery UI Datepicker 1.11.1
129
137
 
130
- Files: src/sap.ui.core/src/sap/ui/thirdparty/qunit.*
138
+ Files: src/sap.ui.core/src/sap/ui/thirdparty/qunit.css src/sap.ui.core/src/sap/ui/thirdparty/qunit.js
131
139
  Copyright: jQuery Foundation and other contributors
132
140
  License: MIT
133
141
  Comment: these files belong to: QUnit
134
142
 
135
- Files: src/sap.ui.core/src/sap/ui/thirdparty/qunit-2.*
143
+ Files: src/sap.ui.core/src/sap/ui/thirdparty/qunit-2.css src/sap.ui.core/src/sap/ui/thirdparty/qunit-2.js
136
144
  Copyright: jQuery Foundation and other contributors
137
145
  License: MIT
138
146
  Comment: these files belong to: QUnit 2
139
147
 
140
- Files: src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/qunit-2.18.*
148
+ Files: src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/qunit-2.18.css src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/qunit-2.18.js
141
149
  Copyright: jQuery Foundation and other contributors
142
150
  License: MIT
143
151
  Comment: these files belong to: QUnit 2.18
@@ -159,7 +167,7 @@ Copyright:
159
167
  License: Apache-2.0 and MIT
160
168
  Comment: these files contain content from SAP and jQuery.rtl-scroll-type: _FeatureDetection.js is overall written by SAP, but contains code which is inspired by jQuery.rtl-scroll-type
161
169
 
162
- Files: src/sap.ui.core/src/sap/ui/thirdparty/qunit-composite.*
170
+ Files: src/sap.ui.core/src/sap/ui/thirdparty/qunit-composite.css src/sap.ui.core/src/sap/ui/thirdparty/qunit-composite.js
163
171
  Copyright: jQuery Foundation and other contributors
164
172
  License: MIT
165
173
  Comment: these files belong to: QUnit Composite
@@ -239,7 +247,7 @@ Copyright: 2010-2017, Christian Johansen, christian@cjohansen.no
239
247
  License: BSD-3-Clause
240
248
  Comment: these files belong to: SinonJS
241
249
 
242
- Files: src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/sinon-14.0.*
250
+ Files: src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/sinon-14.0.js
243
251
  Copyright: 2010-2022, Christian Johansen, christian@cjohansen.no
244
252
  License: BSD-3-Clause
245
253
  Comment: these files belong to: SinonJS 14
@@ -313,7 +321,7 @@ Copyright: 2018 Michael Mclaughlin
313
321
  License: MIT
314
322
  Comment: these files belong to: bignumber.js
315
323
 
316
- Files: src/sap.ui.core/src/sap/ui/base/util/restricted/_/lodash.custom.js
324
+ Files: src/sap.ui.core/src/sap/base/util/restricted/_/lodash.custom.js
317
325
  Copyright: OpenJS Foundation and other contributors
318
326
  License: MIT
319
327
  Comment: these files belong to: lodash
@@ -323,7 +331,7 @@ Copyright: 2021 Mathias Nater
323
331
  License: MIT
324
332
  Comment: these files belong to: Hyphenopoly
325
333
 
326
- Files: src/sap.ui.core/src/sap/ui/base/util/restricted/_CancelablePromise.js
334
+ Files: src/sap.ui.core/src/sap/base/util/restricted/_CancelablePromise.js
327
335
  Copyright:
328
336
  Sindre Sorhus <sindresorhus@gmail.com>
329
337
  2014-present Sebastian McKenzie and other contributors
@@ -418,16 +426,6 @@ License: MIT
418
426
  Comment: these files belong to: @cfworker/json-schema
419
427
 
420
428
 
421
- # Library: sap.ui.mdc:
422
-
423
- Files: src/sap.ui.mdc/test/sap/ui/mdc/sample/field/filterfieldwithoperators/BoolExprTool.js
424
- Copyright:
425
- 2009-2022 SAP SE or an SAP affiliate company and OpenUI5 contributors
426
- 2015 unnikked
427
- License: Apache-2.0 and MIT
428
- Comment: these files contain content from SAP and BooleanExpressionEvaluator: BoolExprTool.js is authored by SAP, but partly inspired by BooleanExpressionEvaluator
429
-
430
-
431
429
  # Library: sap.ui.webc.common:
432
430
 
433
431
  Files: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/theming/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/localization/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-business-suite/*.*
@@ -448,6 +446,11 @@ Copyright: SAP
448
446
  License: Apache-2.0
449
447
  Comment: these files belong to: UI5 Web Components
450
448
 
449
+ Files: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/lib/zxing.js
450
+ Copyright: 2005 Sun Microsystems, Inc.; 2010-2014 University of Manchester; 2010-2015 Stian Soiland-Reyes; 2015 Peter Hull
451
+ License: Apache-2.0
452
+ Comment: these files belong to: ZXing
453
+
451
454
 
452
455
  # Library: sap.ui.webc.main:
453
456
 
package/THIRDPARTY.txt CHANGED
@@ -4,6 +4,15 @@ each subcomponent.
4
4
  The full text of all referenced licenses is appended at the end of this file.
5
5
 
6
6
 
7
+ Library: sap.m:
8
+
9
+ Component: purify.js, version: 2.3.8
10
+ Copyright: Mario Heiderich
11
+ License: Apache-2.0
12
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
13
+ Contained in: src/sap.m/src/sap/m/_thirdparty/purify.js
14
+
15
+
7
16
  Library: sap.ui.codeeditor:
8
17
 
9
18
  Component: Ace (Ajax.org Cloud9 Editor), version: 1.4.13
@@ -68,19 +77,22 @@ Component: QUnit, version: 1.18.0
68
77
  Copyright: jQuery Foundation and other contributors
69
78
  License: MIT
70
79
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
71
- Contained in: src/sap.ui.core/src/sap/ui/thirdparty/qunit.*
80
+ Contained in: src/sap.ui.core/src/sap/ui/thirdparty/qunit.css
81
+ src/sap.ui.core/src/sap/ui/thirdparty/qunit.js
72
82
 
73
83
  Component: QUnit 2, version: 2.3.2
74
84
  Copyright: jQuery Foundation and other contributors
75
85
  License: MIT
76
86
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
77
- Contained in: src/sap.ui.core/src/sap/ui/thirdparty/qunit-2.*
87
+ Contained in: src/sap.ui.core/src/sap/ui/thirdparty/qunit-2.css
88
+ src/sap.ui.core/src/sap/ui/thirdparty/qunit-2.js
78
89
 
79
90
  Component: QUnit 2.18, version: 2.18.0
80
91
  Copyright: jQuery Foundation and other contributors
81
92
  License: MIT
82
93
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
83
- Contained in: src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/qunit-2.18.*
94
+ Contained in: src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/qunit-2.18.css
95
+ src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/qunit-2.18.js
84
96
 
85
97
  Component: jQuery-Migrate, version: 3.3.1
86
98
  Copyright: OpenJS Foundation and other contributors
@@ -104,7 +116,8 @@ Component: QUnit Composite, version: 1.0.2-pre
104
116
  Copyright: jQuery Foundation and other contributors
105
117
  License: MIT
106
118
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
107
- Contained in: src/sap.ui.core/src/sap/ui/thirdparty/qunit-composite.*
119
+ Contained in: src/sap.ui.core/src/sap/ui/thirdparty/qunit-composite.css
120
+ src/sap.ui.core/src/sap/ui/thirdparty/qunit-composite.js
108
121
 
109
122
  Component: JUnit Reporter for QUnit, version: 1.1.1
110
123
  Copyright: jQuery Foundation and other contributors
@@ -201,7 +214,7 @@ Component: SinonJS 14, version: 14.0.0
201
214
  Copyright: 2010-2022, Christian Johansen, christian@cjohansen.no
202
215
  License: BSD-3-Clause
203
216
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
204
- Contained in: src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/sinon-14.0.*
217
+ Contained in: src/sap.ui.core/test/sap/ui/core/qunit/thirdparty/sinon-14.0.js
205
218
 
206
219
  Component: Sinon-qunit, version: 2.0.0
207
220
  Copyright: 2010-2011, Christian Johansen
@@ -289,7 +302,7 @@ Component: lodash, version: 4.17.21
289
302
  Copyright: OpenJS Foundation and other contributors
290
303
  License: MIT
291
304
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
292
- Contained in: src/sap.ui.core/src/sap/ui/base/util/restricted/_/lodash.custom.js
305
+ Contained in: src/sap.ui.core/src/sap/base/util/restricted/_/lodash.custom.js
293
306
 
294
307
  Component: Hyphenopoly, version: 3.4.0
295
308
  Copyright: 2021 Mathias Nater
@@ -301,13 +314,13 @@ Component: p-cancelable, version: 2.0.0
301
314
  Copyright: Sindre Sorhus <sindresorhus@gmail.com>
302
315
  License: MIT
303
316
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
304
- Contained in: src/sap.ui.core/src/sap/ui/base/util/restricted/_CancelablePromise.js
317
+ Contained in: src/sap.ui.core/src/sap/base/util/restricted/_CancelablePromise.js
305
318
 
306
319
  Component: @babel/helpers, version: 7.10.4
307
320
  Copyright: 2014-present Sebastian McKenzie and other contributors
308
321
  License: MIT
309
322
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
310
- Contained in: src/sap.ui.core/src/sap/ui/base/util/restricted/_CancelablePromise.js
323
+ Contained in: src/sap.ui.core/src/sap/base/util/restricted/_CancelablePromise.js
311
324
 
312
325
  Component: Jalaali JS
313
326
  Copyright: Behrang Norouzinia
@@ -407,18 +420,9 @@ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
407
420
  Contained in: src/sap.ui.integration/test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/CfWorkerJsonSchemaValidator.js
408
421
 
409
422
 
410
- Library: sap.ui.mdc:
411
-
412
- Component: BooleanExpressionEvaluator, version: master-18530acbf3
413
- Copyright: 2015 unnikked
414
- License: MIT
415
- License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
416
- Contained in: src/sap.ui.mdc/test/sap/ui/mdc/sample/field/filterfieldwithoperators/BoolExprTool.js
417
-
418
-
419
423
  Library: sap.ui.webc.common:
420
424
 
421
- Component: UI5 Web Components, version: 1.1.2
425
+ Component: UI5 Web Components, version: 1.5.0
422
426
  Copyright: SAP
423
427
  License: Apache-2.0
424
428
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
@@ -429,7 +433,7 @@ Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/*.*
429
433
  src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/*.*
430
434
  src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-business-suite/*.*
431
435
 
432
- Component: lit-html, version: 2.0.1
436
+ Component: lit-html, version: 2.2.2
433
437
  Copyright: Google LLC
434
438
  License: BSD-3-Clause
435
439
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
@@ -438,16 +442,22 @@ Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/lit-html/
438
442
 
439
443
  Library: sap.ui.webc.fiori:
440
444
 
441
- Component: UI5 Web Components, version: 1.1.2
445
+ Component: UI5 Web Components, version: 1.5.0
442
446
  Copyright: SAP
443
447
  License: Apache-2.0
444
448
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
445
449
  Contained in: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/thirdparty/*.*
446
450
 
451
+ Component: ZXing, version: 0.19.1
452
+ Copyright: 2005 Sun Microsystems, Inc.; 2010-2014 University of Manchester; 2010-2015 Stian Soiland-Reyes; 2015 Peter Hull
453
+ License: Apache-2.0
454
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
455
+ Contained in: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/lib/zxing.js
456
+
447
457
 
448
458
  Library: sap.ui.webc.main:
449
459
 
450
- Component: UI5 Web Components, version: 1.1.2
460
+ Component: UI5 Web Components, version: 1.5.0
451
461
  Copyright: SAP
452
462
  License: Apache-2.0
453
463
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.table",
3
- "version": "1.105.0",
3
+ "version": "1.106.0",
4
4
  "description": "OpenUI5 UI Library sap.ui.table",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,7 +14,7 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.ui.core": "1.105.0",
18
- "@openui5/sap.ui.unified": "1.105.0"
17
+ "@openui5/sap.ui.core": "1.106.0",
18
+ "@openui5/sap.ui.unified": "1.106.0"
19
19
  }
20
20
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.105.0</version>
9
+ <version>1.106.0</version>
10
10
 
11
11
  <documentation>Table-like controls, mainly for desktop scenarios.</documentation>
12
12
 
@@ -31,6 +31,8 @@ sap.ui.define([
31
31
  ) {
32
32
  "use strict";
33
33
 
34
+ var GroupEventType = library.GroupEventType;
35
+
34
36
  function isInstanceOfAnalyticalTable(oControl) {
35
37
  return TableUtils.isA(oControl, "sap.ui.table.AnalyticalTable");
36
38
  }
@@ -46,7 +48,7 @@ sap.ui.define([
46
48
  * @extends sap.ui.table.Column
47
49
  *
48
50
  * @author SAP SE
49
- * @version 1.105.0
51
+ * @version 1.106.0
50
52
  *
51
53
  * @constructor
52
54
  * @public
@@ -107,6 +109,22 @@ sap.ui.define([
107
109
  return new AnalyticalColumnMenu(this.getId() + "-menu");
108
110
  };
109
111
 
112
+ AnalyticalColumn.prototype._setGrouped = function(bGrouped) {
113
+ var oTable = this._getTable();
114
+ var sGroupEventType = bGrouped ? GroupEventType.group : GroupEventType.ungroup;
115
+
116
+ this.setGrouped(bGrouped);
117
+ oTable.fireGroup({column: this, groupedColumns: oTable._aGroupedColumns, type: sGroupEventType});
118
+ };
119
+
120
+ AnalyticalColumn.prototype._isAggregatableByMenu = function() {
121
+ var oTable = this._getTable(),
122
+ oBinding = oTable.getBinding(),
123
+ oResultSet = oBinding && oBinding.getAnalyticalQueryResult();
124
+
125
+ return oTable && oResultSet && oResultSet.findMeasureByPropertyName(this.getLeadingProperty());
126
+ };
127
+
110
128
  AnalyticalColumn.prototype.setGrouped = function(bGrouped) {
111
129
  var oParent = this.getParent();
112
130
 
@@ -5,13 +5,10 @@
5
5
  */
6
6
 
7
7
  // Provides control sap.ui.table.AnalyticalColumnMenu.
8
- sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './library', "sap/ui/thirdparty/jquery"],
9
- function(ColumnMenu, MenuRenderer, library, jQuery) {
8
+ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './utils/TableUtils', './library', "sap/ui/thirdparty/jquery"],
9
+ function(ColumnMenu, MenuRenderer, TableUtils, library, jQuery) {
10
10
  "use strict";
11
11
 
12
- // shortcut
13
- var GroupEventType = library.GroupEventType;
14
-
15
12
  /**
16
13
  * Constructor for a new AnalyticalColumnMenu.
17
14
  *
@@ -23,7 +20,7 @@ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './library', "sap/
23
20
  * @extends sap.ui.table.ColumnMenu
24
21
  *
25
22
  * @author SAP SE
26
- * @version 1.105.0
23
+ * @version 1.106.0
27
24
  *
28
25
  * @constructor
29
26
  * @public
@@ -67,10 +64,21 @@ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './library', "sap/
67
64
  function(oEvent) {
68
65
  var oMenuItem = oEvent.getSource();
69
66
  var bGrouped = oColumn.getGrouped();
70
- var sGroupEventType = bGrouped ? GroupEventType.group : GroupEventType.ungroup;
71
67
 
72
- oColumn.setGrouped(!bGrouped);
73
- oTable.fireGroup({column: oColumn, groupedColumns: oTable._aGroupedColumns, type: sGroupEventType});
68
+ oColumn._setGrouped(!bGrouped);
69
+ if (!bGrouped && !oColumn.getShowIfGrouped()) {
70
+ var oDomRef;
71
+
72
+ if (TableUtils.isNoDataVisible(oTable)) {
73
+ oDomRef = oTable.getDomRef("noDataCnt");
74
+ } else {
75
+ oDomRef = oTable.getDomRef("rowsel0");
76
+ }
77
+
78
+ if (oDomRef) {
79
+ oDomRef.focus();
80
+ }
81
+ }
74
82
  oMenuItem.setIcon(!bGrouped ? "sap-icon://accept" : null);
75
83
  }
76
84
  );
@@ -83,12 +91,9 @@ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './library', "sap/
83
91
  * @private
84
92
  */
85
93
  AnalyticalColumnMenu.prototype._addSumMenuItem = function() {
86
- var oColumn = this._oColumn,
87
- oTable = this._oTable,
88
- oBinding = oTable.getBinding(),
89
- oResultSet = oBinding && oBinding.getAnalyticalQueryResult();
94
+ var oColumn = this._oColumn;
90
95
 
91
- if (oTable && oResultSet && oResultSet.findMeasureByPropertyName(oColumn.getLeadingProperty())) {
96
+ if (oColumn._isAggregatableByMenu()) {
92
97
  this._oSumItem = this._createMenuItem(
93
98
  "total",
94
99
  "TBL_TOTAL",
@@ -56,7 +56,7 @@ sap.ui.define([
56
56
  * @see http://scn.sap.com/docs/DOC-44986
57
57
  *
58
58
  * @extends sap.ui.table.Table
59
- * @version 1.105.0
59
+ * @version 1.106.0
60
60
  *
61
61
  * @constructor
62
62
  * @public
@@ -8,7 +8,9 @@
8
8
  sap.ui.define([
9
9
  "./ColumnMenu",
10
10
  "./utils/TableUtils",
11
+ "./menus/ColumnHeaderMenuAdapter",
11
12
  "./library",
13
+ "sap/ui/core/Core",
12
14
  "sap/ui/core/Element",
13
15
  "sap/ui/core/Popup",
14
16
  "sap/ui/core/library",
@@ -24,7 +26,9 @@ sap.ui.define([
24
26
  ], function(
25
27
  ColumnMenu,
26
28
  TableUtils,
29
+ ColumnHeaderMenuAdapter,
27
30
  library,
31
+ Core,
28
32
  Element,
29
33
  Popup,
30
34
  coreLibrary,
@@ -68,7 +72,7 @@ sap.ui.define([
68
72
  * @class
69
73
  * The column allows you to define column specific properties that will be applied when rendering the table.
70
74
  * @extends sap.ui.core.Element
71
- * @version 1.105.0
75
+ * @version 1.106.0
72
76
  *
73
77
  * @constructor
74
78
  * @public
@@ -323,11 +327,11 @@ sap.ui.define([
323
327
  },
324
328
  associations: {
325
329
  /**
326
- * Provides a menu that is used by the column and replaces the menu aggregation when set.
327
- * The given menu has to follow the same pattern as the <code>sap.ui.core.IColumnHeaderMenu</code> interface.
328
- * @since 1.98.0
330
+ * The menu that can be opened by the header element of this column.
331
+ *
332
+ * @since 1.104
329
333
  */
330
- columnHeaderMenu: {type: "sap.ui.core.IColumnHeaderMenu", multiple: false, visibility: "hidden"}
334
+ headerMenu: {type: "sap.ui.core.IColumnHeaderMenu", multiple: false, visibility: "hidden"}
331
335
  },
332
336
  events : {
333
337
  /**
@@ -386,6 +390,7 @@ sap.ui.define([
386
390
  */
387
391
  Column.prototype.exit = function() {
388
392
  this._destroyTemplateClones();
393
+ ColumnHeaderMenuAdapter.unlink(this);
389
394
  };
390
395
 
391
396
  /**
@@ -807,6 +812,31 @@ sap.ui.define([
807
812
  }
808
813
  };
809
814
 
815
+ Column.prototype._openHeaderMenu = function(oDomRef) {
816
+ var oHeaderMenu = this.getHeaderMenuInstance();
817
+ if (oHeaderMenu) {
818
+ ColumnHeaderMenuAdapter.activateFor(this).then(function() {
819
+ oHeaderMenu.openBy(oDomRef);
820
+ });
821
+ }
822
+ };
823
+
824
+ Column.prototype._isMenuOpen = function() {
825
+ var oHeaderMenu = this.getHeaderMenuInstance();
826
+ if (!oHeaderMenu) {
827
+ return false;
828
+ }
829
+ return oHeaderMenu.isOpen();
830
+ };
831
+
832
+ Column.prototype._setGrouped = function(bGrouped) {
833
+ var oTable = this._getTable();
834
+ oTable.setGroupBy(bGrouped ? this : null);
835
+ };
836
+
837
+ Column.prototype._isAggregatableByMenu = function() {
838
+ return false;
839
+ };
810
840
 
811
841
  /**
812
842
  * Toggles the sort order of the column.
@@ -847,54 +877,70 @@ sap.ui.define([
847
877
  });
848
878
 
849
879
  if (bExecuteDefault) {
850
- var aSortedCols = oTable.getSortedColumns();
851
- var aColumns = oTable.getColumns();
852
-
853
- // reset the sorting status of all columns which are not sorted anymore
854
- for (var i = 0, l = aColumns.length; i < l; i++) {
855
- if (aSortedCols.indexOf(aColumns[i]) < 0) {
856
- // column is not sorted anymore -> reset default and remove sorter
857
- aColumns[i].setProperty("sorted", false, true);
858
- aColumns[i].setProperty("sortOrder", SortOrder.Ascending, true);
859
- aColumns[i]._updateIcons(true);
860
- delete _private(aColumns[i]).oSorter;
861
- }
862
- }
863
-
864
880
  // update properties of current column
865
881
  this.setProperty("sorted", true, true);
866
882
  this.setProperty("sortOrder", sNewSortOrder, true);
867
883
  _private(this).oSorter = new Sorter(this.getSortProperty(), this.getSortOrder() === SortOrder.Descending);
868
884
 
869
- // add sorters of all sorted columns to one sorter-array and update sort icon rendering for sorted columns
870
- var aSorters = [];
871
- for (var i = 0, l = aSortedCols.length; i < l; i++) {
872
- aSortedCols[i]._updateIcons(true);
873
- aSorters.push(_private(aSortedCols[i]).oSorter);
874
- }
885
+ this._applySorters(sNewSortOrder, bAdd);
886
+ }
887
+ }
888
+ return this;
889
+ };
875
890
 
876
- oTable._resetColumnHeaderHeights();
877
- oTable._updateRowHeights(oTable._collectRowHeights(true), true);
878
-
879
- var oBinding = oTable.getBinding();
880
- if (oBinding) {
881
- // For the AnalyticalTable with an AnalyticalColumn.
882
- if (this._updateTableAnalyticalInfo) {
883
- // The analytical info must be updated before sorting via the binding. The request will still be correct, but the binding
884
- // will create its internal data structure based on the analytical info. We also do not need to get the contexts right
885
- // now (therefore "true" is passed"), this will be done later in refreshRows.
886
- this._updateTableAnalyticalInfo(true);
887
- }
891
+ Column.prototype._unsort = function() {
892
+ var oTable = this.getParent();
893
+ if (oTable) {
894
+ // add current column to list of sorted columns
895
+ oTable._removeSortedColumn(this);
888
896
 
889
- // sort the binding
890
- oBinding.sort(aSorters);
897
+ this._applySorters();
898
+ }
899
+ return this;
900
+ };
891
901
 
892
- } else {
893
- Log.warning("Sorting not performed because no binding present", this);
894
- }
902
+ Column.prototype._applySorters = function(sNewSortOrder, bAdd) {
903
+ var oTable = this.getParent();
904
+ var aSortedCols = oTable.getSortedColumns();
905
+ var aColumns = oTable.getColumns();
906
+
907
+ // reset the sorting status of all columns which are not sorted anymore
908
+ for (var i = 0, l = aColumns.length; i < l; i++) {
909
+ if (aSortedCols.indexOf(aColumns[i]) < 0) {
910
+ // column is not sorted anymore -> reset default and remove sorter
911
+ aColumns[i].setProperty("sorted", false, true);
912
+ aColumns[i].setProperty("sortOrder", SortOrder.Ascending, true);
913
+ aColumns[i]._updateIcons(true);
914
+ delete _private(aColumns[i]).oSorter;
895
915
  }
896
916
  }
897
- return this;
917
+
918
+ // add sorters of all sorted columns to one sorter-array and update sort icon rendering for sorted columns
919
+ var aSorters = [];
920
+ for (var i = 0, l = aSortedCols.length; i < l; i++) {
921
+ aSortedCols[i]._updateIcons(true);
922
+ aSorters.push(_private(aSortedCols[i]).oSorter);
923
+ }
924
+
925
+ oTable._resetColumnHeaderHeights();
926
+ oTable._updateRowHeights(oTable._collectRowHeights(true), true);
927
+
928
+ var oBinding = oTable.getBinding();
929
+ if (oBinding) {
930
+ // For the AnalyticalTable with an AnalyticalColumn.
931
+ if (this._updateTableAnalyticalInfo) {
932
+ // The analytical info must be updated before sorting via the binding. The request will still be correct, but the binding
933
+ // will create its internal data structure based on the analytical info. We also do not need to get the contexts right
934
+ // now (therefore "true" is passed"), this will be done later in refreshRows.
935
+ this._updateTableAnalyticalInfo(true);
936
+ }
937
+
938
+ // sort the binding
939
+ oBinding.sort(aSorters);
940
+
941
+ } else {
942
+ Log.warning("Sorting not performed because no binding present", this);
943
+ }
898
944
  };
899
945
 
900
946
  Column.prototype._updateIcons = function(bSkipUpdateRowHeights) {
@@ -925,6 +971,15 @@ sap.ui.define([
925
971
  this._updateIcons();
926
972
  };
927
973
 
974
+ Column.prototype._getFilterState = function() {
975
+ try {
976
+ this._getFilter();
977
+ return ValueState.None;
978
+ } catch (e) {
979
+ return ValueState.Error;
980
+ }
981
+ };
982
+
928
983
  Column.prototype._getFilter = function() {
929
984
 
930
985
  var oFilter,
@@ -1316,13 +1371,13 @@ sap.ui.define([
1316
1371
  };
1317
1372
 
1318
1373
  /**
1319
- * Returns the <code>sap.ui.core.IColumnHeaderMenu<\code>, which is the current target of the association <code>columnHeaderMenu</code>, or null.
1374
+ * Returns the column header menu instance that this column is associated with via the <code>headerMenu</code> association.
1320
1375
  *
1321
- * @returns {sap.ui.core.IColumnHeaderMenu}
1376
+ * @returns {sap.ui.core.IColumnHeaderMenu | undefined} The column header menu instance
1322
1377
  * @private
1323
1378
  */
1324
- Column.prototype.getColumnHeaderMenu = function () {
1325
- return sap.ui.getCore().byId(this.getAssociation("columnHeaderMenu"));
1379
+ Column.prototype.getHeaderMenuInstance = function () {
1380
+ return Core.byId(this.getAssociation("headerMenu"));
1326
1381
  };
1327
1382
 
1328
1383
  function validateCellContentVisibilitySettings(mSettings) {
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @class
40
40
  * The column menu provides all common actions that can be performed on a column.
41
41
  * @extends sap.ui.unified.Menu
42
- * @version 1.105.0
42
+ * @version 1.106.0
43
43
  *
44
44
  * @constructor
45
45
  * @public
@@ -265,7 +265,18 @@ sap.ui.define([
265
265
  "TBL_GROUP",
266
266
  null,
267
267
  function() {
268
+ var oDomRef;
268
269
  oTable.setGroupBy(oColumn);
270
+
271
+ if (TableUtils.isNoDataVisible(oTable)) {
272
+ oDomRef = oTable.getDomRef("noDataCnt");
273
+ } else {
274
+ oDomRef = oTable.getDomRef("rowsel0");
275
+ }
276
+
277
+ if (oDomRef) {
278
+ oDomRef.focus();
279
+ }
269
280
  }
270
281
  ));
271
282
  }
@@ -356,6 +367,10 @@ sap.ui.define([
356
367
  });
357
368
  }
358
369
  if (bExecuteDefault) {
370
+ if (oTable.getFocusDomRef().getAttribute("id") === oColumn.getId()) {
371
+ var aVisibleColumns = oTable._getVisibleColumns();
372
+ aVisibleColumns[Math.min(aVisibleColumns.indexOf(oColumn) + 1, TableUtils.getVisibleColumnCount(oTable) - 2)].focus();
373
+ }
359
374
  oColumn.setVisible(bVisible);
360
375
  }
361
376
  }
@@ -404,7 +419,7 @@ sap.ui.define([
404
419
 
405
420
 
406
421
  /**
407
- * sets a new filter value into the filter field
422
+ * Sets a new filter value into the filter field
408
423
  * @param {string} sValue value of the filter input field to be set
409
424
  * @returns {this} this reference for chaining
410
425
  * @private
@@ -421,7 +436,7 @@ sap.ui.define([
421
436
  };
422
437
 
423
438
  /**
424
- * sets a new filter value into the filter field
439
+ * Sets the value state of the filter field
425
440
  * @param {sap.ui.core.ValueState} sFilterState value state for filter text field item
426
441
  * @returns {this} this reference for chaining
427
442
  * @private
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * <code>sap.ui.commons</code> library.
33
33
  * @extends sap.ui.core.Control
34
34
  * @author SAP SE
35
- * @version 1.105.0
35
+ * @version 1.106.0
36
36
  *
37
37
  * @constructor
38
38
  * @private