@openui5/sap.ui.mdc 1.93.0 → 1.93.4

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 (95) hide show
  1. package/.reuse/dep5 +5 -0
  2. package/THIRDPARTY.txt +10 -1
  3. package/package.json +4 -4
  4. package/src/sap/ui/mdc/.library +1 -1
  5. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  6. package/src/sap/ui/mdc/Chart.js +1 -1
  7. package/src/sap/ui/mdc/ChartNew.js +1 -1
  8. package/src/sap/ui/mdc/Control.js +1 -1
  9. package/src/sap/ui/mdc/Element.js +1 -1
  10. package/src/sap/ui/mdc/Field.js +2 -2
  11. package/src/sap/ui/mdc/FilterBar.js +1 -1
  12. package/src/sap/ui/mdc/FilterField.js +2 -2
  13. package/src/sap/ui/mdc/Link.js +1 -1
  14. package/src/sap/ui/mdc/MultiValueField.js +1 -1
  15. package/src/sap/ui/mdc/chartNew/ChartSelectionDetailsNew.js +1 -1
  16. package/src/sap/ui/mdc/chartNew/ChartToolbarNew.js +1 -1
  17. package/src/sap/ui/mdc/chartNew/PropertyHelperNew.js +1 -1
  18. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  19. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  20. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  21. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  22. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +1 -1
  23. package/src/sap/ui/mdc/condition/Operator.js +1 -1
  24. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  25. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  26. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  27. package/src/sap/ui/mdc/field/ConditionType.js +43 -26
  28. package/src/sap/ui/mdc/field/ConditionsType.js +2 -1
  29. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  30. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  31. package/src/sap/ui/mdc/field/DefineConditionPanel.js +1 -1
  32. package/src/sap/ui/mdc/field/FieldBase.js +4 -2
  33. package/src/sap/ui/mdc/field/FieldHelpBase.js +1 -1
  34. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  35. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  36. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  37. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  38. package/src/sap/ui/mdc/field/FieldValueHelp.js +44 -28
  39. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  40. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
  41. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +52 -34
  42. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +7 -9
  43. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +2 -1
  44. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  45. package/src/sap/ui/mdc/field/ListFieldHelp.js +1 -1
  46. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  47. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  48. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  49. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  50. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +26 -5
  51. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +51 -26
  52. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  53. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  54. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  55. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  56. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +21 -13
  57. package/src/sap/ui/mdc/library.js +2 -2
  58. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  59. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  60. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  61. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  62. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  63. package/src/sap/ui/mdc/link/Factory.js +1 -1
  64. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  65. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  66. package/src/sap/ui/mdc/link/Panel.js +1 -1
  67. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  68. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  69. package/src/sap/ui/mdc/link/SelectionDialog.js +1 -1
  70. package/src/sap/ui/mdc/link/SelectionDialogItem.js +1 -1
  71. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  72. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  73. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  74. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  75. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  76. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
  77. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelperNew.js +1 -1
  78. package/src/sap/ui/mdc/p13n/DefaultProviderRegistry.js +1 -1
  79. package/src/sap/ui/mdc/p13n/Engine.js +1 -1
  80. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  81. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  82. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +1 -1
  83. package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +1 -1
  84. package/src/sap/ui/mdc/p13n/panels/ListView.js +1 -1
  85. package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +1 -1
  86. package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +1 -1
  87. package/src/sap/ui/mdc/p13n/panels/Wrapper.js +1 -1
  88. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
  89. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  90. package/src/sap/ui/mdc/table/PropertyHelper.js +1 -1
  91. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  92. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  93. package/src/sap/ui/mdc/ui/Container.js +2 -2
  94. package/src/sap/ui/mdc/ui/ContainerItem.js +2 -2
  95. package/src/sap/ui/mdc/util/PropertyHelper.js +1 -1
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  * @param {object} [mSettings] Initial settings for the new control
75
75
  * @class A field help used in the <code>FieldHelp</code> association of controls based on {@link sap.ui.mdc.field.FieldBase FieldBase} that shows a value help dialog.
76
76
  * @extends sap.ui.mdc.field.FieldHelpBase
77
- * @version 1.93.0
77
+ * @version 1.93.4
78
78
  * @constructor
79
79
  * @private
80
80
  * @ui5-restricted sap.fe
@@ -432,7 +432,7 @@ sap.ui.define([
432
432
  return;
433
433
  }
434
434
 
435
- var oFilterBar = _getFilterBar.call(this);
435
+ var oFilterBar = this._getFilterBar();
436
436
  if ((oDialog && oOrigin === oDialog) ||
437
437
  (oFilterBar && oOrigin === oFilterBar)) {
438
438
  if (oOrigin.bOutput && !this._bIsBeingDestroyed) {
@@ -759,7 +759,7 @@ sap.ui.define([
759
759
  function _cleanupFilters() { // TODO: really needed or better use single requests if needed by getText or description?
760
760
 
761
761
  // remove filters: update table only if filter exist
762
- var oFilterBar = _getFilterBar.call(this);
762
+ var oFilterBar = this._getFilterBar();
763
763
  var oConditions;
764
764
 
765
765
  if (oFilterBar) {
@@ -1889,7 +1889,7 @@ sap.ui.define([
1889
1889
  }
1890
1890
  if (bFilters) {
1891
1891
  // return filters for filtering
1892
- var oConditionTypes = _getTypesForConditions.call(this, oHelpParameters);
1892
+ var oConditionTypes = this._getTypesForConditions(oHelpParameters);
1893
1893
  var oFilter = FilterConverter.createFilters(oHelpParameters, oConditionTypes);
1894
1894
  oHelpParameters = oFilter;
1895
1895
  }
@@ -1946,7 +1946,7 @@ sap.ui.define([
1946
1946
 
1947
1947
  var oWrapper = _getWrapper.call(this, bSuggestion);
1948
1948
  if (oWrapper) {
1949
- var oFilterBar = _getFilterBar.call(this);
1949
+ var oFilterBar = this._getFilterBar();
1950
1950
  var oConditions;
1951
1951
 
1952
1952
  if (oFilterBar) {
@@ -1956,7 +1956,7 @@ sap.ui.define([
1956
1956
  oConditions = this._oConditions;
1957
1957
  }
1958
1958
 
1959
- var oConditionTypes = _getTypesForConditions.call(this, oConditions);
1959
+ var oConditionTypes = this._getTypesForConditions(oConditions);
1960
1960
  var oFilter = FilterConverter.createFilters( oConditions, oConditionTypes, undefined, this.getCaseSensitive());
1961
1961
  var aFilters = [];
1962
1962
  var aSearchConditions = oConditions["$search"];
@@ -1975,7 +1975,14 @@ sap.ui.define([
1975
1975
 
1976
1976
  }
1977
1977
 
1978
- function _getTypesForConditions(oConditions) {
1978
+ /**
1979
+ * Returns a condition type map for the valuehelp filterbar
1980
+ *
1981
+ * @returns {object} condition types map
1982
+ * @private
1983
+ * @ui5-restricted sap.ui.mdc.field.FieldValueHelpContentWrapperBase
1984
+ */
1985
+ FieldValueHelp.prototype._getTypesForConditions = function (oConditions) {
1979
1986
 
1980
1987
  var oFilterBar = this.getFilterBar();
1981
1988
  var aInParameters = this.getInParameters();
@@ -2007,7 +2014,8 @@ sap.ui.define([
2007
2014
 
2008
2015
  return oConditionTypes;
2009
2016
 
2010
- }
2017
+ };
2018
+
2011
2019
 
2012
2020
  FieldValueHelp.prototype.getMaxConditions = function() {
2013
2021
 
@@ -2094,6 +2102,26 @@ sap.ui.define([
2094
2102
 
2095
2103
  };
2096
2104
 
2105
+
2106
+ /**
2107
+ * Returns the relevant filterbar of this valuehelp.
2108
+ *
2109
+ * @returns {sap.ui.mdc.FilterBar} relevant filterbar
2110
+ * @private
2111
+ * @ui5-restricted sap.ui.mdc.field.FieldValueHelpContentWrapperBase
2112
+ */
2113
+ FieldValueHelp.prototype._getFilterBar = function() {
2114
+
2115
+ var oFilterBar = this.getFilterBar();
2116
+
2117
+ if (!oFilterBar) {
2118
+ oFilterBar = this.getAggregation("_filterBar");
2119
+ }
2120
+
2121
+ return oFilterBar;
2122
+
2123
+ };
2124
+
2097
2125
  FieldValueHelp.prototype.clone = function(sIdSuffix, aLocalIds) {
2098
2126
 
2099
2127
  // detach event handler before cloning to not have it twice on the clone
@@ -2253,7 +2281,7 @@ sap.ui.define([
2253
2281
  function _createValueHelpPanel() {
2254
2282
 
2255
2283
  var oWrapper = _getWrapper.call(this, false);
2256
- var oFilterBar = _getFilterBar.call(this);
2284
+ var oFilterBar = this._getFilterBar();
2257
2285
 
2258
2286
  var oValueHelpPanel = new ValueHelpPanel(this.getId() + "-VHP", {
2259
2287
  height: "100%",
@@ -2448,7 +2476,7 @@ sap.ui.define([
2448
2476
 
2449
2477
  function _updateFiltersFromFilterBar(oEvent) {
2450
2478
 
2451
- var oFilterBar = _getFilterBar.call(this);
2479
+ var oFilterBar = this._getFilterBar();
2452
2480
 
2453
2481
  if (oFilterBar) {
2454
2482
  // update FilterValue from SearchField
@@ -2473,7 +2501,7 @@ sap.ui.define([
2473
2501
 
2474
2502
  function _initializeFilters() {
2475
2503
 
2476
- var oFilterBar = _getFilterBar.call(this);
2504
+ var oFilterBar = this._getFilterBar();
2477
2505
  if (oFilterBar) {
2478
2506
  // remove old conditions
2479
2507
  oFilterBar.setInternalConditions({});
@@ -2485,21 +2513,9 @@ sap.ui.define([
2485
2513
 
2486
2514
  }
2487
2515
 
2488
- function _getFilterBar() {
2489
-
2490
- var oFilterBar = this.getFilterBar();
2491
-
2492
- if (!oFilterBar) {
2493
- oFilterBar = this.getAggregation("_filterBar");
2494
- }
2495
-
2496
- return oFilterBar;
2497
-
2498
- }
2499
-
2500
2516
  function _getConditions(sFieldPath) {
2501
2517
 
2502
- var oFilterBar = _getFilterBar.call(this);
2518
+ var oFilterBar = this._getFilterBar();
2503
2519
  var oConditions;
2504
2520
 
2505
2521
  if (oFilterBar) {
@@ -2514,7 +2530,7 @@ sap.ui.define([
2514
2530
 
2515
2531
  function _addCondition(sFieldPath, oCondition) {
2516
2532
 
2517
- var oFilterBar = _getFilterBar.call(this);
2533
+ var oFilterBar = this._getFilterBar();
2518
2534
  var oConditions;
2519
2535
 
2520
2536
  if (oFilterBar) {
@@ -2536,7 +2552,7 @@ sap.ui.define([
2536
2552
 
2537
2553
  function _removeConditions(sFieldPath) {
2538
2554
 
2539
- var oFilterBar = _getFilterBar.call(this);
2555
+ var oFilterBar = this._getFilterBar();
2540
2556
  var oConditions;
2541
2557
 
2542
2558
  if (oFilterBar) {
@@ -2578,7 +2594,7 @@ sap.ui.define([
2578
2594
  var oWrapper = _getWrapper.call(this, false); // without content it makes no sense to have a SearchField
2579
2595
 
2580
2596
  if (sFilterFields && oWrapper) {
2581
- var oFilterBar = _getFilterBar.call(this);
2597
+ var oFilterBar = this._getFilterBar();
2582
2598
 
2583
2599
  if (!oFilterBar) {
2584
2600
  oFilterBar = new FilterBar(this.getId() + "-FB", {
@@ -2767,7 +2783,7 @@ sap.ui.define([
2767
2783
  function _assignCollectiveSearch(bInitializeKey) {
2768
2784
 
2769
2785
  var oDialog = this.getAggregation("_dialog");
2770
- var oFilterBar = _getFilterBar.call(this);
2786
+ var oFilterBar = this._getFilterBar();
2771
2787
  if (oDialog && oFilterBar) {
2772
2788
  var aCollectiveSearchItems = this.getCollectiveSearchItems();
2773
2789
  if (aCollectiveSearchItems.length <= 1) {
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
24
  * @class Base type for <code>FieldValueHelp</code> content control wrapper.
25
25
  * @extends sap.ui.core.Element
26
- * @version 1.93.0
26
+ * @version 1.93.4
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @param {object} [mSettings] Initial settings for the new control
35
35
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
36
36
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
37
- * @version 1.93.0
37
+ * @version 1.93.4
38
38
  * @constructor
39
39
  * @private
40
40
  * @ui5-restricted sap.fe
@@ -10,14 +10,16 @@ sap.ui.define([
10
10
  "sap/base/util/deepEqual",
11
11
  "sap/ui/mdc/library",
12
12
  "sap/ui/mdc/enum/PersistenceMode",
13
- "sap/ui/mdc/p13n/Engine"
13
+ "sap/ui/mdc/p13n/Engine",
14
+ 'sap/ui/mdc/condition/FilterConverter'
14
15
  ], function(
15
16
  FieldValueHelpTableWrapperBase,
16
17
  loadModules,
17
18
  deepEqual,
18
19
  library,
19
20
  PersistenceMode,
20
- Engine
21
+ Engine,
22
+ FilterConverter
21
23
  ) {
22
24
  "use strict";
23
25
 
@@ -38,7 +40,7 @@ sap.ui.define([
38
40
  * @param {object} [mSettings] Initial settings for the new control
39
41
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
40
42
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
41
- * @version 1.93.0
43
+ * @version 1.93.4
42
44
  * @constructor
43
45
  * @private
44
46
  * @ui5-restricted sap.fe
@@ -96,7 +98,6 @@ sap.ui.define([
96
98
 
97
99
  FieldValueHelpMdcTableWrapper.prototype.fieldHelpOpen = function(bSuggestion) {
98
100
  var oTable = this.getTable();
99
-
100
101
  if (oTable) {
101
102
  if (this.OInnerWrapperClass) {
102
103
  return this.OInnerWrapperClass.prototype.fieldHelpOpen.call(this, bSuggestion);
@@ -119,7 +120,7 @@ sap.ui.define([
119
120
  this._sInnerWrapperType = sTableType;
120
121
 
121
122
  if (this.OInnerWrapperClass) {
122
- this.OInnerWrapperClass.dispose.apply(this);
123
+ this.OInnerWrapperClass.prototype.dispose.apply(this);
123
124
  this.OInnerWrapperClass = null;
124
125
  }
125
126
 
@@ -144,6 +145,14 @@ sap.ui.define([
144
145
  if (oParent) {
145
146
  oTable.setHeight("100%");
146
147
  oTable.setSelectionMode(this._getMaxConditions() === 1 ? SelectionMode.Single : SelectionMode.Multi);
148
+
149
+ var oFieldHelp = this._getFieldHelp();
150
+ var oFilterBar = oFieldHelp._getFilterBar();
151
+ var bFilterChange = oFilterBar && oTable.getFilter() !== oFilterBar.getId();
152
+ if (bFilterChange) {
153
+ oTable.setFilter(oFilterBar);
154
+ }
155
+
147
156
  }
148
157
 
149
158
  if (this.OInnerWrapperClass) {
@@ -165,14 +174,22 @@ sap.ui.define([
165
174
  this._oInnerWrapperClassPromise = null;
166
175
  }
167
176
  if (this.OInnerWrapperClass) {
177
+ this.OInnerWrapperClass.prototype.dispose.apply(this);
168
178
  this.OInnerWrapperClass = null;
169
179
  }
170
180
 
171
181
  this._sInnerWrapperType = null;
182
+ this._bSearchTriggered = null;
172
183
 
173
184
  FieldValueHelpTableWrapperBase.prototype.exit.apply(this, arguments);
174
185
  };
175
186
 
187
+ FieldValueHelpMdcTableWrapper.prototype.isSuspended = function() {
188
+ var oTable = this.getTable();
189
+ var oListBinding = this.getListBinding();
190
+ return oListBinding ? oListBinding.isSuspended() : oTable && !oTable.getAutoBindOnInit();
191
+ };
192
+
176
193
  FieldValueHelpMdcTableWrapper.prototype.getListBinding = function() {
177
194
  var oTable = this.getTable();
178
195
  return oTable && oTable.getRowBinding();
@@ -256,34 +273,42 @@ sap.ui.define([
256
273
  var oTable = this.getTable();
257
274
 
258
275
  if (oTable && oFilterBar) {
259
- if (oTable.getFilter() !== oFilterBar.getId()) {
260
- oTable.setFilter(oFilterBar);
276
+ var oListBinding = this.getListBinding();
277
+ var bListBindingSuspended = oListBinding && oListBinding.isSuspended();
278
+ var oFieldHelp = this._getFieldHelp();
279
+
280
+ if (oListBinding && !bListBindingSuspended && !this._bSearchTriggered) {
281
+ var sFBSearch = oFilterBar.getSearch() || "";
282
+ var sBindingSearch = oListBinding.mParameters.$search || "";
283
+ var oCurrentFilterBarConditions = oFilterBar.getConditions();
284
+ var oConditionTypes = oFieldHelp._getTypesForConditions(oCurrentFilterBarConditions);
285
+ var oCreatedFBFilters = oCurrentFilterBarConditions && oConditionTypes && FilterConverter.createFilters(oCurrentFilterBarConditions, oConditionTypes, undefined, oFieldHelp.getCaseSensitive());
286
+ var aFBFilters = oCreatedFBFilters ? [].concat(oCreatedFBFilters) : [];
287
+ var aBindingFilters = oListBinding.aApplicationFilters.reduce(function (aResult, oFilter) {
288
+ return aResult.concat(oFilter._bMultiFilter ? oFilter.aFilters : oFilter);
289
+ }, []);
290
+ var bFiltersChanged = !deepEqual(aFBFilters, aBindingFilters);
291
+ var bSearchChanged = sFBSearch !== sBindingSearch;
292
+ var bTableHasOverlay = oTable._oTable && oTable._oTable.getShowOverlay && oTable._oTable.getShowOverlay();
293
+
294
+
295
+ if (bFiltersChanged || bSearchChanged || bTableHasOverlay) {
296
+ this._handleScrolling();
297
+ oFilterBar.triggerSearch();
298
+ this._bSearchTriggered = true;
299
+ }
261
300
  }
262
301
 
263
- this._oCurrentConditions = this._oCurrentConditions || {};
264
-
265
- var oCurrentConditions = oFilterBar.getConditions();
266
- if (!deepEqual(this._oCurrentConditions, oCurrentConditions) || (oTable._oTable && oTable._oTable.getShowOverlay())) {
267
- oTable.initialized().then(function() {
268
- this._oCurrentConditions = oCurrentConditions;
269
- this._handleScrolling(); // reset scrolling to prevent skip parameters being added
270
- oFilterBar.valid().then(function(){
271
- oFilterBar.fireSearch();
272
- });
273
- }.bind(this));
302
+ if (bListBindingSuspended) {
303
+ oListBinding.resume();
274
304
  }
275
305
 
276
- var oListBinding = this.getListBinding();
277
- if (oListBinding && oListBinding.isSuspended()) {
278
- oListBinding.resume();
279
- } else if (!oListBinding) {
280
- this._oTablePromise.then(function(oTable) {
306
+ if (!oListBinding && oTable.getAutoBindOnInit()) {
307
+ this._oTablePromise.then(function () {
281
308
  if (!this._bIsBeingDestroyed) {
282
309
  this.applyFilters(aFilters, sSearch, oFilterBar);
283
310
  }
284
311
  }.bind(this));
285
-
286
- this.restoreBinding();
287
312
  }
288
313
  }
289
314
  };
@@ -302,6 +327,7 @@ sap.ui.define([
302
327
  };
303
328
 
304
329
  FieldValueHelpMdcTableWrapper.prototype._handleUpdateFinished = function (oEvent) {
330
+ this._bSearchTriggered = false;
305
331
  return this.OInnerWrapperClass.prototype._handleUpdateFinished.apply(this, arguments);
306
332
  };
307
333
 
@@ -317,7 +343,7 @@ sap.ui.define([
317
343
 
318
344
  FieldValueHelpMdcTableWrapper.prototype._handleSelectionChange = function (oEvent) {
319
345
  var bIsTableReady = this._isTableReady();
320
- return this._bIsModifyingTableSelection || !bIsTableReady ? undefined : this._fireSelectionChange.call(this, false);
346
+ return this._bIsModifyingTableSelection || !bIsTableReady || this._bBusy ? undefined : this._fireSelectionChange.call(this, false);
321
347
  };
322
348
 
323
349
  FieldValueHelpMdcTableWrapper.prototype._getTableItems = function (bSelectedOnly, bNoVirtual) {
@@ -372,13 +398,5 @@ sap.ui.define([
372
398
  return this.getTable();
373
399
  };
374
400
 
375
-
376
- FieldValueHelpMdcTableWrapper.prototype.restoreBinding = function() {
377
- var oTable = this.getTable();
378
- if (oTable) {
379
- oTable.checkAndRebind();
380
- }
381
- };
382
-
383
401
  return FieldValueHelpMdcTableWrapper;
384
402
  });
@@ -47,7 +47,7 @@ sap.ui.define([
47
47
  * @param {object} [mSettings] Initial settings for the new control
48
48
  * @class Wrapper to use a table control as content of a <code>FieldValueHelp</code> element
49
49
  * @extends sap.ui.mdc.field.FieldValueHelpContentWrapperBase
50
- * @version 1.93.0
50
+ * @version 1.93.4
51
51
  * @constructor
52
52
  * @private
53
53
  * @experimental As of version 1.88
@@ -529,12 +529,9 @@ sap.ui.define([
529
529
  if (!oListBinding) {
530
530
  this._oTablePromise.then(function(oTable) {
531
531
  if (!this._bIsBeingDestroyed) {
532
- this.applyFilters(aFilters, sSearch);
532
+ this.applyFilters(aFilters, sSearch, oFilterBar);
533
533
  }
534
534
  }.bind(this));
535
-
536
- this.restoreBinding();
537
-
538
535
  return;
539
536
  }
540
537
 
@@ -783,6 +780,11 @@ sap.ui.define([
783
780
  }
784
781
  };
785
782
 
783
+ FieldValueHelpTableWrapperBase.prototype._handleBusyStateChanged = function (oEvent) {
784
+ this._bBusy = oEvent.getParameter("busy");
785
+ };
786
+
787
+
786
788
  FieldValueHelpTableWrapperBase.prototype._updateSelectedItems = function () {
787
789
 
788
790
  if (this._bNoTableUpdate) {
@@ -967,9 +969,5 @@ sap.ui.define([
967
969
  // Defaults to no-op.
968
970
  };
969
971
 
970
- FieldValueHelpTableWrapperBase.prototype.restoreBinding = function() {
971
- // Defaults to no-op.
972
- };
973
-
974
972
  return FieldValueHelpTableWrapperBase;
975
973
  });
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @param {object} [mSettings] Initial settings for the new control
32
32
  * @class Wrapper to use a <code>sap.m.Table</code> control as content of a <code>FieldValueHelp</code> element
33
33
  * @extends sap.ui.mdc.field.FieldValueHelpTableWrapperBase
34
- * @version 1.93.0
34
+ * @version 1.93.4
35
35
  * @constructor
36
36
  * @private
37
37
  * @ui5-restricted sap.ui.mdc
@@ -141,6 +141,7 @@ sap.ui.define([
141
141
  fnEventAction("cellClick", this._handleItemPress, this);
142
142
  fnEventAction("rowSelectionChange", this._handleSelectionChange, this);
143
143
  fnEventAction("rowsUpdated", this._handleUpdateFinished, this);
144
+ fnEventAction("busyStateChanged", this._handleBusyStateChanged, this);
144
145
 
145
146
  var oRowBinding = this.getListBinding();
146
147
  if (oRowBinding) {
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @param {object} [mSettings] Initial settings for the new control
21
21
  * @class The <code>InParameter</code> element is used in the {@link sap.ui.mdc.field.FieldValueHelp FieldValueHelp} element.
22
22
  * @extends sap.ui.core.Element
23
- * @version 1.93.0
23
+ * @version 1.93.4
24
24
  * @constructor
25
25
  * @abstract
26
26
  * @private
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @param {object} [mSettings] Initial settings for the new control
40
40
  * @class A field help used in the <code>FieldHelp</code> association of controls based on {@link sap.ui.mdc.field.FieldBase FieldBase} that shows a list of items.
41
41
  * @extends sap.ui.mdc.field.FieldHelpBase
42
- * @version 1.93.0
42
+ * @version 1.93.4
43
43
  * @constructor
44
44
  * @private
45
45
  * @ui5-restricted sap.fe
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.core.ListItem
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.93.0
26
+ * @version 1.93.4
27
27
  *
28
28
  * @private
29
29
  * @ui5-restricted sap.fe
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @param {object} [mSettings] Initial settings for the new control
21
21
  * @class Base type for <code>MultiValueFieldItem</code> control.
22
22
  * @extends sap.ui.core.Element
23
- * @version 1.93.0
23
+ * @version 1.93.4
24
24
  * @constructor
25
25
  * @abstract
26
26
  * @private
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  * @param {object} [mSettings] Initial settings for the new control
23
23
  * @class The <code>OutParameter</code> element is used in the {@link sap.ui.mdc.field.FieldValueHelp FieldValueHelp} element.
24
24
  * @extends sap.ui.mdc.field.InParameter
25
- * @version 1.93.0
25
+ * @version 1.93.4
26
26
  * @constructor
27
27
  * @abstract
28
28
  * @private
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.ui.core.XMLComposite
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.93.0
40
+ * @version 1.93.4
41
41
  *
42
42
  * @constructor
43
43
  * @alias sap.ui.mdc.field.ValueHelpPanel
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * @class The <code>FilterBarBase</code> control is used as a faceless base class for common functionality of any MDC FilterBar derivation.
18
18
  * @extends sap.ui.mdc.Control
19
19
  * @author SAP SE
20
- * @version 1.93.0
20
+ * @version 1.93.4
21
21
  * @constructor
22
22
  * @private
23
23
  * @ui5-restricted sap.ui.mdc
@@ -721,7 +721,14 @@ sap.ui.define([
721
721
  this._getConditionModel().oConditionModel.removeAllConditions();
722
722
  };
723
723
  FilterBarBase.prototype.onSearch = function(oEvent) {
724
- this.triggerSearch();
724
+ if (!this._bSearchPressed) {
725
+ this._bSearchPressed = true;
726
+ this.triggerSearch().then(function() {
727
+ this._bSearchPressed = false;
728
+ }.bind(this), function(){
729
+ this._bSearchPressed = false;
730
+ }.bind(this));
731
+ }
725
732
  };
726
733
 
727
734
  /**
@@ -844,7 +851,14 @@ sap.ui.define([
844
851
  var oPromise = oEvent.getParameter("promise");
845
852
  if (oPromise) {
846
853
  oPromise.then(function() {
847
- this.triggerSearch();
854
+ if (this._aCollectedChangePromises && this._aCollectedChangePromises.length > 0) {
855
+ var aChangePromises = this._aCollectedChangePromises.slice();
856
+ Promise.all(aChangePromises).then(function() {
857
+ this.triggerSearch();
858
+ }.bind(this));
859
+ } else {
860
+ this.triggerSearch();
861
+ }
848
862
  }.bind(this));
849
863
  }
850
864
  };
@@ -969,8 +983,15 @@ sap.ui.define([
969
983
  }
970
984
 
971
985
  if (vRetErrorState === ErrorState.NoError) {
972
- this._fResolvedSearchPromise();
973
- fnCleanup();
986
+ if (this._isChangeApplying()) {
987
+ this._oFlexPromise.then(function() {
988
+ this._fResolvedSearchPromise();
989
+ fnCleanup();
990
+ }.bind(this));
991
+ } else {
992
+ this._fResolvedSearchPromise();
993
+ fnCleanup();
994
+ }
974
995
  } else {
975
996
  if (vRetErrorState === ErrorState.RequiredHasNoValue) {
976
997
  sErrorMessage = this._oRb.getText("filterbar.REQUIRED_CONDITION_MISSING");
@@ -4,8 +4,8 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
- "sap/ui/mdc/filterbar/p13n/GroupContainer", "sap/ui/mdc/filterbar/p13n/FilterGroupLayout","sap/ui/mdc/filterbar/p13n/TableContainer", "sap/ui/mdc/filterbar/p13n/FilterColumnLayout", "sap/ui/mdc/filterbar/FilterBarBase", "sap/ui/mdc/filterbar/FilterBarBaseRenderer"
8
- ], function( GroupContainer, FilterGroupLayout, TableContainer, FilterColumnLayout, FilterBarBase, FilterBarBaseRenderer) {
7
+ "sap/ui/mdc/filterbar/p13n/GroupContainer", "sap/ui/mdc/filterbar/p13n/FilterGroupLayout","sap/ui/mdc/filterbar/p13n/TableContainer", "sap/ui/mdc/filterbar/p13n/FilterColumnLayout", "sap/ui/mdc/filterbar/FilterBarBase", "sap/ui/mdc/filterbar/FilterBarBaseRenderer", 'sap/base/Log'
8
+ ], function( GroupContainer, FilterGroupLayout, TableContainer, FilterColumnLayout, FilterBarBase, FilterBarBaseRenderer, Log) {
9
9
  "use strict";
10
10
 
11
11
  /**
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  *
19
19
  * @extends sap.ui.mdc.filterbar.FilterBarBase
20
20
  * @author SAP SE
21
- * @version 1.93.0
21
+ * @version 1.93.4
22
22
  * @constructor
23
23
  * @private
24
24
  * @since 1.80.0
@@ -129,29 +129,6 @@ sap.ui.define([
129
129
  this.triggerSearch();
130
130
  };
131
131
 
132
- /**
133
- * Method which will initialize the <code>AdaptationFilterBar</code> to retrieve the propertyinfo based on its parent
134
- *
135
- * @returns {Promise} A Promise which resolves once the propertyinfo has been propagated
136
- */
137
- AdaptationFilterBar.prototype.initialized = function(){
138
-
139
- var oParentPropertyInfoPromise = this.getAdaptationControl().awaitControlDelegate().then(function(oParentControl) {
140
- return oParentControl.fetchProperties(this.getAdaptationControl()).then(function(aPropertyInfo){
141
- return aPropertyInfo;
142
- });
143
- }.bind(this));
144
-
145
- return Promise.all([
146
- oParentPropertyInfoPromise,
147
- FilterBarBase.prototype.initialized.apply(this, arguments)
148
- ]).then(function(aResolvedValues){
149
- var aPropertyInfo = aResolvedValues[0];
150
- this._aProperties = aPropertyInfo;
151
- }.bind(this));
152
-
153
- };
154
-
155
132
  /**
156
133
  * Method which will initialize the <code>AdaptationFilterBar</code> and create the required FilterFields
157
134
  *
@@ -330,6 +307,54 @@ sap.ui.define([
330
307
  this.oAdaptationModel = null;
331
308
  };
332
309
 
310
+ AdaptationFilterBar.prototype._retrieveMetadata = function() {
311
+
312
+ if (this._oMetadataAppliedPromise) {
313
+ return this._oMetadataAppliedPromise;
314
+ }
315
+
316
+ this._fResolveMetadataApplied = undefined;
317
+ this._oMetadataAppliedPromise = new Promise(function(resolve) {
318
+ this._fResolveMetadataApplied = resolve;
319
+ }.bind(this));
320
+
321
+ var oAdaptationControl = this.getAdaptationControl();
322
+
323
+ Promise.all([oAdaptationControl && oAdaptationControl.awaitControlDelegate && oAdaptationControl.awaitControlDelegate(), this.initControlDelegate()]).then(function() {
324
+ if (!this._bIsBeingDestroyed) {
325
+
326
+ this._aProperties = [];
327
+
328
+ var fnResolveMetadata = function() {
329
+ this._fResolveMetadataApplied();
330
+ this._fResolveMetadataApplied = null;
331
+ }.bind(this);
332
+
333
+ var oParentDelegate = oAdaptationControl.getControlDelegate();
334
+
335
+ if (oParentDelegate && oParentDelegate.fetchProperties) {
336
+ try {
337
+ oParentDelegate.fetchProperties(oAdaptationControl).then(function(aProperties) {
338
+ this._aProperties = aProperties;
339
+ fnResolveMetadata();
340
+ }.bind(this), function(sMsg) {
341
+ Log.error(sMsg);
342
+ fnResolveMetadata();
343
+ });
344
+ } catch (ex) {
345
+ Log.error("Exception during fetchProperties occured: " + ex.message);
346
+ fnResolveMetadata();
347
+ }
348
+ } else {
349
+ Log.error("Provided delegate '" + this.getDelegate().path + "' not valid.");
350
+ fnResolveMetadata();
351
+ }
352
+ }
353
+ }.bind(this));
354
+
355
+ return this._oMetadataAppliedPromise;
356
+ };
357
+
333
358
  return AdaptationFilterBar;
334
359
 
335
360
  });
@@ -33,7 +33,7 @@ sap.ui.define(
33
33
  * The metadata information is provided via the {@link sap.ui.mdc.FilterBarDelegate FilterBarDelegate} implementation. This implementation has to be provided by the application.
34
34
  * @extends sap.ui.mdc.filterbar.FilterBarBase
35
35
  * @author SAP SE
36
- * @version 1.93.0
36
+ * @version 1.93.4
37
37
  * @constructor
38
38
  * @private
39
39
  * @since 1.84.0
@@ -12,7 +12,7 @@ sap.ui.define([
12
12
  *
13
13
  * @alias sap.ui.mdc.flexibility.Chart
14
14
  * @author SAP SE
15
- * @version 1.93.0
15
+ * @version 1.93.4
16
16
  */
17
17
  return {
18
18
  addItem: ChartItemFlex.addItem,