class WorkbenchMegaMenuPresenter extends WorkbenchBaseMenuPresenter {

    public void addContextMenuItem(final String menuItemId,
                                   final String id,
                                   final String label,
                                   final String parentId,
                                   final Command command,
                                   final MenuPosition position) {
        final ChildContextMenuItemPresenter childContextMenuItemPresenter = childContextMenuItemPresenters.get();
        childContextMenuItemPresenter.setup(label,
                                            command);
        selectableMenuItemByIdentifier.put(id,
                                           childContextMenuItemPresenter);
        canBeDisabledMenuItemByIdentifier.put(id,
                                              childContextMenuItemPresenter);
        if (parentId == null || parentId.isEmpty()) {
            if (MenuPosition.RIGHT.equals(position)) {
                childContextMenuItemPresenter.pullRight();
            }
            view.addContextMenuItem(childContextMenuItemPresenter);
        } else {
            view.addContextMenuItemOnParent(childContextMenuItemPresenter,
                                            hasChildrenMenuItemByIdentifier.get(parentId));
        }
        view.setContextMenuActive(true);
    }

    public  WorkbenchMegaMenuPresenter(final AuthorizationManager authzManager,
                                      final PerspectiveManager perspectiveManager,
                                      final ActivityManager activityManager,
                                      final User identity,
                                      final View view,
                                      final ManagedInstance<MegaMenuBrand> megaMenuBrands,
                                      final PlaceManager placeManager,
                                      final AuthorizationManager authorizationManager,
                                      final SessionInfo sessionInfo,
                                      final ManagedInstance<ChildMenuItemPresenter> childMenuItemPresenters,
                                      final ManagedInstance<GroupMenuItemPresenter> groupMenuItemPresenters,
                                      final ManagedInstance<ChildContextMenuItemPresenter> childContextMenuItemPresenters,
                                      final ManagedInstance<GroupContextMenuItemPresenter> groupContextMenuItemPresenters,
                                      final Workbench workbench,
                                      final ExperimentalActivitiesAuthorizationManager experimentalActivitiesAuthorizationManager);

}