You use busy indicators to inform users that something is going on in the background, for example, some data is being fetched from the back end and the user has to wait. As long as the busy indicator is shown, either all or a specific part of the UI is blocked, and no user interaction is possible.
Whenever busy indication is triggered, the default delay until the busy indicator is displayed on the UI is 1000 ms (1 second). If this delay were not in place, the busy indicator would always be displayed, even if there is no negotiable waiting time.
sap.ui.core.BusyIndicator
sap.m.BusyDialog
sap.m.BusyIndicator
#!jssap.ui.core.BusyIndicator.show(<number>);
#!jssap.ui.core.BusyIndicator.hide();
With the sap.m.BusyDialog busy indicator, you can block the whole UI like you do with sap.ui.core.BusyIndicator, but you can also show a dialog box. In this dialog box, you can also include a Cancel button that users can choose to stop the activity that's running in the background.
The sap.m.BusyIndicator busy indicator blocks specific UI areas that are defined by a control. For example, if a table in a complex UI is loading, only the table is blocked - the user can still carry on working with the rest of the UI.
If a control is set to busy, the complete control will be covered with a block layer, so no mouse events or keyboard interaction with the control are possible. If keyboard navigation is being used to step through the controls, controls that are set to busy are skipped and the focus jumps to the next control.
#!jsvar oMyListBox = new sap.ui.commons.ListBox({
tooltip : "Country",
editable : false,
width : "200px",
height : "200px",
items : [ new sap.ui.core.ListItem({
text : "I'm an item, and you?"
}) ]
}).placeAt("uiArea1");
oMyListBox.setBusy(true);
#!jsvar oMyListBox = new sap.ui.commons.ListBox({
busy : true,
tooltip : "Country",
editable : false,
width : "200px",
height : "200px",
items : [ new sap.ui.core.ListItem({
text : "I'm an item, and you?"
}) ]
}).placeAt("uiArea1");
#!jsoMyListBox.setBusy(false);
#!jsoMyListBox.setBusyIndicatorDelay(<number>);
API Reference: sap.m.BusyIndicator