use of org.ovirt.engine.ui.common.widget.action.UiMenuBarButtonDefinition in project ovirt-engine by oVirt.
the class AbstractActionTable method updateContextMenu.
/**
* Rebuilds context menu items to match the action button list.
* @param dropDownMenu The menu bar to populate.
* @param actions A list of {@code ActionButtonDefinition}s used to populate the {@code MenuBar}.
* @param popupPanel The pop-up panel containing the {@code MenuBar}.
* @param removeOldItems A flag to indicate if we should remove old items.
* @return A {@code MenuBar} containing all the action buttons as menu items.
*/
private DropDownMenu updateContextMenu(DropDownMenu dropDownMenu, List<ActionButtonDefinition<T>> actions, boolean removeOldItems) {
if (removeOldItems) {
ElementTooltipUtils.destroyMenuItemTooltips(dropDownMenu);
dropDownMenu.clear();
// Close any other open popups as well.
closeOtherPopups();
}
for (final ActionButtonDefinition<T> buttonDef : actions) {
if (buttonDef instanceof UiMenuBarButtonDefinition) {
UiMenuBarButtonDefinition<T> menuBarDef = (UiMenuBarButtonDefinition<T>) buttonDef;
DropDownHeader subMenuHeader = new DropDownHeader(buttonDef.getText());
dropDownMenu.add(new Divider());
subMenuHeader.setVisible(buttonDef.isVisible(getSelectedItems()));
dropDownMenu.add(subMenuHeader);
updateContextMenu(dropDownMenu, menuBarDef.getSubActions(), false);
} else {
AnchorListItem item = new AnchorListItem(buttonDef.getText());
item.addClickHandler(e -> buttonDef.onClick(getSelectedItems()));
updateMenuItem(item, buttonDef);
dropDownMenu.add(item);
}
}
return dropDownMenu;
}
Aggregations