TEST
by Arnaud Buchholz
HTML
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<title>Just a Button</title>
<script src="https://ui5.sap.com/resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-libs="sap.m"
data-sap-ui-theme="sap_fiori_3"
data-sap-ui-compatVersion="edge"></script>
</head>
<body id="content" class="sapUiBody">
</body>
</html>
JavaScript
sap.ui.require([
'sap/m/Button',
'sap/m/Toolbar',
'sap/m/MessageBox'
], async function (Button, Toolbar, MessageBox) {
class MyButton extends sap.m.Button {
constructor (...args) {
super(...args)
this.setText('My button')
}
}
debugger
alert(MyButton.getMetadata())
function messageBox (label, options) {
return new Promise((resolve) => {
MessageBox.show(label, {
title: 'My application',
icon: MessageBox.Icon.INFORMATION,
...options,
closeOnNavigation: true,
onClose: resolve
});
});
}
function yesno (label) {
return messageBox(label, {
icon: sap.m.MessageBox.Icon.QUESTION,
actions: [MessageBox.Action.YES, MessageBox.Action.NO],
emphasizedAction: MessageBox.Action.YES
});
}
function confirm_promise (labels) {
return Promise.all(labels.map((label) => yesno(label)));
}
async function confirm_foreach (labels) {
const answers = []
labels.forEach(async (label) => {
answers.push(await yesno(label));
});
return answers
}
async function confirm_forawait (labels) {
const answers = [];
for await (const label of labels) {
answers.push(await yesno(label));
}
return answers;
};
const toolbar = new Toolbar({
content: [
new Button({
text: 'Info',
press: () => {
messageBox('Hello World !');
}
}),
new Button({
text: 'Error',
press: () => {
messageBox('Error', {Â icon: MessageBox.Icon.ERROR });
}
}),
new Button({
text: 'Question',
press: () => {
messageBox('Please answer', {
icon: sap.m.MessageBox.Icon.QUESTION,
actions: [MessageBox.Action.YES, MessageBox.Action.NO],
emphasizedAction: MessageBox.Action.YES
})
.then((answer) => messageBox(answer || '--none--', { title: 'Your answer' }));
}
...