@openui5/sap.ui.mdc 1.99.1 → 1.102.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.
- package/.eslintrc.json +19 -0
- package/THIRDPARTY.txt +5 -5
- package/package.json +4 -4
- package/src/sap/ui/mdc/.library +1 -1
- package/src/sap/ui/mdc/ActionToolbar.js +1 -1
- package/src/sap/ui/mdc/Chart.js +77 -77
- package/src/sap/ui/mdc/ChartDelegate.js +76 -21
- package/src/sap/ui/mdc/ChartRenderer.js +1 -1
- package/src/sap/ui/mdc/Control.js +11 -6
- package/src/sap/ui/mdc/Element.js +10 -6
- package/src/sap/ui/mdc/Field.js +26 -4
- package/src/sap/ui/mdc/FilterBar.js +1 -1
- package/src/sap/ui/mdc/FilterBarDelegate.js +26 -0
- package/src/sap/ui/mdc/FilterField.js +41 -3
- package/src/sap/ui/mdc/Link.js +3 -3
- package/src/sap/ui/mdc/LinkDelegate.js +7 -5
- package/src/sap/ui/mdc/MultiValueField.js +11 -1
- package/src/sap/ui/mdc/Table.js +340 -417
- package/src/sap/ui/mdc/TableDelegate.js +115 -35
- package/src/sap/ui/mdc/ValueHelp.js +150 -632
- package/src/sap/ui/mdc/ValueHelpDelegate.js +161 -8
- package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
- package/src/sap/ui/mdc/actiontoolbar/ActionToolbarActionRenderer.js +1 -1
- package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
- package/src/sap/ui/mdc/chart/ChartToolbar.js +18 -6
- package/src/sap/ui/mdc/chart/ChartTypeButton.js +11 -2
- package/src/sap/ui/mdc/chart/DrillBreadcrumbs.js +9 -7
- package/src/sap/ui/mdc/chart/DrillStackHandler.js +6 -6
- package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
- package/src/sap/ui/mdc/condition/Condition.js +14 -9
- package/src/sap/ui/mdc/condition/ConditionConverter.js +58 -6
- package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
- package/src/sap/ui/mdc/condition/FilterConverter.js +4 -2
- package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +146 -34
- package/src/sap/ui/mdc/condition/Operator.js +98 -16
- package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +80 -24
- package/src/sap/ui/mdc/condition/RangeOperator.js +5 -5
- package/src/sap/ui/mdc/designtime/Util.js +63 -0
- package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +23 -30
- package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +16 -1
- package/src/sap/ui/mdc/designtime/filterbar/FilterBar.designtime.js +3 -1
- package/src/sap/ui/mdc/designtime/link/PanelItem.designtime.js +3 -1
- package/src/sap/ui/mdc/designtime/table/Table.designtime.js +39 -52
- package/src/sap/ui/mdc/enum/PropagationReason.js +43 -0
- package/src/sap/ui/mdc/enum/SelectType.js +3 -0
- package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/ConditionType.js +70 -22
- package/src/sap/ui/mdc/field/ConditionsType.js +8 -2
- package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
- package/src/sap/ui/mdc/field/DefineConditionPanel.js +30 -23
- package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +76 -19
- package/src/sap/ui/mdc/field/FieldBase.js +84 -17
- package/src/sap/ui/mdc/field/FieldBaseDelegate.js +41 -19
- package/src/sap/ui/mdc/field/FieldHelpBase.js +1 -1
- package/src/sap/ui/mdc/field/FieldInfoBase.js +2 -1
- package/src/sap/ui/mdc/field/FieldInput.js +1 -1
- package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
- package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelp.js +9 -4
- package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +1 -1
- package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +7 -4
- package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +11 -3
- package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +3 -3
- package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +31 -32
- package/src/sap/ui/mdc/field/InParameter.js +1 -1
- package/src/sap/ui/mdc/field/ListFieldHelp.js +1 -1
- package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
- package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
- package/src/sap/ui/mdc/field/OutParameter.js +1 -1
- package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
- package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
- package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
- package/src/sap/ui/mdc/field/content/ContentFactory.js +13 -1
- package/src/sap/ui/mdc/field/content/DateContent.js +27 -19
- package/src/sap/ui/mdc/field/content/DateTimeContent.js +42 -7
- package/src/sap/ui/mdc/filterbar/FilterBarBase.js +128 -239
- package/src/sap/ui/mdc/filterbar/IFilterContainer.js +5 -0
- package/src/sap/ui/mdc/filterbar/PropertyHelper.js +27 -2
- package/src/sap/ui/mdc/filterbar/aligned/FilterContainer.js +1 -0
- package/src/sap/ui/mdc/filterbar/aligned/FilterItemLayout.js +1 -0
- package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +164 -64
- package/src/sap/ui/mdc/filterbar/p13n/FilterColumnLayout.js +2 -2
- package/src/sap/ui/mdc/filterbar/p13n/GroupContainer.js +7 -3
- package/src/sap/ui/mdc/filterbar/p13n/TableContainer.js +52 -14
- package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +73 -23
- package/src/sap/ui/mdc/filterbar/vh/FilterContainer.js +1 -1
- package/src/sap/ui/mdc/flexibility/AggregationConfigFlex.js +48 -31
- package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +4 -41
- package/src/sap/ui/mdc/flexibility/ChartItemFlex.js +36 -0
- package/src/sap/ui/mdc/flexibility/ChartTypeFlex.js +54 -0
- package/src/sap/ui/mdc/flexibility/ConditionFlex.js +49 -12
- package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
- package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
- package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +0 -1
- package/src/sap/ui/mdc/flexibility/PropertyInfoFlex.js +2 -85
- package/src/sap/ui/mdc/library.js +30 -27
- package/src/sap/ui/mdc/link/ContactDetails.js +107 -23
- package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
- package/src/sap/ui/mdc/link/ContactDetailsRenderer.js +26 -0
- package/src/sap/ui/mdc/link/Factory.js +1 -1
- package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
- package/src/sap/ui/mdc/link/LinkItem.js +1 -1
- package/src/sap/ui/mdc/link/Panel.js +197 -22
- package/src/sap/ui/mdc/link/PanelItem.js +1 -1
- package/src/sap/ui/mdc/link/PanelRenderer.js +26 -0
- package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
- package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
- package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
- package/src/sap/ui/mdc/messagebundle.properties +11 -6
- package/src/sap/ui/mdc/messagebundle_ar.properties +9 -7
- package/src/sap/ui/mdc/messagebundle_bg.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_ca.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_cs.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_cy.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_da.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_de.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_el.properties +6 -4
- package/src/sap/ui/mdc/messagebundle_en.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_en_GB.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_es.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_es_MX.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_et.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_fi.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_fr.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_fr_CA.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_hi.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_hr.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_hu.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_id.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_it.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_iw.properties +6 -4
- package/src/sap/ui/mdc/messagebundle_ja.properties +8 -6
- package/src/sap/ui/mdc/messagebundle_kk.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_ko.properties +6 -4
- package/src/sap/ui/mdc/messagebundle_lt.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_lv.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_ms.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_nl.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_no.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_pl.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_pt.properties +13 -11
- package/src/sap/ui/mdc/messagebundle_pt_PT.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_ro.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_ru.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_sh.properties +10 -8
- package/src/sap/ui/mdc/messagebundle_sk.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_sl.properties +8 -6
- package/src/sap/ui/mdc/messagebundle_sv.properties +8 -6
- package/src/sap/ui/mdc/messagebundle_th.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_tr.properties +10 -8
- package/src/sap/ui/mdc/messagebundle_uk.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_vi.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_zh_CN.properties +7 -5
- package/src/sap/ui/mdc/messagebundle_zh_TW.properties +7 -5
- package/src/sap/ui/mdc/mixin/AdaptationMixin.js +23 -29
- package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -141
- package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -9
- package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
- package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +354 -0
- package/src/sap/ui/mdc/odata/TypeUtil.js +2 -1
- package/src/sap/ui/mdc/odata/v4/ChartPropertyHelper.js +70 -3
- package/src/sap/ui/mdc/odata/v4/FieldBaseDelegate.js +8 -6
- package/src/sap/ui/mdc/odata/v4/FilterBarDelegate.js +116 -20
- package/src/sap/ui/mdc/odata/v4/ODataMetaModelUtil.js +2 -2
- package/src/sap/ui/mdc/odata/v4/TableDelegate.js +29 -66
- package/src/sap/ui/mdc/odata/v4/TypeUtil.js +2 -4
- package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +65 -5
- package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +353 -262
- package/src/sap/ui/mdc/p13n/AdaptationProvider.js +1 -1
- package/src/sap/ui/mdc/p13n/Engine.js +172 -69
- package/src/sap/ui/mdc/p13n/FlexUtil.js +26 -19
- package/src/sap/ui/mdc/p13n/PropertyHelper.js +2 -2
- package/src/sap/ui/mdc/p13n/StateUtil.js +34 -51
- package/src/sap/ui/mdc/p13n/UIManager.js +21 -14
- package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +0 -174
- package/src/sap/ui/mdc/p13n/modules/DefaultProviderRegistry.js +15 -12
- package/src/sap/ui/mdc/p13n/modules/xConfigAPI.js +219 -0
- package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +6 -6
- package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +49 -27
- package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +75 -15
- package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +160 -0
- package/src/sap/ui/mdc/p13n/panels/GroupView.js +54 -28
- package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +54 -18
- package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +4 -7
- package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +1 -2
- package/src/sap/ui/mdc/p13n/subcontroller/AggregateController.js +2 -2
- package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +30 -2
- package/src/sap/ui/mdc/p13n/subcontroller/ChartTypeController.js +46 -0
- package/src/sap/ui/mdc/p13n/subcontroller/ColumnWidthController.js +37 -6
- package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +32 -10
- package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +9 -2
- package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +1 -0
- package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +4 -4
- package/src/sap/ui/mdc/table/Column.js +271 -132
- package/src/sap/ui/mdc/table/CreationRow.js +1 -1
- package/src/sap/ui/mdc/table/GridTableType.js +70 -27
- package/src/sap/ui/mdc/table/PropertyHelper.js +92 -163
- package/src/sap/ui/mdc/table/ResponsiveTableType.js +133 -40
- package/src/sap/ui/mdc/table/RowActionItem.js +119 -0
- package/src/sap/ui/mdc/table/RowSettings.js +42 -1
- package/src/sap/ui/mdc/table/TableSettings.js +10 -22
- package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +2 -2
- package/src/sap/ui/mdc/table/menu/Item.js +78 -0
- package/src/sap/ui/mdc/table/menu/ItemContainer.js +60 -0
- package/src/sap/ui/mdc/table/menu/QuickActionContainer.js +151 -0
- package/src/sap/ui/mdc/themes/base/Chart.less +11 -0
- package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +1 -0
- package/src/sap/ui/mdc/ui/Container.js +0 -240
- package/src/sap/ui/mdc/util/DateUtil.js +56 -6
- package/src/sap/ui/mdc/util/FilterUtil.js +2 -2
- package/src/sap/ui/mdc/util/IdentifierUtil.js +3 -3
- package/src/sap/ui/mdc/util/PromiseCache.js +6 -2
- package/src/sap/ui/mdc/util/PropertyHelper.js +205 -76
- package/src/sap/ui/mdc/util/TypeUtil.js +1 -1
- package/src/sap/ui/mdc/valuehelp/Dialog.js +291 -66
- package/src/sap/ui/mdc/valuehelp/Popover.js +8 -5
- package/src/sap/ui/mdc/valuehelp/base/Container.js +71 -52
- package/src/sap/ui/mdc/valuehelp/base/Content.js +57 -24
- package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
- package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +196 -283
- package/src/sap/ui/mdc/valuehelp/base/ListContent.js +6 -6
- package/src/sap/ui/mdc/valuehelp/content/Bool.js +4 -4
- package/src/sap/ui/mdc/valuehelp/content/Conditions.js +4 -4
- package/src/sap/ui/mdc/valuehelp/content/FixedList.js +16 -13
- package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +66 -66
- package/src/sap/ui/mdc/valuehelp/content/MTable.js +100 -185
- package/test/sap/ui/mdc/testutils/opa/chart/ActionsBase.js +48 -2
- package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +6 -5
- package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +4 -5
- package/test/sap/ui/mdc/testutils/opa/filterbar/Actions.js +55 -4
- package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +2 -3
- package/test/sap/ui/mdc/testutils/opa/link/Actions.js +53 -12
- package/test/sap/ui/mdc/testutils/opa/link/TestObjects.js +6 -6
- package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +111 -128
- package/test/sap/ui/mdc/testutils/opa/p13n/waitForSelectWithSelectedTextOnPanel.js +5 -2
- package/test/sap/ui/mdc/testutils/opa/table/Actions.js +70 -0
- package/test/sap/ui/mdc/testutils/opa/table/TestObjects.js +9 -7
- package/test/sap/ui/mdc/testutils/opa/valueHelp/Actions.js +2 -2
- package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +0 -150
- package/src/sap/ui/mdc/link/ContactDetails.control.xml +0 -29
- package/src/sap/ui/mdc/link/Panel.control.xml +0 -36
- package/src/sap/ui/mdc/link/PanelListItem.control.xml +0 -24
- package/src/sap/ui/mdc/link/PanelListItem.js +0 -101
- package/src/sap/ui/mdc/p13n/panels/BasePanel.js +0 -721
- package/src/sap/ui/mdc/p13n/panels/ListView.js +0 -408
- package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +0 -92
- package/src/sap/ui/mdc/p13n/panels/SortPanel.js +0 -150
- package/src/sap/ui/mdc/ui/ContainerItem.js +0 -79
|
@@ -5,8 +5,24 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
sap.ui.define([
|
|
8
|
-
"
|
|
9
|
-
|
|
8
|
+
"./GridTableType",
|
|
9
|
+
"./ResponsiveTableType",
|
|
10
|
+
"sap/m/library",
|
|
11
|
+
"sap/m/Label",
|
|
12
|
+
"sap/ui/model/json/JSONModel",
|
|
13
|
+
"sap/ui/model/base/ManagedObjectModel",
|
|
14
|
+
"sap/ui/core/Control",
|
|
15
|
+
"sap/ui/core/Core"
|
|
16
|
+
], function(
|
|
17
|
+
GridTableType,
|
|
18
|
+
ResponsiveTableType,
|
|
19
|
+
MLibrary,
|
|
20
|
+
Label,
|
|
21
|
+
JSONModel,
|
|
22
|
+
ManagedObjectModel,
|
|
23
|
+
Control,
|
|
24
|
+
Core
|
|
25
|
+
) {
|
|
10
26
|
"use strict";
|
|
11
27
|
|
|
12
28
|
/**
|
|
@@ -15,7 +31,7 @@ sap.ui.define([
|
|
|
15
31
|
* @param {string} [sId] Optional ID for the new object; generated automatically if no non-empty ID is given
|
|
16
32
|
* @param {object} [mSettings] initial settings for the new control
|
|
17
33
|
* @class The column for the metadata-driven table with the template, which is shown if the rows have data.
|
|
18
|
-
* @extends sap.ui.core.
|
|
34
|
+
* @extends sap.ui.core.Control
|
|
19
35
|
* @author SAP SE
|
|
20
36
|
* @private
|
|
21
37
|
* @experimental
|
|
@@ -25,8 +41,7 @@ sap.ui.define([
|
|
|
25
41
|
* @alias sap.ui.mdc.table.Column
|
|
26
42
|
* @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
|
|
27
43
|
*/
|
|
28
|
-
|
|
29
|
-
var Column = Element.extend("sap.ui.mdc.table.Column", {
|
|
44
|
+
var Column = Control.extend("sap.ui.mdc.table.Column", {
|
|
30
45
|
metadata: {
|
|
31
46
|
library: "sap.ui.mdc",
|
|
32
47
|
defaultAggregation: "template",
|
|
@@ -92,7 +107,6 @@ sap.ui.define([
|
|
|
92
107
|
type: "string"
|
|
93
108
|
}
|
|
94
109
|
},
|
|
95
|
-
events: {},
|
|
96
110
|
aggregations: {
|
|
97
111
|
/**
|
|
98
112
|
* Template for the column.
|
|
@@ -110,6 +124,17 @@ sap.ui.define([
|
|
|
110
124
|
multiple: false
|
|
111
125
|
}
|
|
112
126
|
}
|
|
127
|
+
},
|
|
128
|
+
renderer: {
|
|
129
|
+
apiVersion: 2,
|
|
130
|
+
render: function(oRm, oColumn) {
|
|
131
|
+
oRm.openStart("div", oColumn);
|
|
132
|
+
oRm.openEnd();
|
|
133
|
+
if (oColumn._oColumnHeaderLabel) {
|
|
134
|
+
oRm.renderControl(oColumn._oColumnHeaderLabel.getLabel());
|
|
135
|
+
}
|
|
136
|
+
oRm.close("div");
|
|
137
|
+
}
|
|
113
138
|
}
|
|
114
139
|
});
|
|
115
140
|
|
|
@@ -119,52 +144,183 @@ sap.ui.define([
|
|
|
119
144
|
template: true,
|
|
120
145
|
creationTemplate: true
|
|
121
146
|
};
|
|
147
|
+
|
|
148
|
+
this._oManagedObjectModel = new ManagedObjectModel(this);
|
|
149
|
+
this._oSettingsModel = new JSONModel({
|
|
150
|
+
width: this.getWidth(),
|
|
151
|
+
calculatedWidth: null,
|
|
152
|
+
p13nWidth: null,
|
|
153
|
+
resizable: false
|
|
154
|
+
});
|
|
122
155
|
};
|
|
123
156
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
var oTemplate = this.getAggregation("template");
|
|
157
|
+
Column.prototype.getInnerColumn = function() {
|
|
158
|
+
var oTable = this.getTable();
|
|
127
159
|
|
|
128
|
-
if (
|
|
129
|
-
this.
|
|
160
|
+
if (oTable && (!this._oInnerColumn || this._oInnerColumn.isDestroyed())) {
|
|
161
|
+
this._oInnerColumn = this._createInnerColumn();
|
|
130
162
|
}
|
|
131
163
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
164
|
+
return this._oInnerColumn;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
Column.prototype._createInnerColumn = function() {
|
|
168
|
+
var oTable = this.getTable();
|
|
169
|
+
var oColumn;
|
|
170
|
+
|
|
171
|
+
var oWidthBindingInfo = {
|
|
172
|
+
parts: [
|
|
173
|
+
{path: "$this>/width"},
|
|
174
|
+
{path: "$columnSettings>/calculatedWidth"},
|
|
175
|
+
{path: "$columnSettings>/p13nWidth"}
|
|
176
|
+
],
|
|
177
|
+
formatter: function(sWidth, sCalculatedWidth, sP13nWidth) {
|
|
178
|
+
return sP13nWidth || sCalculatedWidth || sWidth;
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
this._readP13nValues(); // XConfig might not have been available on init - depends on the order settings are applied in Table#applySettings.
|
|
183
|
+
|
|
184
|
+
if (oTable._bMobileTable) {
|
|
185
|
+
oColumn = ResponsiveTableType.createColumn(this.getId() + "-innerColumn", {
|
|
186
|
+
width: oWidthBindingInfo,
|
|
187
|
+
autoPopinWidth: "{$this>/minWidth}",
|
|
188
|
+
hAlign: "{$this>/hAlign}",
|
|
189
|
+
header: this._getColumnHeaderLabel(),
|
|
190
|
+
importance: "{$this>/importance}",
|
|
191
|
+
popinDisplay: "Inline"
|
|
192
|
+
});
|
|
193
|
+
} else {
|
|
194
|
+
oColumn = GridTableType.createColumn(this.getId() + "-innerColumn", {
|
|
195
|
+
width: oWidthBindingInfo,
|
|
196
|
+
minWidth: {
|
|
197
|
+
path: "$this>/minWidth",
|
|
198
|
+
formatter: function(fMinWidth) {
|
|
199
|
+
return Math.round(fMinWidth * parseFloat(MLibrary.BaseFontSize));
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
hAlign: "{$this>/hAlign}",
|
|
203
|
+
label: this._getColumnHeaderLabel(),
|
|
204
|
+
resizable: "{$columnSettings>/resizable}",
|
|
205
|
+
autoResizable: "{$columnSettings>/resizable}",
|
|
206
|
+
template: this.getTemplateClone()
|
|
207
|
+
});
|
|
208
|
+
oColumn.setCreationTemplate(this.getCreationTemplateClone());
|
|
135
209
|
}
|
|
136
210
|
|
|
137
|
-
|
|
211
|
+
oColumn.setModel(this._oManagedObjectModel, "$this");
|
|
212
|
+
oColumn.setModel(this._oSettingsModel, "$columnSettings");
|
|
213
|
+
|
|
214
|
+
return oColumn;
|
|
138
215
|
};
|
|
139
216
|
|
|
140
|
-
|
|
141
|
-
|
|
217
|
+
var ColumnHeaderLabel = Control.extend("sap.ui.mdc.table.ColumnHeaderLabel", {
|
|
218
|
+
metadata: {
|
|
219
|
+
"final": true,
|
|
220
|
+
aggregations: {
|
|
221
|
+
label: {type: "sap.m.Label", multiple: false}
|
|
222
|
+
},
|
|
223
|
+
associations: {
|
|
224
|
+
column: {type: "sap.ui.mdc.table.Column"}
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
renderer: {
|
|
228
|
+
apiVersion: 2,
|
|
229
|
+
render: function(oRm, oColumnHeaderLabel) {
|
|
230
|
+
oRm.openStart("div", oColumnHeaderLabel);
|
|
231
|
+
oRm.style("width", "100%");
|
|
232
|
+
oRm.openEnd();
|
|
233
|
+
oRm.renderControl(Core.byId(oColumnHeaderLabel.getColumn()));
|
|
234
|
+
oRm.close("div");
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
getText: function() { // Used by tests in MDC and FE.
|
|
238
|
+
return this.getLabel().getText();
|
|
239
|
+
},
|
|
240
|
+
clone: function() { // For ResponsiveTable popin.
|
|
241
|
+
return this.getLabel().clone();
|
|
242
|
+
}
|
|
243
|
+
});
|
|
142
244
|
|
|
143
|
-
|
|
144
|
-
|
|
245
|
+
/**
|
|
246
|
+
* Creates and returns the column header control.
|
|
247
|
+
* If <code>headerVisible=false</code> then <code>width=0px</code> is applied to the <code>sap.m.Label</code> control for accessibility purposes.
|
|
248
|
+
*
|
|
249
|
+
* @returns {object} The column header control
|
|
250
|
+
* @private
|
|
251
|
+
*/
|
|
252
|
+
Column.prototype._getColumnHeaderLabel = function() {
|
|
253
|
+
var oTable = this.getTable();
|
|
254
|
+
|
|
255
|
+
if (oTable && (!this._oColumnHeaderLabel || this._oColumnHeaderLabel.isDestroyed())) {
|
|
256
|
+
this._oColumnHeaderLabel = new ColumnHeaderLabel({
|
|
257
|
+
column: this,
|
|
258
|
+
label: new Label({
|
|
259
|
+
width: "{= ${$this>/headerVisible} ? null : '0px' }",
|
|
260
|
+
text: "{$this>/header}",
|
|
261
|
+
textAlign: "{$this>/hAlign}",
|
|
262
|
+
wrapping: {
|
|
263
|
+
parts: [
|
|
264
|
+
{path: "$this>/headerVisible"},
|
|
265
|
+
{path: "$columnSettings>/resizable"}
|
|
266
|
+
],
|
|
267
|
+
formatter: function(bHeaderVisible, bResizable) {
|
|
268
|
+
return oTable._bMobileTable && bHeaderVisible && !bResizable;
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
wrappingType: oTable._bMobileTable ? "Hyphenated" : null
|
|
272
|
+
})
|
|
273
|
+
});
|
|
145
274
|
}
|
|
146
275
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
276
|
+
return this._oColumnHeaderLabel;
|
|
277
|
+
};
|
|
278
|
+
|
|
279
|
+
Column.prototype.getTemplateClone = function() {
|
|
280
|
+
var oTable = this.getTable();
|
|
281
|
+
var oTemplate = this.getTemplate();
|
|
282
|
+
|
|
283
|
+
if (oTable && oTemplate && (!this._oTemplateClone || this._oTemplateClone.isDestroyed())) {
|
|
284
|
+
this._oTemplateClone = oTemplate.clone();
|
|
285
|
+
|
|
286
|
+
if (!oTable._bMobileTable) {
|
|
287
|
+
if (this._oTemplateClone.setWrapping) {
|
|
288
|
+
this._oTemplateClone.setWrapping(false);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
if (this._oTemplateClone.setRenderWhitespace) {
|
|
292
|
+
this._oTemplateClone.setRenderWhitespace(false);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
150
295
|
}
|
|
151
296
|
|
|
152
|
-
return
|
|
297
|
+
return this._oTemplateClone;
|
|
153
298
|
};
|
|
154
299
|
|
|
155
|
-
Column.prototype.
|
|
156
|
-
|
|
157
|
-
|
|
300
|
+
Column.prototype.getCreationTemplateClone = function() {
|
|
301
|
+
var oTable = this.getTable();
|
|
302
|
+
var oCreationTemplate = this.getCreationTemplate();
|
|
303
|
+
|
|
304
|
+
if (oTable && oCreationTemplate && (!this._oCreationTemplateClone || this._oCreationTemplateClone.isDestroyed())) {
|
|
305
|
+
this._oCreationTemplateClone = oCreationTemplate.clone();
|
|
306
|
+
|
|
307
|
+
if (!oTable._bMobileTable) {
|
|
308
|
+
if (this._oCreationTemplateClone.setWrapping) {
|
|
309
|
+
this._oCreationTemplateClone.setWrapping(false);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
if (this._oCreationTemplateClone.setRenderWhitespace) {
|
|
313
|
+
this._oCreationTemplateClone.setRenderWhitespace(false);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
158
316
|
}
|
|
159
317
|
|
|
160
|
-
this.
|
|
161
|
-
this._updateColumnHeaderControl();
|
|
162
|
-
return this;
|
|
318
|
+
return this._oCreationTemplateClone;
|
|
163
319
|
};
|
|
164
320
|
|
|
165
321
|
Column.prototype.setHeader = function(sHeader) {
|
|
166
322
|
this.setProperty("header", sHeader, true);
|
|
167
|
-
|
|
323
|
+
|
|
168
324
|
var oLabelElement = this.getDomRef();
|
|
169
325
|
if (oLabelElement) {
|
|
170
326
|
oLabelElement.textContent = this.getHeader();
|
|
@@ -173,134 +329,117 @@ sap.ui.define([
|
|
|
173
329
|
return this;
|
|
174
330
|
};
|
|
175
331
|
|
|
176
|
-
Column.prototype.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
332
|
+
Column.prototype._onTableChange = function(oEvent) {
|
|
333
|
+
if (oEvent.getParameter("name") === "enableColumnResize") {
|
|
334
|
+
this._readTableSettings();
|
|
335
|
+
}
|
|
180
336
|
};
|
|
181
337
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
* @private
|
|
185
|
-
*/
|
|
186
|
-
Column.prototype._updateColumnWidth = function(sWidth) {
|
|
187
|
-
var oInnerColumn = Core.byId(this.getId() + "-innerColumn");
|
|
188
|
-
if (!oInnerColumn || !this.getWidth()) {
|
|
189
|
-
this.setProperty("width", sWidth);
|
|
190
|
-
}
|
|
338
|
+
Column.prototype._readTableSettings = function() {
|
|
339
|
+
var oTable = this.getTable();
|
|
191
340
|
|
|
192
|
-
|
|
193
|
-
if (oInnerColumn && !oInnerColumn.getWidth()) {
|
|
194
|
-
oInnerColumn.setWidth(sWidth);
|
|
195
|
-
}
|
|
341
|
+
this._oSettingsModel.setProperty("/resizable", oTable.getEnableColumnResize());
|
|
196
342
|
};
|
|
197
343
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
this._oColumnHeaderLabel.setWidth(this.getHeaderVisible() ? null : "0px");
|
|
205
|
-
this._oColumnHeaderLabel.setWrapping(this._bMobileTable && !this._bResizable && this.getHeaderVisible());
|
|
206
|
-
this._oColumnHeaderLabel.setText(this.getHeader());
|
|
207
|
-
this._oColumnHeaderLabel.setTextAlign(this.getHAlign());
|
|
344
|
+
Column.prototype.setParent = function(oParent) {
|
|
345
|
+
var oPreviousTable = this.getTable();
|
|
346
|
+
Control.prototype.setParent.apply(this, arguments);
|
|
347
|
+
|
|
348
|
+
if (this._bIsBeingMoved) { // Set by the table when moving this column.
|
|
349
|
+
return;
|
|
208
350
|
}
|
|
209
|
-
};
|
|
210
351
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
* @private
|
|
214
|
-
*/
|
|
215
|
-
Column.prototype.updateColumnResizing = function(bEnabled) {
|
|
216
|
-
this._bResizable = !!bEnabled;
|
|
217
|
-
this._updateColumnHeaderControl();
|
|
352
|
+
this._disconnectFromTable(oPreviousTable);
|
|
353
|
+
this._connectToTable();
|
|
218
354
|
};
|
|
219
355
|
|
|
220
|
-
Column.prototype.
|
|
221
|
-
var
|
|
222
|
-
|
|
223
|
-
if (
|
|
224
|
-
|
|
225
|
-
this._addAriaStaticDom();
|
|
226
|
-
} else {
|
|
227
|
-
this.oAfterRenderingDelegate = {
|
|
228
|
-
onAfterRendering: function () {
|
|
229
|
-
this._addAriaStaticDom();
|
|
230
|
-
this.getParent().removeDelegate(this.oAfterRenderingDelegate);
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
oParent.addDelegate(this.oAfterRenderingDelegate, this);
|
|
234
|
-
}
|
|
235
|
-
} else if (!oParent) {
|
|
236
|
-
oPrevParent.removeDelegate(this.oAfterRenderingDelegate);
|
|
237
|
-
this._removeAriaStaticDom();
|
|
356
|
+
Column.prototype._connectToTable = function() {
|
|
357
|
+
var oTable = this.getTable();
|
|
358
|
+
|
|
359
|
+
if (!oTable) {
|
|
360
|
+
return;
|
|
238
361
|
}
|
|
362
|
+
|
|
363
|
+
this._calculateColumnWidth();
|
|
364
|
+
this._readP13nValues();
|
|
365
|
+
this._readTableSettings();
|
|
366
|
+
oTable.attachEvent("_change", this._onTableChange, this);
|
|
239
367
|
};
|
|
240
368
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
* If <code>headerVisible=false</code> then <code>width=0px</code> is applied to the <code>sap.m.Label</code> control for accessibility purposes.
|
|
244
|
-
* @param {boolean} bMobileTable The type of the table
|
|
245
|
-
* @param {boolean} bResizing Indicates whether the column is resizable
|
|
246
|
-
* @returns {object} The column header control
|
|
247
|
-
* @private
|
|
248
|
-
*/
|
|
249
|
-
Column.prototype.getColumnHeaderControl = function(bMobileTable, bResizing) {
|
|
250
|
-
if (this._oColumnHeaderLabel) {
|
|
251
|
-
this._oColumnHeaderLabel.destroy();
|
|
252
|
-
}
|
|
369
|
+
Column.prototype._disconnectFromTable = function(oTable) {
|
|
370
|
+
oTable = oTable || this.getTable();
|
|
253
371
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
}
|
|
257
|
-
this._bMobileTable = bMobileTable;
|
|
372
|
+
if (!oTable) {
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
258
375
|
|
|
259
|
-
this.
|
|
376
|
+
if (this._oInnerColumn) {
|
|
377
|
+
this._oInnerColumn.destroy("KeepDom");
|
|
378
|
+
oTable.invalidate();
|
|
379
|
+
}
|
|
380
|
+
};
|
|
260
381
|
|
|
261
|
-
|
|
382
|
+
Column.prototype._onModifications = function() {
|
|
383
|
+
this._readP13nValues();
|
|
262
384
|
};
|
|
263
385
|
|
|
264
|
-
Column.prototype.
|
|
265
|
-
var
|
|
386
|
+
Column.prototype._calculateColumnWidth = function() {
|
|
387
|
+
var oTable = this.getTable();
|
|
266
388
|
|
|
267
|
-
if (
|
|
268
|
-
|
|
389
|
+
if (!oTable || !oTable.getEnableAutoColumnWidth() || !this.isPropertyInitial("width")) {
|
|
390
|
+
return;
|
|
269
391
|
}
|
|
270
|
-
};
|
|
271
392
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
oInvisibleDiv.appendChild(oHeaderTextNode);
|
|
279
|
-
var oStaticDiv = Core.getStaticAreaRef();
|
|
280
|
-
|
|
281
|
-
if (oInvisibleDiv && oStaticDiv) {
|
|
282
|
-
oStaticDiv.appendChild(oInvisibleDiv);
|
|
393
|
+
var oPropertyHelper = oTable.getPropertyHelper();
|
|
394
|
+
|
|
395
|
+
if (oPropertyHelper) {
|
|
396
|
+
this._oSettingsModel.setProperty("/calculatedWidth", oPropertyHelper.calculateColumnWidth(this));
|
|
397
|
+
} else {
|
|
398
|
+
oTable.awaitPropertyHelper().then(this._calculateColumnWidth.bind(this));
|
|
283
399
|
}
|
|
284
400
|
};
|
|
285
401
|
|
|
286
|
-
Column.prototype.
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
}
|
|
402
|
+
Column.prototype._readP13nValues = function() {
|
|
403
|
+
var oTable = this.getTable();
|
|
404
|
+
var vXConfig = oTable.getCurrentState().xConfig;
|
|
405
|
+
var sPropertyKey = this.getDataProperty();
|
|
291
406
|
|
|
292
|
-
if (
|
|
293
|
-
this.
|
|
294
|
-
|
|
407
|
+
if (vXConfig instanceof Promise) {
|
|
408
|
+
vXConfig.then(this._readP13nValues.bind(this));
|
|
409
|
+
return;
|
|
295
410
|
}
|
|
296
411
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
412
|
+
var sWidth = vXConfig &&
|
|
413
|
+
vXConfig.aggregations &&
|
|
414
|
+
vXConfig.aggregations.columns &&
|
|
415
|
+
vXConfig.aggregations.columns[sPropertyKey] &&
|
|
416
|
+
vXConfig.aggregations.columns[sPropertyKey].width;
|
|
417
|
+
|
|
418
|
+
this._oSettingsModel.setProperty("/p13nWidth", sWidth);
|
|
302
419
|
};
|
|
303
420
|
|
|
304
|
-
|
|
421
|
+
Column.prototype.getTable = function() {
|
|
422
|
+
var oParent = this.getParent();
|
|
423
|
+
return oParent && oParent.isA("sap.ui.mdc.Table") ? oParent : null;
|
|
424
|
+
};
|
|
305
425
|
|
|
306
|
-
|
|
426
|
+
Column.prototype.exit = function() {
|
|
427
|
+
this._disconnectFromTable();
|
|
428
|
+
|
|
429
|
+
[
|
|
430
|
+
"_oManagedObjectModel",
|
|
431
|
+
"_oSettingsModel",
|
|
432
|
+
"_oInnerColumn",
|
|
433
|
+
"_oTemplateClone",
|
|
434
|
+
"_oCreationTemplateClone",
|
|
435
|
+
"_oColumnHeaderLabel"
|
|
436
|
+
].forEach(function(sObject) {
|
|
437
|
+
if (this[sObject]) {
|
|
438
|
+
this[sObject].destroy();
|
|
439
|
+
delete this[sObject];
|
|
440
|
+
}
|
|
441
|
+
}, this);
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
return Column;
|
|
445
|
+
});
|
|
@@ -21,7 +21,7 @@ sap.ui.define([
|
|
|
21
21
|
* {@link sap.ui.mdc.table.Column#getCreationTemplate creationTemplate} aggregation of the {@link sap.ui.mdc.table.Column}.
|
|
22
22
|
* @extends sap.ui.core.Element
|
|
23
23
|
* @author SAP SE
|
|
24
|
-
* @version 1.
|
|
24
|
+
* @version 1.102.0
|
|
25
25
|
* @constructor
|
|
26
26
|
* @experimental
|
|
27
27
|
* @private
|
|
@@ -11,7 +11,6 @@ sap.ui.define([
|
|
|
11
11
|
|
|
12
12
|
var InnerTable, InnerColumn, InnerRowAction, InnerRowActionItem, InnerMultiSelectionPlugin, InnerFixedRowMode, InnerAutoRowMode, InnerRowSettings;
|
|
13
13
|
var RowCountMode = library.RowCountMode;
|
|
14
|
-
var RowAction = library.RowAction;
|
|
15
14
|
|
|
16
15
|
/**
|
|
17
16
|
* Constructor for a new <code>GridTableType</code>.
|
|
@@ -168,15 +167,6 @@ sap.ui.define([
|
|
|
168
167
|
return oColumn;
|
|
169
168
|
};
|
|
170
169
|
|
|
171
|
-
GridTableType.createNavigationRowAction = function(sIdPrefix, aEventInfo) {
|
|
172
|
-
return new InnerRowAction(sIdPrefix + "--rowAction", {
|
|
173
|
-
items: new InnerRowActionItem(sIdPrefix + "--rowActionItem", {
|
|
174
|
-
type: RowAction.Navigation,
|
|
175
|
-
press: aEventInfo
|
|
176
|
-
})
|
|
177
|
-
});
|
|
178
|
-
};
|
|
179
|
-
|
|
180
170
|
GridTableType.createMultiSelectionPlugin = function(oTable, aEventInfo) {
|
|
181
171
|
return new InnerMultiSelectionPlugin(oTable.getId() + "--multiSelectPlugin", {
|
|
182
172
|
selectionMode: TableTypeBase.getSelectionMode(oTable),
|
|
@@ -208,14 +198,7 @@ sap.ui.define([
|
|
|
208
198
|
oTable._oTable.getPlugins()[0].setSelectionMode(sSelectionMode);
|
|
209
199
|
};
|
|
210
200
|
|
|
211
|
-
GridTableType.
|
|
212
|
-
oTable._oTable.setRowActionTemplate(this.createNavigationRowAction(oTable.getId(), [
|
|
213
|
-
fnRowActionPress, oTable
|
|
214
|
-
]));
|
|
215
|
-
oTable._oTable.setRowActionCount(1);
|
|
216
|
-
};
|
|
217
|
-
|
|
218
|
-
GridTableType.clearNavigation = function(oTable) {
|
|
201
|
+
GridTableType.removeRowActions = function(oTable) {
|
|
219
202
|
var oInnerRowAction = oTable._oTable.getRowActionTemplate();
|
|
220
203
|
if (oInnerRowAction) {
|
|
221
204
|
oInnerRowAction.destroy();
|
|
@@ -224,20 +207,80 @@ sap.ui.define([
|
|
|
224
207
|
oTable._oTable.setRowActionCount();
|
|
225
208
|
};
|
|
226
209
|
|
|
227
|
-
GridTableType.
|
|
228
|
-
this.clearNavigation(oTable);
|
|
229
|
-
if (bNavigation) {
|
|
230
|
-
this.updateNavigation(oTable, fnRowActionPress);
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
GridTableType.updateRowSettings = function(oTable, oRowSettings) {
|
|
210
|
+
GridTableType.updateRowSettings = function(oTable, oRowSettings, fnRowActionPress) {
|
|
235
211
|
var oInnerRowSettings = new InnerRowSettings(undefined, oRowSettings.getAllSettings());
|
|
236
|
-
|
|
212
|
+
this.updateRowActions(oTable.getParent(), oRowSettings, fnRowActionPress);
|
|
237
213
|
oTable.getRowSettingsTemplate().destroy();
|
|
238
214
|
oTable.setRowSettingsTemplate(oInnerRowSettings);
|
|
239
215
|
};
|
|
240
216
|
|
|
217
|
+
GridTableType.updateRowActions = function (oTable, oRowSettings) {
|
|
218
|
+
this.removeRowActions(oTable);
|
|
219
|
+
if (!oRowSettings) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
if (!oRowSettings.isBound("rowActions") && (!oRowSettings.getRowActions() || oRowSettings.getRowActions().length == 0)) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
var oRowActions = oRowSettings.getAllActions();
|
|
227
|
+
if ("templateInfo" in oRowActions) {
|
|
228
|
+
var oTemplateInfo = oRowActions.templateInfo;
|
|
229
|
+
// Set template for inner row actions using temporary metadata
|
|
230
|
+
oRowActions.items.template = new InnerRowActionItem({
|
|
231
|
+
type: oTemplateInfo.type,
|
|
232
|
+
visible: oTemplateInfo.visible,
|
|
233
|
+
icon: oTemplateInfo.icon,
|
|
234
|
+
text: oTemplateInfo.text,
|
|
235
|
+
press: [this._onRowActionPress, oTable]
|
|
236
|
+
});
|
|
237
|
+
// Remove temporary metadata from row actions object
|
|
238
|
+
delete oRowActions.templateInfo;
|
|
239
|
+
} else {
|
|
240
|
+
oRowActions.items = oRowActions.items.map(function (oRowActionItem) {
|
|
241
|
+
var oInnerRowActionItem = new InnerRowActionItem({
|
|
242
|
+
type: oRowActionItem.isBound("type") ? oRowActionItem.getBindingInfo("type") : oRowActionItem.getType(),
|
|
243
|
+
visible: oRowActionItem.isBound("visible") ? oRowActionItem.getBindingInfo("visible") : oRowActionItem.getVisible(),
|
|
244
|
+
icon: oRowActionItem.isBound("icon") ? oRowActionItem.getBindingInfo("icon") : oRowActionItem._getIcon(),
|
|
245
|
+
text: oRowActionItem.isBound("text") ? oRowActionItem.getBindingInfo("text") : oRowActionItem._getText(),
|
|
246
|
+
press: [this._onRowActionPress, oTable]
|
|
247
|
+
});
|
|
248
|
+
// Add custom data for MDC row action, so original is retrievable from inner row action item
|
|
249
|
+
oInnerRowActionItem.data("rowAction", oRowActionItem);
|
|
250
|
+
return oInnerRowActionItem;
|
|
251
|
+
}, this);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
var oInnerRowAction = new InnerRowAction(oTable.getId() + "--rowAction", oRowActions);
|
|
255
|
+
oTable._oTable.setRowActionTemplate(oInnerRowAction);
|
|
256
|
+
oTable._oTable.setRowActionCount(oRowSettings.getRowActionCount());
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
GridTableType._onRowActionPress = function (oEvent) {
|
|
260
|
+
var oInnerRowActionItem = oEvent.getParameter("item");
|
|
261
|
+
var oRowActionsInfo = this.getRowSettings().getAllActions();
|
|
262
|
+
|
|
263
|
+
if (this.getRowSettings().isBound("rowActions")) {
|
|
264
|
+
var sActionModel = oRowActionsInfo.items.model;
|
|
265
|
+
var oActionContext = oInnerRowActionItem.getBindingContext(sActionModel);
|
|
266
|
+
|
|
267
|
+
// Create a one time clone for the MDC RowAction and 'switch' binding context based on press action
|
|
268
|
+
if (!this._oRowActionItem) {
|
|
269
|
+
this._oRowActionItem = oRowActionsInfo.items.template.clone();
|
|
270
|
+
}
|
|
271
|
+
this._oRowActionItem.setBindingContext(oActionContext, oRowActionsInfo.items.model);
|
|
272
|
+
|
|
273
|
+
// Set model for row settings, as it is not propagated
|
|
274
|
+
this._oRowActionItem.setModel(this.getModel(sActionModel), sActionModel);
|
|
275
|
+
this.getRowSettings().addDependent(this._oRowActionItem);
|
|
276
|
+
} else {
|
|
277
|
+
this._oRowActionItem = oInnerRowActionItem.data("rowAction");
|
|
278
|
+
}
|
|
279
|
+
var oRow = oEvent.getParameter("row");
|
|
280
|
+
this._oRowActionItem.firePress({
|
|
281
|
+
bindingContext: oRow.getBindingContext()
|
|
282
|
+
});
|
|
283
|
+
};
|
|
241
284
|
|
|
242
285
|
return GridTableType;
|
|
243
286
|
});
|