package com.qcadoo.mes.deliveries.roles; import com.qcadoo.view.api.ViewDefinitionState; import com.qcadoo.view.api.components.WindowComponent; import com.qcadoo.view.api.ribbon.Ribbon; import com.qcadoo.view.api.ribbon.RibbonActionItem; import com.qcadoo.view.api.ribbon.RibbonGroup; public enum DeliveryRole { ROLE_DELIVERIES_STATES_DECLINE { @Override public void processRole(final ViewDefinitionState view) { lockFromRibbonGroup(view, "status", "declineDelivery"); } }, ROLE_DELIVERIES_STATES_OTHER { @Override public void processRole(final ViewDefinitionState view) { lockFromRibbonGroup(view, "status", "accept", "approveDelivery"); } }, ROLE_DELIVERIES_EDIT { @Override public void processRole(final ViewDefinitionState view) { lockFromRibbonGroup(view, "actions", "delete"); } }; public void processRole(final ViewDefinitionState view) { } protected void lockFromRibbonGroup(ViewDefinitionState view, String groupName, String... items) { WindowComponent window = (WindowComponent) view.getComponentByReference("window"); Ribbon ribbon = window.getRibbon(); RibbonGroup ribbonGroup = ribbon.getGroupByName(groupName); if (ribbonGroup != null) { for (String item : items) { RibbonActionItem ribbonItem = ribbonGroup.getItemByName(item); if (ribbonItem != null) { ribbonItem.setEnabled(false); ribbonItem.requestUpdate(true); } } } } }