рдЪрдорддреНрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ - рдХреЛрдИ рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ред (рдПрдкрд┐рдЧреНрд░рд╛рдл рдХреЗ рдмрдЬрд╛рдп)рд╢реБрдн рджреЛрдкрд╣рд░!рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд░рд▓ рд╣реЛрдЧрд╛редрдПрдХ рджреГрд╢реНрдп рд╣реИ:<mvc:View
controllerName="MyController"
xmlns="sap.m"
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc">
<Button text="!" press="handlePress" />
<Table
items="{view>/list/items}"
mode="MultiSelect"
selectionChange="handleTableSelection">
<columns>
<Column>
<Text text="" />
</Column>
<Column>
<Text text="" />
</Column>
</columns>
<items>
<ColumnListItem>
<cells>
<ObjectIdentifier title="{view>id}" />
<Text text="{view>description}" />
</cells>
</ColumnListItem>
</items>
</Table>
</mvc:View>
рдФрд░ рдПрдХ рд╣реА "рдмрд╛рд╣рд░ рдЫрд▓" рдирд┐рдпрдВрддреНрд░рдХ:sap.ui.controller("MyController", {
onInit: function () {
this.__oViewModel = new sap.ui.model.json.JSONModel({
list: {
items: [
{ id: 1, description: 'one' },
{ id: 2, description: 'two' },
{ id: 3, description: 'three' }
],
selected: []
}
});
this.getView().setModel(this.__oViewModel, "view");
},
handlePress: function (oEvent) {
sap.m.MessageToast.show(this.__oViewModel.getProperty('/list/selected').join(', '));
},
handleTableSelection: function (oEvent) {
const aSelectedCtx = oEvent.getSource().getSelectedContexts(),
aSelected = aSelectedCtx.map(o => o.getObject().id);
this.__oViewModel.setProperty('/list/selected', aSelected);
}
});
рджреЗрдЦрдиреЗ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдм рдХрд╛рдлреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛:
рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ, рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреЗ рд╕рд╛рде рд╕реВрдЪреАрдмрджреНрдз рдЪрдпрдирд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкреЙрдк рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рд╣рдо рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рдмрд╛рд╣рд░ рдЧреИрд░-рдЦрд╛рд▓реА рд╕рд░рдгреА рдФрд░ рдЕрдиреНрдп рдпреВрдЖрдИ-trifles рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ)редрд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ "рдЪрд▓реЛ рдЪрд▓реЗрдВ!" рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ рдЪрдпрдирд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПредрдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╖реНрдЯрд┐ рдХреЗ рдмрд╛рдж рд╣реА рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПредрдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рддреБрдЪреНрдЫ рдмрд╛рдд - рдкреБрд╖реНрдЯрд┐ рд╕рдВрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рдЯреБрдХрдбрд╝рд╛ рдЬреЛрдбрд╝реЗрдВ:ConfirmDialog.fragment.xml<core:FragmentDefinition
xmlns='sap.m'
xmlns:core='sap.ui.core' >
<Dialog
id='confirmDialog'
title=''
type='Message'
state='Warning'>
<content>
<Label text=' ?' />
</content>
<beginButton>
<Button
text=''
press='handleConfirmBtn'/>
</beginButton>
<endButton>
<Button
text=''
press='handleCancelBtn'/>
</endButton>
</Dialog>
</core:FragmentDefinition>
рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ:ConfirmDialog.controller.jssap.ui.define([
"sap/ui/base/ManagedObject"
], function (ManagedObject) {
"use strict";
return ManagedObject.extend("project.ConfirmDialog", {
constructor: function (oView, fnConfirmBtn) {
this.__oView = oView;
this.__fnConfirmBtn = fnConfirmBtn;
},
exit: function () {
delete this.__oView;
delete this.__fnConfirmBtn;
},
open: function () {
const oView = this.__oView;
let oDialog = oView.byId("confirmDialog");
if (!oDialog) {
const oFragmentController = {
handleConfirmBtn: () => {
this.__fnConfirmBtn();
oDialog.close();
},
handleCancelBtn: () => {
oDialog.close();
}
};
oDialog = sap.ui.xmlfragment(oView.getId(), "project.view.fragment.ConfirmDialog", oFragmentController);
oView.addDependent(oDialog);
}
oDialog.open();
}
});
});
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, SAP UI5 SDK рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╢рд╛рд╕реНрддреНрд░реАрдп рд╣реИредрдЕрдм, рдЗрд╕ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдореБрдЦреНрдп рдмрдЯрди рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:handlePress: function (oEvent) {
const aSelected = this.__oViewModel.getProperty('/list/selected');
this.__confirmDialog = new ConfirmDialog(this.getView(), () => {
aSelected.forEach(o => {
});
this.__confirmDialog.exit();
});
this.__confirmDialog.open();
}
рдпрд╣реА рд╣реИ, рдпрд╣рд╛рдВ рд╣рдо рдЕрдкрдирд╛ рд╕рдВрд╡рд╛рдж рдмрдирд╛рддреЗ рд╣реИрдВ, рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ "рдореБрдЦреНрдп" рджреГрд╢реНрдп рдЬрд┐рд╕ рдкрд░ рдпрд╣ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛, рдФрд░ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рдиредрдпрд╣рд╛рдВ рд╣рдо рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЖрдПредрдкрд░ рдлрд╝реНрд▓рд┐рдк рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдбрд╛рдпрд▓реЙрдЧ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛрдб рдХреА рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВредрджреЗрдЦрд┐рдП рдХреБрдЫ рдЕрдЬреАрдм?рдирд╣реАрдВ?рдлрд┐рд░, рдЯреНрд░реЗрд╕ рдореЛрдб рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░, рдкрд╣рд▓реЗ рджреЛ рддрддреНрд╡реЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред handlePress: function (oEvent) {
const aSelected = this.__oViewModel.getProperty('/list/selected');
this.__confirmDialog = new ConfirmDialog(this.getView(), () => {
aSelected.forEach(o => {
});
this.__confirmDialog.exit();
});
this.__confirmDialog.open();
}
рд╣реБрд░реНрд░реЗ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдкрдХрдбрд╝ рд╣реИ? рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрддреБрд▓рдиреАрдп рд╣реЛ рдФрд░ рдХреБрдЫ рдФрд░ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реЛред рдЖрдЗрдП рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ: рддреАрд╕рд░реЗ рддрддреНрд╡ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ "рд▓реЗрдЯреНрд╕ рдЧреЛ!" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ: handlePress: function (oEvent) {
const aSelected = this.__oViewModel.getProperty('/list/selected');
this.__confirmDialog = new ConfirmDialog(this.getView(), () => {
aSelected.forEach(o => {
рдХреНрдпреЛрдВ [1,2], рдореБрдЭрд╕реЗ рддреБрдо рдкреВрдЫреЛред рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреЛрдИ рдкреВрдЫрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИредрдФрд░ рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдРрд╕рд╛ рдХреБрд░реВрдк рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦрд╛, рддреЛ рдореИрдВ рдЪреБрдкрдЪрд╛рдк рдЕрдкрдиреЗ рдЖрдк рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░рдиреЗ рд▓рдЧрд╛ред рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрднреА рднреА рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдХреЙрдиреНрд╕реНрдЯ рдЕрдкрдиреЗ рдкреВрд░реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдЕрдкрд░рд┐рд╣рд╛рд░реНрдпрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдПрд▓реЗрдХреНрдЯреЗрдб рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд╣реАрдВ рдФрд░ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рджрд┐рдЦрд╛рдпрд╛, рд╡рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛редрд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЖрдкрдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреАрдбрд╝рд╛ рдирд╣реАрдВ рджреАредрдпрд╣ рд╕рднреА рд╕рдВрджрд░реНрднреЛрдВ рдФрд░ рдХреНрд▓реЛрдЬрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ рд╕рднреА рдЬреЗрдПрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдкрд╕рдВрдж рд╣реИредрдпрд╣реА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдВрднрд╛рд▓ рдХреЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ, ConfirmBtn, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдЗрд╕рдХреЗ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рд╕рдВрджрд░реНрдн (aSelected рд╕рд╣рд┐рдд) рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╣реИред рдФрд░ рд╡рд┐рд▓реЛрдкрди рдХреА рдмрд╛рдж рдХреА рдкреБрд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде, рдпрд╣ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИредрддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЗрддрдирд╛ рд╕рд░рд▓ рдФрд░ рдЕрд╕рдВрджрд┐рдЧреНрдз рдирд╣реАрдВ рдерд╛ред рдпрд╣ рдХреЗрд╡рд▓ рдУрдлреНрд░реИрдЧрдореЗрдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ рдШреЛрд╖рдгрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ (1 рдХреЙрд▓ рдХреЗ рдмрд╛рдж, рд╕рдВрджрд░реНрдн рдЦреЛ рдЧрдпрд╛ рдерд╛)ред рдФрд░ рд╕рдмрд╕реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рддрд░реАрдХрд╛ рдерд╛ (рдореИрдВ рдХреЗрд╡рд▓ рдЦреБрд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рдХреЛрдб рджреВрдВрдЧрд╛):open: function () {
const oView = this.__oView;
let oDialog = oView.byId("confirmDialog");
if (!oDialog) {
const oFragmentController = {
handleConfirmBtn: function () {
this.__fnConfirm();
oDialog.close();
},
handleCancelBtn: function () {
oDialog.close();
}
};
oDialog = sap.ui.xmlfragment(oView.getId(), "project.view.fragment.ConfirmDialog", oFragmentController);
oDialog.controller = oFragmentController;
oView.addDependent(oDialog);
}
oDialog.controller.__fnConfirm = this.__fnConfirmBtn.bind(this);
oDialog.open();
}
рдЕрдВрддрд┐рдо 4 рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ: рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рд╕рд╣реА рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд╣реИрдВрдбрд▓рд░ рдХреЛ "рд░реЛрд▓" рдХрд░рддрд╛ рд╣реВрдВредрджреНрд╡рд╛рд░рд╛ рдФрд░ рдмрдбрд╝реЗ, рдХреЗрд╡рд▓ рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдерд╛редрдПрдХ рд╕реЗ рдорд┐рд▓рдирд╛ рд╕рдВрднрд╡ рдерд╛oDialog.setBeginButton(new sap.m.Button({ text: '', press: this.__fnConfirmBtn }));
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ, рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рд╕рдВрд╡рд╛рдж рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирдпрд╛ рдмрдЯрди рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдпрд╣ рдареАрдХ рдирд╣реАрдВ рд╣реИредрдореИрдВрдиреЗ oDialog.getBeginButton ()ред AttachPress рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓рдмреИрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рдЯрдХрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд▓рд╛рдЗрди рдореЗрдВ .detachPress рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╕рднреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдШреГрдгрд┐рдд рдерд╛редрдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд░реЛрдорд╛рдВрдЪ рд▓рдЧрднрдЧ рдиреАрд▓реЗ рд░рдВрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдЖрдпрд╛ (рдкрд╣рд▓реЗ рд╕реЗ ... рдЖрд╣, ui5!)PS рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣реИрдВрдбрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рджреНрд╡рд╛рд░рд╛ рдФрд░ рдмрдбрд╝реА, рд╡рд░реНрдгрд┐рдд рд╕реНрдерд┐рддрд┐ рднрд╛рд╖рд╛ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдФрд░ UI5 рд░реВрдкрд░реЗрдЦрд╛ рдмрд╕ рдЗрд╕реЗ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИред