function onMessageSelected(oEvent) {
				var oBestMatch,
					aControls = oEvent.getParameter("item").getBindingContext("messages")
						.getObject().getControlIds().map(function (sId) {
							return Element.getElementById(sId);
					});

				if (aControls.length) {
					// aControls contains all controls matching the message target. This includes
					// the table too. Filter it out because it doesn't have getEditable.
					oBestMatch = aControls.filter(function (oControl) {
						return oControl.getEditable;
					}).reduce(function (oBefore, oCurrent) {
						// editable wins over non editable control
						if (!oBefore.getEditable() && oCurrent.getEditable()) {
							return oCurrent;
						}
						return oBefore;
					});
					oPage.scrollToElement(oBestMatch);
					setTimeout(function () {
						// it may take some time to scroll the control into the visible area and the
						// control can only be focused when it is visible
						oBestMatch.focus();
					}, 200);
				}
			}
Creates a new sap.m.MessagePopover within the controller which is bound to the global
sap.ui.model.message.MessageModel. The MessagePopover listens to MessageModel changes
and will be automatically opened for new error messages. If the view has a sap.m.Page
with the ID "page", then a navigation from a message to the control associated with the
message target is supported by clicking on the message title.

@param {string} sOpenButtonId
  The ID of the Button where the MessagePopover has to be opened