@openui5/sap.ui.table 1.112.2 → 1.114.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 (51) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +3 -3
  3. package/src/sap/ui/table/.library +1 -1
  4. package/src/sap/ui/table/AnalyticalColumn.js +2 -2
  5. package/src/sap/ui/table/AnalyticalColumnMenu.js +1 -1
  6. package/src/sap/ui/table/AnalyticalTable.js +1 -1
  7. package/src/sap/ui/table/Column.js +1 -1
  8. package/src/sap/ui/table/ColumnMenu.js +1 -1
  9. package/src/sap/ui/table/CreationRow.js +1 -1
  10. package/src/sap/ui/table/Row.js +2 -2
  11. package/src/sap/ui/table/RowAction.js +1 -1
  12. package/src/sap/ui/table/RowActionItem.js +1 -1
  13. package/src/sap/ui/table/RowSettings.js +1 -1
  14. package/src/sap/ui/table/Table.js +60 -54
  15. package/src/sap/ui/table/TablePersoController.js +1 -1
  16. package/src/sap/ui/table/TableRenderer.js +8 -8
  17. package/src/sap/ui/table/TreeTable.js +1 -1
  18. package/src/sap/ui/table/extensions/Accessibility.js +22 -19
  19. package/src/sap/ui/table/extensions/AccessibilityRender.js +3 -14
  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 +83 -50
  24. package/src/sap/ui/table/extensions/Pointer.js +7 -33
  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 +2 -2
  28. package/src/sap/ui/table/library.js +48 -17
  29. package/src/sap/ui/table/menus/ColumnHeaderMenuAdapter.js +1 -1
  30. package/src/sap/ui/table/menus/MobileColumnHeaderMenuAdapter.js +1 -1
  31. package/src/sap/ui/table/messagebundle_bg.properties +6 -6
  32. package/src/sap/ui/table/messagebundle_da.properties +1 -1
  33. package/src/sap/ui/table/plugins/BindingSelection.js +61 -19
  34. package/src/sap/ui/table/plugins/MultiSelectionPlugin.js +33 -21
  35. package/src/sap/ui/table/plugins/ODataV4Selection.js +490 -0
  36. package/src/sap/ui/table/plugins/PluginBase.js +1 -1
  37. package/src/sap/ui/table/plugins/SelectionModelSelection.js +71 -24
  38. package/src/sap/ui/table/plugins/SelectionPlugin.js +47 -160
  39. package/src/sap/ui/table/plugins/V4Aggregation.js +8 -6
  40. package/src/sap/ui/table/rowmodes/AutoRowMode.js +1 -1
  41. package/src/sap/ui/table/rowmodes/FixedRowMode.js +1 -1
  42. package/src/sap/ui/table/rowmodes/InteractiveRowMode.js +1 -1
  43. package/src/sap/ui/table/rowmodes/RowMode.js +1 -1
  44. package/src/sap/ui/table/rowmodes/VariableRowMode.js +1 -1
  45. package/src/sap/ui/table/rules/Accessibility.support.js +2 -2
  46. package/src/sap/ui/table/utils/TableUtils.js +21 -64
  47. package/src/sap/ui/table/utils/_BindingUtils.js +1 -1
  48. package/src/sap/ui/table/utils/_ColumnUtils.js +1 -1
  49. package/src/sap/ui/table/utils/_GroupingUtils.js +2 -2
  50. package/src/sap/ui/table/utils/_HookUtils.js +1 -1
  51. package/src/sap/ui/table/utils/_MenuUtils.js +1 -1
package/THIRDPARTY.txt CHANGED
@@ -478,7 +478,7 @@ License: Apache-2.0
478
478
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
479
479
  Contained in: lib/jsdoc/ui5/plugin.js
480
480
 
481
- Component: SAP Theming Base Content, version: 11.1.48
481
+ Component: SAP Theming Base Content, version: 11.3.0
482
482
  Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
483
483
  License: Apache-2.0
484
484
  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.112.2",
3
+ "version": "1.114.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.112.2",
18
- "@openui5/sap.ui.unified": "1.112.2"
17
+ "@openui5/sap.ui.core": "1.114.0",
18
+ "@openui5/sap.ui.unified": "1.114.0"
19
19
  }
20
20
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.112.2</version>
9
+ <version>1.114.0</version>
10
10
 
11
11
  <documentation>Table-like controls, mainly for desktop scenarios.</documentation>
12
12
 
@@ -48,7 +48,7 @@ sap.ui.define([
48
48
  * @extends sap.ui.table.Column
49
49
  *
50
50
  * @author SAP SE
51
- * @version 1.112.2
51
+ * @version 1.114.0
52
52
  *
53
53
  * @constructor
54
54
  * @public
@@ -301,7 +301,7 @@ sap.ui.define([
301
301
 
302
302
  AnalyticalColumn.prototype._getDefaultTooltip = function() {
303
303
  var oParent = this.getParent();
304
- if (isInstanceOfAnalyticalTable(oParent)) {
304
+ if (isInstanceOfAnalyticalTable(oParent) && !oParent._getHideStandardTooltips()) {
305
305
  var oBinding = oParent.getBinding();
306
306
  if (oBinding && this.getLeadingProperty()) {
307
307
  return oBinding.getPropertyQuickInfo(this.getLeadingProperty());
@@ -20,7 +20,7 @@ sap.ui.define(['./ColumnMenu', "sap/ui/unified/MenuRenderer", './utils/TableUtil
20
20
  * @extends sap.ui.table.ColumnMenu
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.112.2
23
+ * @version 1.114.0
24
24
  *
25
25
  * @constructor
26
26
  * @public
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  * @see https://github.com/SAP/odata-vocabularies/blob/main/docs/v2-annotations.md
59
59
  *
60
60
  * @extends sap.ui.table.Table
61
- * @version 1.112.2
61
+ * @version 1.114.0
62
62
  *
63
63
  * @constructor
64
64
  * @public
@@ -72,7 +72,7 @@ sap.ui.define([
72
72
  * @class
73
73
  * The column allows you to define column specific properties that will be applied when rendering the table.
74
74
  * @extends sap.ui.core.Element
75
- * @version 1.112.2
75
+ * @version 1.114.0
76
76
  *
77
77
  * @constructor
78
78
  * @public
@@ -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.112.2
42
+ * @version 1.114.0
43
43
  *
44
44
  * @constructor
45
45
  * @public
@@ -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.112.2
35
+ * @version 1.114.0
36
36
  *
37
37
  * @constructor
38
38
  * @private
@@ -135,7 +135,7 @@ sap.ui.define([
135
135
  * @class
136
136
  * The row.
137
137
  * @extends sap.ui.core.Element
138
- * @version 1.112.2
138
+ * @version 1.114.0
139
139
  *
140
140
  * @constructor
141
141
  * @public
@@ -353,7 +353,7 @@ sap.ui.define([
353
353
  */
354
354
  Row.prototype._updateSelection = function() {
355
355
  var oTable = this.getTable();
356
- var bIsSelected = oTable._getSelectionPlugin().isIndexSelected(this.getIndex());
356
+ var bIsSelected = oTable._getSelectionPlugin().isSelected(this);
357
357
 
358
358
  this._setSelected(bIsSelected);
359
359
  oTable._getAccExtension().updateSelectionStateOfRow(this);
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * If more action items are available as the available space allows to display an overflow mechanism is provided.
36
36
  * This control must only be used in the context of the <code>sap.ui.table.Table</code> control to define row actions.
37
37
  * @extends sap.ui.core.Control
38
- * @version 1.112.2
38
+ * @version 1.114.0
39
39
  *
40
40
  * @constructor
41
41
  * @public
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.ui.core.Element
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.112.2
27
+ * @version 1.114.0
28
28
  * @since 1.45
29
29
  *
30
30
  * @constructor
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * The <code>RowSettings</code> control allows you to configure a row.
25
25
  * You can only use this control in the context of the <code>sap.ui.table.Table</code> control to define row settings.
26
26
  * @extends sap.ui.core.Element
27
- * @version 1.112.2
27
+ * @version 1.114.0
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -92,7 +92,7 @@ sap.ui.define([
92
92
  * the data model and binding being used.
93
93
  * </p>
94
94
  * @extends sap.ui.core.Control
95
- * @version 1.112.2
95
+ * @version 1.114.0
96
96
  *
97
97
  * @constructor
98
98
  * @public
@@ -374,7 +374,7 @@ sap.ui.define([
374
374
  /**
375
375
  * Control or text of title section of the Table (if not set it will be hidden)
376
376
  *
377
- * @deprecated As of 1.72. Use the <code>extension</code> aggregation instead.
377
+ * @deprecated As of version 1.72. Use, for example, a <code>sap.m.Title</code> control in the <code>extension</code> aggregation instead.
378
378
  */
379
379
  title: {type: "sap.ui.core.Control", altTypes: ["string"], multiple: false, deprecated: true},
380
380
 
@@ -387,7 +387,7 @@ sap.ui.define([
387
387
  * Toolbar of the Table
388
388
  * If not set, no toolbar area will be rendered.
389
389
  * Note: The CSS class sapMTBHeader-CTX is applied on the given toolbar.
390
- * @deprecated Since version 1.38. This aggregation is deprecated, use the <code>extension</code> aggregation instead.
390
+ * @deprecated As of version 1.38. This aggregation is deprecated, use the <code>extension</code> aggregation instead.
391
391
  */
392
392
  toolbar: {type: "sap.ui.core.Toolbar", multiple: false, deprecated: true},
393
393
 
@@ -417,6 +417,11 @@ sap.ui.define([
417
417
  * The actions of rows can be defined with the {@link sap.ui.table.Table#setRowActionTemplate rowActionTemplate} aggregation of the table.
418
418
  * Furthermore, row-specific settings can be defined with the {@link sap.ui.table.Table#setRowSettingsTemplate rowSettingsTemplate}
419
419
  * aggregation of the table.
420
+ *
421
+ * <b>Note:</b> During the binding of rows, the (exact) count needs to be available in the table and has to be requested.
422
+ * If the count is not requested, this may lead to unexpected behavior in the table, such as scrolling, accessibility, or keyboard issues.
423
+ * Please refer to the documentation of the used model for information on requesting the count, for example, {@link sap.ui.model.odata.v2.ODataModel}
424
+ * or {@link sap.ui.model.odata.v4.ODataModel}.
420
425
  */
421
426
  rows: {type: "sap.ui.table.Row", multiple: true, singularName: "row", bindable: "bindable", selector: "#{id}-tableCCnt", dnd: true},
422
427
 
@@ -749,7 +754,7 @@ sap.ui.define([
749
754
  /**
750
755
  * fired when the user clicks a cell of the table.
751
756
  * @since 1.21.0
752
- * @deprecated As of 1.54, replaced by <code>beforeOpenContextMenu</code>.
757
+ * @deprecated As of version 1.54, replaced by <code>beforeOpenContextMenu</code>.
753
758
  */
754
759
  cellContextmenu: {
755
760
  allowPreventDefault: true,
@@ -992,7 +997,7 @@ sap.ui.define([
992
997
  this._mAnimationFrames = {};
993
998
 
994
999
  // TBD: Tooltips are not desired by Visual Design, discuss whether to switch it off by default
995
- this._bHideStandardTooltips = false;
1000
+ this._setHideStandardTooltips(false);
996
1001
 
997
1002
  this._aRowHeights = [];
998
1003
  this._aSortedColumns = [];
@@ -1579,7 +1584,7 @@ sap.ui.define([
1579
1584
  var oDummyColumn = this.getDomRef("dummycolhdr");
1580
1585
 
1581
1586
  if (oDummyColumn) {
1582
- var bDummyColumnHasWidth = oDummyColumn.clientWidth > 0;
1587
+ var bDummyColumnHasWidth = oDummyColumn.clientWidth > 1;
1583
1588
 
1584
1589
  if (!bHasFlexibleRowActions && bDummyColumnHasWidth) {
1585
1590
  var iColumnsWidth = this.getColumns().reduce(function(iColumnsWidth, oColumn) {
@@ -1658,8 +1663,8 @@ sap.ui.define([
1658
1663
  /**
1659
1664
  * Sets the focus to the stored focus DOM reference.
1660
1665
  *
1661
- * If {@param oFocusInfo.targetInfo} is of type {@type sap.ui.core.message.Message},
1662
- * the focus will be set as accurately as possible according to the information provided by {@type sap.ui.core.message.Message}.
1666
+ * If <code>oFocusInfo.targetInfo</code> is of type {@link sap.ui.core.message.Message},
1667
+ * the focus will be set as accurately as possible according to the information provided by {@link sap.ui.core.message.Message}.
1663
1668
  *
1664
1669
  * @param {object} [oFocusInfo={}] Options for setting the focus
1665
1670
  * @param {boolean} [oFocusInfo.preventScroll=false] @since 1.60 If set to <code>true</code>, the focused
@@ -3163,7 +3168,7 @@ sap.ui.define([
3163
3168
  }
3164
3169
 
3165
3170
  if (mRenderConfig.headerSelector.type === "toggle") {
3166
- var bAllRowsSelected = TableUtils.areAllRowsSelected(this);
3171
+ var bAllRowsSelected = mRenderConfig.headerSelector.selected;
3167
3172
 
3168
3173
  $SelectAll.toggleClass("sapUiTableSelAll", !bAllRowsSelected);
3169
3174
  this._getAccExtension().setSelectAllState(bAllRowsSelected);
@@ -3182,20 +3187,42 @@ sap.ui.define([
3182
3187
 
3183
3188
  if (sSelectAllResourceTextID) {
3184
3189
  sSelectAllText = TableUtils.getResourceText(sSelectAllResourceTextID);
3185
- if (this._getShowStandardTooltips()) {
3186
- $SelectAll.attr('title', sSelectAllText);
3187
- } else if (mRenderConfig.headerSelector.type === "toggle") {
3188
- this.getDomRef("ariaselectall").innerText = sSelectAllText;
3189
- }
3190
+ $SelectAll.attr('title', sSelectAllText);
3190
3191
  }
3191
3192
  };
3192
3193
 
3193
3194
  /**
3194
- * Returns <code>true</code>, if the standard tooltips (e.g. for selection should be shown).
3195
+ * Returns whether certain additional standard tooltips should be shown or not.
3196
+ *
3197
+ * see <code>_setHideStandardTooltips</code> for more details
3198
+ *
3199
+ * @private
3200
+ * @returns {boolean} <code>true</code>, when additional standard tooltips should be shown
3201
+ */
3202
+ Table.prototype._getHideStandardTooltips = function() {
3203
+ return this._bHideStandardTooltips;
3204
+ };
3205
+
3206
+ /**
3207
+ * Defines whether certain additional standard tooltips should be shown or hidden.
3208
+ * The tooltips which are affected by this setting are:
3209
+ *
3210
+ * <ul>
3211
+ * <li>Text on Group headers</li>
3212
+ * <li>Tooltips on Row Selectors and Row for Selection</li>
3213
+ * <li>Default tooltips on AnalyticalColumn headers</li>
3214
+ * </ul>
3215
+ *
3216
+ * Other tooltips like for Select All / Clear All icons, Expand / Collapse icons or Row Actions are not affected.
3217
+ *
3218
+ * <b>Note: The changes only take effect after a full invalidation / rerendering of the table.</b>
3219
+ *
3220
+ * @param {boolean} bHideStandardTooltips Whether to show the additional tooltips or not
3195
3221
  * @private
3222
+ * @ui5-restricted sap.ui.comp, sap.ui.mdc
3196
3223
  */
3197
- Table.prototype._getShowStandardTooltips = function() {
3198
- return !this._bHideStandardTooltips;
3224
+ Table.prototype._setHideStandardTooltips = function(bHideStandardTooltips) {
3225
+ this._bHideStandardTooltips = bHideStandardTooltips;
3199
3226
  };
3200
3227
 
3201
3228
  /**
@@ -3203,24 +3230,26 @@ sap.ui.define([
3203
3230
  * @private
3204
3231
  */
3205
3232
  Table.prototype._onSelectionChanged = function(oEvent) {
3233
+ this._updateSelection();
3234
+
3235
+ // If a selection plugin is applied to the table, the "rowSelectionChange" event should not be fired.
3236
+ if (this._hasSelectionPlugin()) {
3237
+ return;
3238
+ }
3239
+
3206
3240
  var oSelectionPlugin = this._getSelectionPlugin();
3207
3241
  var aRowIndices = oEvent.getParameter("rowIndices");
3208
3242
  var bSelectAll = oEvent.getParameter("selectAll");
3209
3243
  var iRowIndex = this._iSourceRowIndex !== undefined ? this._iSourceRowIndex : oSelectionPlugin.getSelectedIndex();
3210
3244
 
3211
- this._updateSelection();
3212
-
3213
- // If a selection plugin is applied to the table, the "rowSelectionChange" event should not be fired.
3214
- if (!this._hasSelectionPlugin()) {
3215
- this.setProperty("selectedIndex", oSelectionPlugin.getSelectedIndex(), true);
3216
- this.fireRowSelectionChange({
3217
- rowIndex: iRowIndex,
3218
- rowContext: this.getContextByIndex(iRowIndex),
3219
- rowIndices: aRowIndices,
3220
- selectAll: bSelectAll,
3221
- userInteraction: this._iSourceRowIndex !== undefined
3222
- });
3223
- }
3245
+ this.setProperty("selectedIndex", oSelectionPlugin.getSelectedIndex(), true);
3246
+ this.fireRowSelectionChange({
3247
+ rowIndex: iRowIndex,
3248
+ rowContext: this.getContextByIndex(iRowIndex),
3249
+ rowIndices: aRowIndices,
3250
+ selectAll: bSelectAll,
3251
+ userInteraction: this._iSourceRowIndex !== undefined
3252
+ });
3224
3253
  };
3225
3254
 
3226
3255
  /**
@@ -3826,7 +3855,7 @@ sap.ui.define([
3826
3855
  * @param {object} [mSettings] settings for the new Export, see {@link sap.ui.core.util.Export} <code>constructor</code>
3827
3856
  * @returns {sap.ui.core.util.Export} Export object
3828
3857
  * @experimental Experimental because the property for the column/cell definitions (sortProperty) could change in future.
3829
- * @deprecated As of 1.56, replaced by the <code>sap.ui.export</code> library.
3858
+ * @deprecated As of version 1.56, replaced by the <code>sap.ui.export</code> library.
3830
3859
  * @public
3831
3860
  */
3832
3861
  Table.prototype.exportData = function(mSettings) {
@@ -3915,29 +3944,6 @@ sap.ui.define([
3915
3944
  }
3916
3945
  };
3917
3946
 
3918
- /**
3919
- * Toggles the selection state of all cells.
3920
- * @private
3921
- */
3922
- Table.prototype._toggleSelectAll = function() {
3923
- if (!TableUtils.hasData(this) || this.getSelectionMode() !== SelectionMode.MultiToggle) {
3924
- return;
3925
- }
3926
-
3927
- var oSelectionPlugin = this._getSelectionPlugin();
3928
-
3929
- // in order to fire the rowSelectionChanged event, the SourceRowIndex mus be set to -1
3930
- // to indicate that the selection was changed by user interaction
3931
- if (TableUtils.areAllRowsSelected(this)) {
3932
- this._iSourceRowIndex = -1;
3933
- oSelectionPlugin.clearSelection();
3934
- } else {
3935
- this._iSourceRowIndex = 0;
3936
- oSelectionPlugin.selectAll();
3937
- }
3938
- this._iSourceRowIndex = undefined;
3939
- };
3940
-
3941
3947
  Table.prototype.setBusy = function(bBusy) {
3942
3948
  var bOldBusyState = this.getBusy();
3943
3949
  var vReturn = Control.prototype.setBusy.call(this, bBusy, "sapUiTableGridCnt");
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @extends sap.ui.base.ManagedObject
32
32
  *
33
33
  * @author SAP SE
34
- * @version 1.112.2
34
+ * @version 1.114.0
35
35
  * @since 1.21.1
36
36
  *
37
37
  * @constructor
@@ -437,7 +437,7 @@ sap.ui.define(['sap/ui/Device', './library', "./Column", './utils/TableUtils', "
437
437
 
438
438
  var sSelectAllResourceTextID;
439
439
  if (mRenderConfig.headerSelector.visible) {
440
- var bAllRowsSelected = TableUtils.areAllRowsSelected(oTable);
440
+ var bAllRowsSelected = mRenderConfig.headerSelector.selected;
441
441
 
442
442
  if (mRenderConfig.headerSelector.type === "toggle") {
443
443
  sSelectAllResourceTextID = bAllRowsSelected ? "TBL_DESELECT_ALL" : "TBL_SELECT_ALL";
@@ -450,7 +450,7 @@ sap.ui.define(['sap/ui/Device', './library', "./Column", './utils/TableUtils', "
450
450
  }
451
451
  }
452
452
 
453
- if (oTable._getShowStandardTooltips() && sSelectAllResourceTextID) {
453
+ if (sSelectAllResourceTextID) {
454
454
  rm.attr("title", TableUtils.getResourceText(sSelectAllResourceTextID));
455
455
  }
456
456
  if (!bAllRowsSelected) {
@@ -678,7 +678,7 @@ sap.ui.define(['sap/ui/Device', './library', "./Column", './utils/TableUtils', "
678
678
  };
679
679
 
680
680
  TableRenderer.renderRowAddon = function(rm, oTable, oRow, iRowIndex, bHeader) {
681
- var bRowSelected = oTable._getSelectionPlugin().isIndexSelected(oRow.getIndex());
681
+ var bRowSelected = oTable._getSelectionPlugin().isSelected(oRow);
682
682
 
683
683
  rm.openStart("div");
684
684
  var oRowSettings = oRow.getAggregation("_settings");
@@ -726,7 +726,7 @@ sap.ui.define(['sap/ui/Device', './library', "./Column", './utils/TableUtils', "
726
726
  rm.openEnd();
727
727
  if (bHeader) {
728
728
  this.writeRowHighlightContent(rm, oTable, oRow, iRowIndex);
729
- this.writeRowSelectorContent(rm, oTable, oRow, iRowIndex);
729
+ this.writeRowSelectorContent(rm, oTable, oRow);
730
730
  } else {
731
731
  var oAction = oRow.getRowAction();
732
732
  if (oAction) {
@@ -948,8 +948,8 @@ sap.ui.define(['sap/ui/Device', './library', "./Column", './utils/TableUtils', "
948
948
  rm.close("table");
949
949
  };
950
950
 
951
- TableRenderer.writeRowSelectorContent = function(rm, oTable, oRow, iRowIndex) {
952
- oTable._getAccRenderExtension().writeAccRowSelectorText(rm, oTable, oRow, iRowIndex);
951
+ TableRenderer.writeRowSelectorContent = function(rm, oTable, oRow) {
952
+ oTable._getAccRenderExtension().writeAccRowSelectorText(rm, oTable, oRow);
953
953
 
954
954
  if (TableUtils.Grouping.isInGroupMode(oTable)) {
955
955
  rm.openStart("div");
@@ -1105,7 +1105,7 @@ sap.ui.define(['sap/ui/Device', './library', "./Column", './utils/TableUtils', "
1105
1105
  if (bDraggable && bFixedTable) {
1106
1106
  rm.attr("draggable", true);
1107
1107
  }
1108
- if (oSelectionPlugin.isIndexSelected(oRow.getIndex())) {
1108
+ if (oSelectionPlugin.isSelected(oRow)) {
1109
1109
  rm.class("sapUiTableRowSel");
1110
1110
  }
1111
1111
  }
@@ -1129,7 +1129,7 @@ sap.ui.define(['sap/ui/Device', './library', "./Column", './utils/TableUtils', "
1129
1129
 
1130
1130
  rm.openEnd();
1131
1131
 
1132
- var bSelected = !oRow.isEmpty() && oSelectionPlugin.isIndexSelected(oRow.getIndex()); //see TableRenderer.renderRowAddon
1132
+ var bSelected = !oRow.isEmpty() && oSelectionPlugin.isSelected(oRow); //see TableRenderer.renderRowAddon
1133
1133
  var aCells = oRow.getCells();
1134
1134
 
1135
1135
  for (var cell = 0, count = aCells.length; cell < count; cell++) {
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @class
43
43
  * The TreeTable control provides a comprehensive set of features to display hierarchical data.
44
44
  * @extends sap.ui.table.Table
45
- * @version 1.112.2
45
+ * @version 1.114.0
46
46
  *
47
47
  * @constructor
48
48
  * @public
@@ -224,23 +224,32 @@ sap.ui.define([
224
224
  },
225
225
 
226
226
  /*
227
- * Returns the tooltip of the column or the contained label, if any.
227
+ * Returns the tooltip of the column or the contained label, if any and if it differs from the label itself.
228
228
  */
229
229
  getColumnTooltip: function(oColumn) {
230
230
  if (!oColumn) {
231
231
  return null;
232
232
  }
233
233
 
234
+ var oLabel = oColumn.getLabel();
235
+
236
+ function isTooltipEqualToLabel(sTooltip) {
237
+ if (!sTooltip) {
238
+ return false;
239
+ }
240
+ var sText = oLabel && oLabel.getText ? oLabel.getText() : "";
241
+ return sTooltip == sText;
242
+ }
243
+
234
244
  var sTooltip = oColumn.getTooltip_AsString();
235
- if (sTooltip) {
245
+ if (!isTooltipEqualToLabel(sTooltip)) {
236
246
  return sTooltip;
237
247
  }
238
248
 
239
- var oLabel = oColumn.getLabel();
240
249
  if (TableUtils.isA(oLabel, "sap.ui.core.Control")) {
241
250
  sTooltip = oLabel.getTooltip_AsString();
242
251
  }
243
- if (sTooltip) {
252
+ if (!isTooltipEqualToLabel(sTooltip)) {
244
253
  return sTooltip;
245
254
  }
246
255
 
@@ -665,15 +674,12 @@ sap.ui.define([
665
674
  }
666
675
  }
667
676
  }
668
- if (!oTable._getShowStandardTooltips() && mRenderConfig.headerSelector.type === "toggle") {
669
- mAttributes["aria-labelledby"] = [sTableId + "-ariaselectall"];
670
- }
671
677
  break;
672
678
 
673
679
  case AccExtension.ELEMENTTYPES.ROWHEADER:
674
680
  mAttributes["role"] = "gridcell";
675
681
  mAttributes["aria-colindex"] = 1;
676
- if (TableUtils.hasRowHeader(oTable) && oTable._getSelectionPlugin()._getSelectionMode() === SelectionMode.None) {
682
+ if (TableUtils.hasRowHeader(oTable) && oTable.getSelectionMode() === SelectionMode.None) {
677
683
  mAttributes["aria-labelledby"] = [sTableId + "-rowselecthdr"];
678
684
  }
679
685
  break;
@@ -854,11 +860,8 @@ sap.ui.define([
854
860
  if (mParams && mParams.row) {
855
861
  if (mParams.row.isExpandable()) {
856
862
  var sText = TableUtils.getResourceText("TBL_COLLAPSE_EXPAND");
857
- if (oTable._getShowStandardTooltips()) {
858
- mAttributes["title"] = sText;
859
- } else {
860
- mAttributes["aria-label"] = sText;
861
- }
863
+ mAttributes["title"] = sText;
864
+
862
865
  mAttributes["aria-expanded"] = "" + (!!mParams.row.isExpanded());
863
866
  mAttributes["aria-hidden"] = "false";
864
867
  mAttributes["role"] = "button";
@@ -929,7 +932,7 @@ sap.ui.define([
929
932
  * @class Extension for sap.ui.table.Table which handles ACC related things.
930
933
  * @extends sap.ui.table.extensions.ExtensionBase
931
934
  * @author SAP SE
932
- * @version 1.112.2
935
+ * @version 1.114.0
933
936
  * @constructor
934
937
  * @private
935
938
  * @alias sap.ui.table.extensions.Accessibility
@@ -1218,7 +1221,7 @@ sap.ui.define([
1218
1221
  }
1219
1222
 
1220
1223
  var oTable = this.getTable();
1221
- var bShowRowTooltips = !oRow.isEmpty() && !oRow.isGroupHeader() && !oRow.isSummary() && oTable._getShowStandardTooltips();
1224
+ var bShowRowTooltips = !oRow.isEmpty() && !oRow.isGroupHeader() && !oRow.isSummary() && !oTable._getHideStandardTooltips();
1222
1225
 
1223
1226
  if ($Ref.row) {
1224
1227
  if (bShowRowTooltips && TableUtils.isRowSelectionAllowed(oTable) && !$Ref.row.hasClass("sapUiTableRowHidden")) {
@@ -1268,7 +1271,7 @@ sap.ui.define([
1268
1271
  if (!oRow.isEmpty() && !oRow.isGroupHeader() && !oRow.isSummary()) {
1269
1272
  var mTooltipTexts = this.getAriaTextsForSelectionMode(true);
1270
1273
  var oTable = this.getTable();
1271
- var bIsSelected = oTable._getSelectionPlugin().isIndexSelected(oRow.getIndex());
1274
+ var bIsSelected = oTable._getSelectionPlugin().isSelected(oRow);
1272
1275
 
1273
1276
  if ($Ref.row) {
1274
1277
  $Ref.row.add($Ref.row.children(".sapUiTableCell")).attr("aria-selected", bIsSelected ? "true" : "false");
@@ -1394,7 +1397,7 @@ sap.ui.define([
1394
1397
  sSelectionMode = oTable.getSelectionMode();
1395
1398
  }
1396
1399
 
1397
- var bShowTooltips = oTable._getShowStandardTooltips();
1400
+ var bShowTooltips = !oTable._getHideStandardTooltips();
1398
1401
  var mTooltipTexts = {
1399
1402
  mouse: {
1400
1403
  rowSelect: "",
@@ -1406,7 +1409,7 @@ sap.ui.define([
1406
1409
  }
1407
1410
  };
1408
1411
 
1409
- var iSelectedIndicesCount = oTable._getSelectionPlugin().getSelectedCount();
1412
+ var iSelectedCount = oTable._getSelectionPlugin().getSelectedCount();
1410
1413
 
1411
1414
  if (sSelectionMode === SelectionMode.Single) {
1412
1415
  mTooltipTexts.mouse.rowSelect = bShowTooltips ? TableUtils.getResourceText("TBL_ROW_SELECT") : "";
@@ -1421,7 +1424,7 @@ sap.ui.define([
1421
1424
  // text for de-select is the same like for single selection
1422
1425
  mTooltipTexts.keyboard.rowDeselect = TableUtils.getResourceText("TBL_ROW_DESELECT_KEY");
1423
1426
 
1424
- if (bConsiderSelectionState === true && iSelectedIndicesCount === 0) {
1427
+ if (bConsiderSelectionState === true && iSelectedCount === 0) {
1425
1428
  // if there is no row selected yet, the selection is like in single selection case
1426
1429
  mTooltipTexts.mouse.rowSelect = bShowTooltips ? TableUtils.getResourceText("TBL_ROW_SELECT") : "";
1427
1430
  }
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @class Extension for sap.ui.table.TableRenderer which handles ACC related things.
43
43
  * @extends sap.ui.table.extensions.ExtensionBase
44
44
  * @author SAP SE
45
- * @version 1.112.2
45
+ * @version 1.114.0
46
46
  * @constructor
47
47
  * @private
48
48
  * @alias sap.ui.table.extensions.AccessibilityRender
@@ -82,16 +82,6 @@ sap.ui.define([
82
82
  _writeAccText(oRm, sTableId, "ariacount");
83
83
  // aria description for toggling the edit mode
84
84
  _writeAccText(oRm, sTableId, "toggleedit", TableUtils.getResourceText("TBL_TOGGLE_EDIT_KEY"));
85
- // aria description for select all button
86
- var bAllRowsSelected = TableUtils.areAllRowsSelected(oTable);
87
- var mRenderConfig = oTable._getSelectionPlugin().getRenderConfig();
88
- var sSelectAllResourceTextID;
89
- if (mRenderConfig.headerSelector.type === "toggle") {
90
- sSelectAllResourceTextID = bAllRowsSelected ? "TBL_DESELECT_ALL" : "TBL_SELECT_ALL";
91
- } else if (mRenderConfig.headerSelector.type === "clear") {
92
- sSelectAllResourceTextID = "TBL_DESELECT_ALL";
93
- }
94
- _writeAccText(oRm, sTableId, "ariaselectall", TableUtils.getResourceText(sSelectAllResourceTextID));
95
85
  // aria label for group rows
96
86
  _writeAccText(oRm, sTableId, "ariarowgrouplabel", TableUtils.getResourceText("TBL_ROW_GROUP_LABEL"));
97
87
  // aria label for grand total sums
@@ -183,16 +173,15 @@ sap.ui.define([
183
173
  * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the Render-Output-Buffer.
184
174
  * @param {sap.ui.table.Table} oTable Instance of the table.
185
175
  * @param {sap.ui.table.Row} oRow Instance of the row.
186
- * @param {int} iRowIndex The index of the row.
187
176
  * @see sap.ui.table.TableRenderer.writeRowSelectorContent
188
177
  * @public
189
178
  */
190
- writeAccRowSelectorText: function(oRm, oTable, oRow, iRowIndex) {
179
+ writeAccRowSelectorText: function(oRm, oTable, oRow) {
191
180
  if (!oTable._getAccExtension().getAccMode()) {
192
181
  return;
193
182
  }
194
183
 
195
- var bIsSelected = oTable._getSelectionPlugin().isIndexSelected(iRowIndex);
184
+ var bIsSelected = oTable._getSelectionPlugin().isSelected(oRow);
196
185
  var mTooltipTexts = oTable._getAccExtension().getAriaTextsForSelectionMode(true);
197
186
  var sText = mTooltipTexts.keyboard[bIsSelected ? "rowDeselect" : "rowSelect"];
198
187
 
@@ -252,7 +252,7 @@ sap.ui.define([
252
252
  *
253
253
  * @extends sap.ui.table.extensions.ExtensionBase
254
254
  * @author SAP SE
255
- * @version 1.112.2
255
+ * @version 1.114.0
256
256
  * @constructor
257
257
  * @private
258
258
  * @alias sap.ui.table.extensions.DragAndDrop
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @abstract
20
20
  * @extends sap.ui.base.Object
21
21
  * @author SAP SE
22
- * @version 1.112.2
22
+ * @version 1.114.0
23
23
  * @constructor
24
24
  * @private
25
25
  * @alias sap.ui.table.extensions.ExtensionBase
@@ -267,7 +267,7 @@ sap.ui.define([
267
267
  * @class Extension for sap.ui.table.Table which handles keyboard related things.
268
268
  * @extends sap.ui.table.extensions.ExtensionBase
269
269
  * @author SAP SE
270
- * @version 1.112.2
270
+ * @version 1.114.0
271
271
  * @constructor
272
272
  * @private
273
273
  * @alias sap.ui.table.extensions.Keyboard