Example usage for org.eclipse.jface.action IMenuManager setRemoveAllWhenShown

List of usage examples for org.eclipse.jface.action IMenuManager setRemoveAllWhenShown

Introduction

In this page you can find the example usage for org.eclipse.jface.action IMenuManager setRemoveAllWhenShown.

Prototype

public void setRemoveAllWhenShown(boolean removeAll);

Source Link

Document

Sets whether all items should be removed when the menu is about to show, but before notifying menu listeners.

Usage

From source file:ch.elexis.core.ui.util.ViewMenus.java

License:Open Source License

/**
 * /*w w w.j  av a 2s .  c  om*/
 * @param contributionItems
 * @since 3.4
 */
public void createMenu(final List<IContributionItem> contributionItems) {
    IMenuManager menuMgr = site.getActionBars().getMenuManager();
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {
        @Override
        public void menuAboutToShow(IMenuManager manager) {
            fillContextMenu(menuMgr, contributionItems);
        }
    });
    menuMgr.add(new Separator()); // for the entry to appear
}

From source file:com.bluexml.side.form.presentation.FormActionBarContributor.java

License:Open Source License

/**
 * This inserts global actions before the "additions-end" separator.
 * <!-- begin-user-doc -->/*from  ww w  .j  a  va  2s  .  c  om*/
 * <!-- end-user-doc -->
 * @_generated
 */
@Override
protected void addGlobalActions(IMenuManager menuManager) {
    Object o = ((this.selectionProvider != null && this.selectionProvider.getSelection() != null)
            ? ((TreeSelection) this.selectionProvider.getSelection()).getFirstElement()
            : null);

    menuManager.insertAfter("additions-end", new Separator("ui-actions"));
    menuManager.insertAfter("ui-actions", showPropertiesViewAction);

    refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
    menuManager.insertAfter("ui-actions", refreshViewerAction);

    menuManager.insertAfter("ui-actions", new Separator("ui-commonActions"));
    if (o != null) {
        // Addition of ImageDescriptor isn't available in current jface version.
        if (o instanceof ModelChoiceField) {
            MenuManager refMenu = new MenuManager("Relation", "relation");
            collapseReferenceAction.setImageDescriptor(
                    ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/collapse.gif"));
            refMenu.add(collapseReferenceAction);

            // ---- Expand Menu
            IMenuManager expandMenu = new MenuManager("Expand to", "expand");
            expandMenu.setRemoveAllWhenShown(true);
            if (this.selectionProvider != null && this.selectionProvider.getSelection() != null
                    && ((TreeSelection) this.selectionProvider.getSelection()).size() == 1
                    && ((TreeSelection) this.selectionProvider.getSelection())
                            .getFirstElement() instanceof ModelChoiceField) {
                expandMenu.add(new Action("never shown entry") {
                });//needed if it's a submenu
                IMenuListener expandListener = new IMenuListener() {
                    public void menuAboutToShow(IMenuManager m) {
                        fillExpandContextMenu(m);
                    }
                };
                expandMenu.addMenuListener(expandListener);
            }
            refMenu.add(expandMenu);

            // ---- Add Menu
            IMenuManager addRefMenu = new MenuManager("Add reference", "addRef");
            addRefMenu.setRemoveAllWhenShown(true);
            if (this.selectionProvider != null && this.selectionProvider.getSelection() != null
                    && ((TreeSelection) this.selectionProvider.getSelection()).size() == 1
                    && ((TreeSelection) this.selectionProvider.getSelection())
                            .getFirstElement() instanceof Reference) {
                Reference ref = ((Reference) ((TreeSelection) this.selectionProvider.getSelection())
                        .getFirstElement());
                if (ref.getMax_bound() == -1 || ref.getMax_bound() > ref.getTarget().size()) {
                    addRefMenu.add(new Action("never shown entry") {
                    });//needed if it's a submenu
                    IMenuListener expandListener = new IMenuListener() {
                        public void menuAboutToShow(IMenuManager m) {
                            fillAddRefContextMenu(m);
                        }
                    };
                    addRefMenu.addMenuListener(expandListener);
                }
            }
            refMenu.add(addRefMenu);
            menuManager.insertAfter("ui-actions", refMenu);
        }
        // ---- Transform Menu
        if (o instanceof Field) {
            IMenuManager transformMenu = new MenuManager("Transform", "transform");
            transformMenu.add(new Action("never shown entry") {
            }); //needed if it's a submenu
            transformMenu.setRemoveAllWhenShown(true);
            IMenuListener transformListener = new IMenuListener() {
                public void menuAboutToShow(IMenuManager m) {
                    fillTransformContextMenu(m);
                }
            };
            transformMenu.addMenuListener(transformListener);
            menuManager.insertAfter("ui-actions", transformMenu);
        }

        if (o instanceof FormContainer) {
            copyFormAction.setImageDescriptor(
                    ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/copy.png"));
            menuManager.insertAfter("ui-actions", copyFormAction);
        }

        if (((TreeSelection) this.selectionProvider.getSelection()).size() == 1
                || haveSameFormContainer((TreeSelection) this.selectionProvider.getSelection())) {
            groupAttributeAction.setImageDescriptor(
                    ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/group.png"));
            menuManager.insertAfter("ui-actions", groupAttributeAction);
        }

        if (o instanceof FormClass) {
            initializeFormClassAction.setImageDescriptor(
                    ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/initializeFromClass.png"));
            menuManager.insertAfter("ui-actions", initializeFormClassAction);
        }

        if (o instanceof WorkflowFormCollection) {
            initializeFormWorkflowAction.setImageDescriptor(
                    ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/initializeFromClass.png"));
            menuManager.insertAfter("ui-actions", initializeFormWorkflowAction);
        }

        if (o instanceof FormSearch) {
            initializeFormSearchAction.setImageDescriptor(
                    ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/initializeFromClass.png"));
            menuManager.insertAfter("ui-actions", initializeFormSearchAction);
        }

        if (o instanceof FormWorkflow) {
            showLinkedTaskAction.setImageDescriptor(
                    ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/show_link.png"));
            menuManager.insertAfter("ui-actions", showLinkedTaskAction);
        }

        if (o instanceof FormClass) {
            showLinkedClassAction.setImageDescriptor(
                    ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/show_link.png"));
            menuManager.insertAfter("ui-actions", showLinkedClassAction);
        }

        if (o instanceof FormContainer) {
            MenuManager restoreMenu = new MenuManager("Restore", "restore");
            if (((FormContainer) o).getDisabled().size() > 0) {
                restoreMenu.add(new Action("never shown entry") {
                });
                restoreMenu.setRemoveAllWhenShown(true);
                IMenuListener restoreListener = new IMenuListener() {
                    public void menuAboutToShow(IMenuManager m) {
                        fillRestoreContextMenu(m);
                    }
                };
                restoreMenu.addMenuListener(restoreListener);
            }
            menuManager.insertAfter("ui-actions", restoreMenu);
        }

        refreshOutlineAction.setImageDescriptor(
                ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/refreshOutline.png"));
        menuManager.insertAfter("ui-actions", refreshOutlineAction);

        if (o instanceof FormCollection) {
            if (o instanceof WorkflowFormCollection) {
                synchronizeWithWorkflowDiagram.setImageDescriptor(ImageDescriptor
                        .createFromFile(this.getClass(), "/icons/menu/synchronizeWithClassDiagram.png"));
                menuManager.insertAfter("ui-actions", synchronizeWithWorkflowDiagram);
            } else {
                synchronizeWithClassDiagram.setImageDescriptor(ImageDescriptor.createFromFile(this.getClass(),
                        "/icons/menu/synchronizeWithClassDiagram.png"));
                menuManager.insertAfter("ui-actions", synchronizeWithClassDiagram);
            }
        }
    }

    super.addGlobalActions(menuManager);
}

From source file:com.bluexml.side.view.presentation.ViewActionBarContributor.java

License:Open Source License

/**
 * Add actions specific to fields/*from w  w w .  j a  v  a  2  s  .  c  om*/
 * @param menuManager
 * @param o
 */
private void addActionsForFields(IMenuManager menuManager) {
    IMenuManager transformMenu = new MenuManager("Transform to", "addLinked");
    transformMenu.add(new Action("never shown entry") {
    });
    transformMenu.setRemoveAllWhenShown(true);
    IMenuListener transformListener = new IMenuListener() {
        public void menuAboutToShow(IMenuManager m) {
            fillTransformContextMenu(m);
        }
    };
    transformMenu.addMenuListener(transformListener);
    menuManager.insertAfter("ui-actions", transformMenu);
}

From source file:com.bluexml.side.view.presentation.ViewActionBarContributor.java

License:Open Source License

/**
 * Add actions specific to views//from w w  w. j ava2  s  .  c om
 * @param menuManager
 * @param o
 */
private void addActionsForViews(IMenuManager menuManager, Object o) {
    // Initialize
    initializeView
            .setImageDescriptor(ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/initialize.png"));
    menuManager.insertAfter("ui-actions", initializeView);

    // Refresh Outline
    refreshOutline.setImageDescriptor(
            ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/refreshOutline.png"));
    menuManager.insertAfter("ui-actions", refreshOutline);

    // Restore
    MenuManager restoreMenu = new MenuManager("Restore",
            ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/restore.png"), "restore");
    if (((AbstractView) o).getDisabled().size() > 0) {
        restoreMenu.add(new Action("never shown entry") {
        });
        restoreMenu.setRemoveAllWhenShown(true);
        IMenuListener restoreListener = new IMenuListener() {
            public void menuAboutToShow(IMenuManager m) {
                fillRestoreContextMenu(m);
            }
        };
        restoreMenu.addMenuListener(restoreListener);
    }
    menuManager.insertAfter("ui-actions", restoreMenu);

    // Add linked field
    final IMenuManager addLinkedFieldMenu = new MenuManager("Add linked Field",
            ImageDescriptor.createFromFile(this.getClass(), "/icons/menu/addLinkedField.png"), "transform");
    addLinkedFieldMenu.add(new Action("never shown entry") {
    });
    addLinkedFieldMenu.setRemoveAllWhenShown(true);
    IMenuListener addLinkedFieldListener = new IMenuListener() {
        public void menuAboutToShow(IMenuManager m) {
            fillAddLinkedMenu(m, addLinkedFieldMenu);
        }
    };
    addLinkedFieldMenu.addMenuListener(addLinkedFieldListener);
    menuManager.insertAfter("ui-actions", addLinkedFieldMenu);
}

From source file:com.bluexml.side.view.presentation.ViewActionBarContributor.java

License:Open Source License

/**
 * Add a subMenu for Association// w  ww  .j a  v  a2s  .  c  o  m
 *
 * @param topMenu
 * @param c
 * @param av
 */
private void addLinkedFieldAssociation(IMenuManager topMenu, final Clazz c, final List<Association> path,
        final AbstractViewOf av) {
    for (final Association a : c.getSourceAssociations()) {
        if (!path.contains(a)) {
            IMenuManager addLinkedFieldMenu = new MenuManager(a.getLabel(), "browse" + a.getName());
            addLinkedFieldMenu.add(new Action("never shown entry") {
            });
            addLinkedFieldMenu.setRemoveAllWhenShown(true);
            IMenuListener addLinkedFieldListener = new IMenuListener() {
                public void menuAboutToShow(IMenuManager m) {
                    fillAddLinkedSubMenu(m, a, path, av, c);
                }
            };
            addLinkedFieldMenu.addMenuListener(addLinkedFieldListener);
            topMenu.add(addLinkedFieldMenu);
        }
    }

    for (final Clazz inheritedClass : c.getInheritedClasses()) {
        for (final Association a : inheritedClass.getSourceAssociations()) {
            if (!path.contains(a)) {
                IMenuManager addLinkedFieldMenu = new MenuManager(a.getLabel(), "browse" + a.getName());
                addLinkedFieldMenu.add(new Action("never shown entry") {
                });
                addLinkedFieldMenu.setRemoveAllWhenShown(true);
                IMenuListener addLinkedFieldListener = new IMenuListener() {
                    public void menuAboutToShow(IMenuManager m) {
                        fillAddLinkedSubMenu(m, a, path, av, inheritedClass);
                    }
                };
                addLinkedFieldMenu.addMenuListener(addLinkedFieldListener);
                topMenu.add(addLinkedFieldMenu);
            }
        }
    }
}

From source file:com.microsoft.tfs.client.common.ui.controls.teamexplorer.TeamExplorerControl.java

License:Open Source License

public TeamExplorerControl(final TeamExplorerConfig configuration, final TeamExplorerContext context,
        final TeamExplorerNavigator navigator, final Composite parent, final int style) {
    super(configuration, context, parent, style);

    this.navigator = navigator;

    searchControl = new TeamExplorerSearchControl(form.getHead(), context, toolkit, SWT.NONE);

    pageComposite = toolkit.createComposite(subForm.getBody());
    GridDataBuilder.newInstance().fill().grab().applyTo(pageComposite);

    pageCompositeStackLayout = new StackLayout();
    pageComposite.setLayout(pageCompositeStackLayout);

    final IMenuManager menuManager = form.getMenuManager();
    menuManager.setRemoveAllWhenShown(true);
    menuManager.addMenuListener(titleBarMenuListener);
    menuManager.add(new Separator());

    handCursor = getDisplay().getSystemCursor(SWT.CURSOR_HAND);

    // Hook up a repository listener to enable/disable some controls
    final TFSCommonUIClientPlugin plugin = TFSCommonUIClientPlugin.getDefault();
    final RepositoryManager defaultRepositoryManager = plugin.getProductPlugin().getRepositoryManager();
    defaultRepositoryManager.addListener(repositoryListener);
    plugin.addProjectAndTeamListener(repositoryListener);
    plugin.addViewShowsListener(repositoryListener);

    enableSearchControl();/*from   w w  w .j a  v  a  2 s .c o m*/

    final MenuManager topNavMenu = new MenuManager("#popup"); //$NON-NLS-1$
    topNavMenu.setRemoveAllWhenShown(true);
    topNavMenu.addMenuListener(titleBarMenuListener);
    topNavMenu.add(new Separator());

    final Menu menu = topNavMenu.createContextMenu(form.getHead());
    form.getHead().setMenu(menu);
    headClickAdapter = new MouseAdapter() {
        @Override
        public void mouseDown(final MouseEvent e) {
            searchControl.closePopup();
            final Control[] children = form.getHead().getChildren();
            if (children.length > 0) {
                final Control titleArea = children[0];
                if (titleArea != null && !titleArea.isDisposed()) {
                    menu.setLocation(titleArea.toDisplay(0, titleArea.getSize().y + 2));
                }
            }
            menu.setVisible(true);
        }
    };
    handleHeadResize();

    addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(final DisposeEvent e) {
            defaultRepositoryManager.removeListener(repositoryListener);
            plugin.removeProjectAndTeamListener(repositoryListener);
            plugin.removeViewShowsListener(repositoryListener);
        }
    });
}

From source file:com.microsoft.tfs.client.common.ui.teamexplorer.pages.TeamExplorerPendingChangesPage.java

License:Open Source License

private void fillActionMenu(final IMenuManager menuManager, final TeamExplorerContext context) {
    final PendingChangesViewModel model = TFSCommonUIClientPlugin.getDefault().getPendingChangesViewModel();

    final IAction unshelveAction = new Action() {
        @Override//  w  w w .j a  v  a2 s  .c o m
        public void run() {
            PendingChangesHelpers.unshelve(shell, context.getDefaultRepository());
        }
    };

    unshelveAction.setText(Messages.getString("TeamExplorerPendingChangesPage.UnshelveCommandText")); //$NON-NLS-1$
    menuManager.add(unshelveAction);

    menuManager.add(new Separator());

    final IAction resolveConflictsAction = new Action() {
        @Override
        public void run() {
            PendingChangesHelpers.resolveConflicts(shell, context.getDefaultRepository());
        }
    };

    resolveConflictsAction
            .setText(Messages.getString("TeamExplorerPendingChangesPage.ResolveConflictsCommandText")); //$NON-NLS-1$
    menuManager.add(resolveConflictsAction);

    final IAction undoAllAction = new Action() {
        @Override
        public void run() {
            PendingChangesHelpers.undoAll(shell, context.getDefaultRepository());
        }
    };

    undoAllAction.setText(Messages.getString("TeamExplorerPendingChangesPage.UndoAllCommandText")); //$NON-NLS-1$
    menuManager.add(undoAllAction);

    menuManager.add(new Separator());

    final IAction evaluateCheckinPoliciesAction = new Action() {
        @Override
        public void run() {
            PendingChangesHelpers.evaluatePolicies(shell, model);
        }
    };

    evaluateCheckinPoliciesAction
            .setText(Messages.getString("TeamExplorerPendingChangesPage.EvaluatePoliciesCommandText")); //$NON-NLS-1$
    menuManager.add(evaluateCheckinPoliciesAction);

    if (model != null && model.isLocalWorkspace()) {
        final IAction detectLocalChangesAction = new Action() {
            @Override
            public void run() {
                PendingChangesHelpers.detectLocalChanges(shell, context.getDefaultRepository());
            }
        };

        detectLocalChangesAction
                .setText(Messages.getString("TeamExplorerPendingChangesPage.DetectLocalChangesMenuText")); //$NON-NLS-1$
        menuManager.add(detectLocalChangesAction);
    }

    menuManager.add(new Separator());

    final IAction undoUnchangedAction = new Action() {
        @Override
        public void run() {
            PendingChangesHelpers.undoUnchangedPendingChanges(shell, context.getDefaultRepository());
        }
    };

    undoUnchangedAction.setText(Messages.getString("TeamExplorerPendingChangesPage.UndoUnchangedCommandText")); //$NON-NLS-1$
    menuManager.add(undoUnchangedAction);

    menuManager.add(new Separator());

    final String subMenuText = Messages.getString("TeamExplorerPendingChangesPage.SwitchWorkspaceMenuText"); //$NON-NLS-1$
    final IMenuManager subMenu = new MenuManager(subMenuText);
    subMenu.setRemoveAllWhenShown(true);
    subMenu.addMenuListener(new IMenuListener() {
        @Override
        public void menuAboutToShow(final IMenuManager manager) {
            final Workspace currentWorkspace = model.getWorkspace();
            final Workspace[] workspaces = model.getWorkspaces();

            if (workspaces == null || workspaces.length == 0) {
                final IAction emptyAction = new Action() {
                };

                final String text = workspaces == null
                        ? Messages.getString("TeamExplorerPendingChangesPage.CannotGetWorkspaces") //$NON-NLS-1$
                        : Messages.getString("TeamExplorerPendingChangesPage.NoWorkpacesMenuText"); //$NON-NLS-1$

                emptyAction.setText(text);
                emptyAction.setEnabled(false);
                subMenu.add(emptyAction);
            } else {
                final TeamFoundationIdentity authorizedIdentity = currentWorkspace.getClient().getConnection()
                        .getAuthorizedIdentity();

                for (final Workspace workspace : workspaces) {
                    final IAction switchWorkspaceAction = new Action() {
                        @Override
                        public void run() {
                            PendingChangesHelpers.switchWorkspace(shell, workspace);
                        }
                    };

                    String menuItemName = workspace.getName();
                    if (!IdentityHelper.identityHasName(authorizedIdentity, workspace.getOwnerName())) {
                        menuItemName += ";" + workspace.getOwnerDisplayName(); //$NON-NLS-1$
                    }

                    switchWorkspaceAction.setText(menuItemName);
                    switchWorkspaceAction.setChecked(workspace.equals(currentWorkspace));
                    subMenu.add(switchWorkspaceAction);
                }
            }
        }
    });

    menuManager.add(subMenu);

    final IAction manageWorkspacesAction = new Action() {
        @Override
        public void run() {
            PendingChangesHelpers.manageWorkspaces(shell);
        }
    };

    manageWorkspacesAction
            .setText(Messages.getString("TeamExplorerPendingChangesPage.ManageWorkspacesCommandText")); //$NON-NLS-1$
    menuManager.add(manageWorkspacesAction);
}

From source file:com.nokia.s60tools.crashanalyser.ui.viewers.CallStackTableViewer.java

License:Open Source License

/**
 * creates context menu accordingly to what is selected in the table.
 *///  w w  w  . j av  a 2  s  .c om
private void doCreateContextMenu() {

    // Active SDK menu
    subMenuSdk = new MenuManager("Active SDK");
    subMenuSdk.setRemoveAllWhenShown(true);
    subMenuSdk.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager manager) {
            Map<String, String> sdks = SourceSdkManager.getAllSdks();
            String currentSdk = SourceSdkManager.getCurrentSkdName();
            // if there are sdks
            if (sdks != null && !sdks.isEmpty()) {
                String[] sdkNames = sdks.keySet().toArray(new String[sdks.size()]);
                java.util.Arrays.sort(sdkNames);
                // go through all found sdks and and them to pop-up menu
                for (int i = 0; i < sdkNames.length; i++) {
                    String sdk = sdkNames[i];
                    CommandContributionItemParameter p = new CommandContributionItemParameter(
                            PlatformUI.getWorkbench().getActiveWorkbenchWindow(), null,
                            "com.nokia.s60tools.crashanalyser.commands.SdkSelection",
                            CommandContributionItem.STYLE_PUSH);
                    p.label = sdk;
                    // if this sdk is selected as Active sdk, draw an circular image to 
                    // this menu item to indicate that this is the active sdk
                    if (sdk.equalsIgnoreCase(currentSdk)) {
                        p.icon = ImageResourceManager.getImageDescriptor((ImageKeys.SELECTED_SDK));
                    }
                    CommandContributionItem item = new CommandContributionItem(p);
                    subMenuSdk.add(item);
                }
            }
        }
    });

    final MenuManager subMenuSelection = new MenuManager("Copy Selection to Clipboard");
    subMenuSelection.add(actionCopySelectionToClipboardAsPlainText);
    subMenuSelection.add(actionCopySelectionToClipboardAsRichText);

    final MenuManager subMenuFull = new MenuManager("Copy Whole Stack to Clipboard");
    subMenuFull.add(actionCopyStackToClipboardAsPlainText);
    subMenuFull.add(actionCopyStackToClipboardAsRichText);

    MenuManager manager = new MenuManager("#PopupMenu");
    Menu menu = manager.createContextMenu(getControl());
    getControl().setMenu(menu);

    manager.setRemoveAllWhenShown(true);
    manager.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager manager) {
            Table table = (Table) getControl();
            if (table.getSelection() != null) {
                // add 'Open source file' and 'Active SDK' menu items to pop-up menu
                // only if exactly one row is selected in table and if that
                // row's symbol column is not empty
                if (table.getSelection().length == 1
                        && !"".equals(table.getSelection()[0].getText(COLUMN_SYMBOL))) {
                    manager.add(actionOpenSourceFile);
                    manager.add(subMenuSdk);
                    manager.add(new Separator());
                }
                manager.add(subMenuSelection);
                manager.add(subMenuFull);
            }
        }
    });
}

From source file:com.nokia.tools.s60.views.CustomizedPropertySheet.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {

    super.createPartControl(parent);
    IMenuManager menuManager = getViewSite().getActionBars().getMenuManager();
    menuManager.setVisible(false);//from w  w w .ja v a 2s.  c  o m
    menuManager.removeAll();
    menuManager.setRemoveAllWhenShown(true);
    menuManager.updateAll(true);

    IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();
    toolBarManager.removeAll();
    menuManager.setRemoveAllWhenShown(true);
    toolBarManager.update(true);
}

From source file:com.nokia.traceviewer.action.ActionFactory.java

License:Open Source License

/**
 * Fills the view menu with the actions/*from   ww  w .j  a  va 2 s.  c  o  m*/
 * 
 * @param manager
 *            the menu manager
 */
public void fillMenu(IMenuManager manager) {
    manager.add(traceActivationAction);
    manager.add(new Separator());
    IMenuManager subMgr = new MenuManager(Messages.getString("ActionFactory.LogSubMenuTitle"), logSubMenuImage, //$NON-NLS-1$
            null);
    subMgr.setRemoveAllWhenShown(true);
    subMgr.setVisible(true);
    subMgr.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager mgr) {
            mgr.add(logOpenLogAction);
            mgr.add(new Separator());
            mgr.add(logNewBinaryAction);
            mgr.add(logSaveBinaryAction);
            mgr.add(logCloseBinaryAction);

            mgr.add(new Separator());
            mgr.add(logNewAsciiAction);
            mgr.add(logSaveAsciiAction);
            mgr.add(logCloseAsciiAction);

            // Get the logger DataProcessor
            Logger logger = TraceViewerGlobals.getTraceViewer().getDataProcessorAccess().getLogger();

            boolean asciiLogging = logger.isPlainLogging();
            boolean binaryLogging = logger.isBinLogging();
            boolean logFileOpened = logger.isLogFileOpened();

            // Check if Binary logging is on
            logNewBinaryAction.setEnabled(!binaryLogging);
            logCloseBinaryAction.setEnabled(binaryLogging);

            // Check if ASCII logging is on
            logNewAsciiAction.setEnabled(!asciiLogging);
            logCloseAsciiAction.setEnabled(asciiLogging);

            logOpenLogAction.setEnabled(!asciiLogging && !binaryLogging);

            // Check if log file is opened
            if (logFileOpened) {
                logNewBinaryAction.setEnabled(false);
                logCloseBinaryAction.setEnabled(false);
                logNewAsciiAction.setEnabled(false);
                logCloseAsciiAction.setEnabled(false);
            }

        }
    });

    manager.add(subMgr);
    manager.add(new Separator());
    manager.add(triggerAction);
    manager.add(new Separator());
    manager.add(openConnectionSettingsAction);
    manager.add(new Separator());
    manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}