Hi All,
Please find the code below code , for setting the selected menu text name in the input control.
//create the input control
var mInput = new sap.m.Input({ showValueHelp: true, showSuggestion: true, valueHelpOnly: true, placeholder: "Choose value", });
//change helpicon of the input control
mInput._getValueHelpIcon().setSrc("sap-icon://slim-arrow-down");
//create the menu list
//oData.FullNodes contains details abt the menu
var filterMenuList = this.constructFilterMenu(oData.fullNodes, null, mInput,oData.dimensionId);
mInput.addStyleClass("sapUiPopupWithPadding");
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData(oData);
mInput.setModel(oModel);
mInput.attachValueHelpRequest(function (oEvent) {
var eDock = sap.ui.core.Popup.Dock;
filterMenuList.open(
true /*First item already highlighted*/,
mInput.getFocusDomRef()/*Dom reference which gets the focus back when the menu is closed*/,
eDock.BeginTop, /*"Edge" of the menu (see sap.ui.core.Popup)*/
eDock.BeginBottom, /*"Edge" of the related opener position (see sap.ui.core.Popup)*/
mInput.getDomRef() /*Related opener position (see sap.ui.core.Popup)*/
);
}, this);
constructFilterMenu: function (data, parentMenu, oLabel,dimensionId)
{ var that = this;
var mainMenu = new sap.ui.unified.Menu();
var parentLabel = oLabel;
if (parentMenu!= null) {
parentMenu.setSubmenu(mainMenu);
} else {
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData(data); mainMenu.setModel(oModel);
mainMenu.attachItemSelect(function (oMenuSelect)
{ var s = parentLabel;
if (oMenuSelect.getParameter("item").getMetadata().getName() == "sap.ui.unified.MenuItem") {
parentLabel.setValue(oMenuSelect.getParameter("item").getText()); }
});
}
for (var key = 0, l = data.length; key < l; key++)
{
var item = data[key];
var menuItem = new sap.ui.unified.MenuItem({tooltip: item.caption, text: item.caption});
mainMenu.addItem(menuItem);
var oMenuItemModel = new sap.ui.model.json.JSONModel();
oMenuItemModel.setData(item);
menuItem.setModel(oMenuItemModel);
if (item.children.length > 0) {
this.constructFilterMenu(item.children, menuItem, oLabel,dimensionId);
}
} return mainMenu;
}
Thanks, Hemapriya