Example usage for org.eclipse.jface.action IToolBarManager appendToGroup

List of usage examples for org.eclipse.jface.action IToolBarManager appendToGroup

Introduction

In this page you can find the example usage for org.eclipse.jface.action IToolBarManager appendToGroup.

Prototype

void appendToGroup(String groupName, IAction action);

Source Link

Document

Adds a contribution item for the given action at the end of the group with the given name.

Usage

From source file:org.eclipse.ptp.ui.views.JobsListView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    parent.setLayout(new FillLayout());

    viewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);

    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);
    viewer.setUseHashlookup(true);//from  w  ww  .ja v a  2s .  co m
    viewer.setContentProvider(new IStructuredContentProvider() {
        public void dispose() {
        }

        public Object[] getElements(Object inputElement) {
            /*
             * Just get jobs from the queue if one is selected
             */
            if (fSelectedQueue != null) {
                return fSelectedQueue.getJobs();
            }
            /*
             * Otherwise get jobs from all queues the RM knows about
             */
            if (fSelectedRM != null) {
                return getAllJobs(fSelectedRM).toArray(new IPJob[0]);
            }
            /*
             * Otherwise get all jobs from all queues TODO: should probably
             * not do this!
             */
            Set<IPJob> jobs = new HashSet<IPJob>();
            for (IPResourceManager rm : PTPCorePlugin.getDefault().getModelManager().getUniverse()
                    .getResourceManagers()) {
                jobs.addAll(getAllJobs(rm));
            }
            return jobs.toArray(new IPJob[0]);
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
        }
    });
    viewer.setSorter(new ViewerSorter() {
        @Override
        public int compare(Viewer viewer, Object j1, Object j2) {
            return ((IPJob) j1).getName().compareTo(((IPJob) j2).getName());
        }
    });

    createColumns(viewer);

    getSite().setSelectionProvider(viewer);

    MenuManager contextMenu = new MenuManager();
    contextMenu.setRemoveAllWhenShown(true);
    getSite().registerContextMenu(contextMenu, viewer);
    Control control = viewer.getControl();
    Menu menu = contextMenu.createContextMenu(control);
    control.setMenu(menu);

    // Use view toolbar
    IToolBarManager toolBarMgr = getViewSite().getActionBars().getToolBarManager();

    terminateAllAction = new TerminateJobFromListAction(this);
    toolBarMgr.add(new Separator(IPTPUIConstants.IUIACTIONGROUP));
    toolBarMgr.appendToGroup(IPTPUIConstants.IUIACTIONGROUP, terminateAllAction);

    /*
     * terminateAllAction = new TerminateJobAction(viewer);
     * toolBarMgr.appendToGroup(IPTPUIConstants.IUIACTIONGROUP,
     * terminateAllAction);
     */

    IModelManager mm = PTPCorePlugin.getDefault().getModelManager();
    viewer.setInput(mm.getUniverse());

    /*
     * Add us to any existing RM's. I guess it's possible we could miss a RM
     * if a new event arrives while we're doing this, but is it a problem?
     */
    for (IPResourceManager rm : mm.getUniverse().getResourceManagers()) {
        rm.addChildListener(resourceManagerChildListener);
        rm.getResourceManager().addJobListener(jobListener);
    }
    mm.addListener(resourceManagerListener);

    /*
     * Link this view to the ResourceManagerView
     */
    PTPUIPlugin.getDefault().getRMManager().addRMSelectionListener(new IRMSelectionListener() {
        public void selectionChanged(ISelection selection) {
            IPResourceManager oldRM = fSelectedRM;
            fSelectedQueue = null;
            if (selection.isEmpty()) {
                fSelectedRM = null;
            } else {
                TreePath path = ((ITreeSelection) selection).getPaths()[0];
                Object segment = path.getFirstSegment();
                if (segment instanceof IPResourceManager) {
                    fSelectedRM = (IPResourceManager) segment;
                    if (path.getLastSegment() instanceof IPQueue) {
                        fSelectedQueue = (IPQueue) path.getLastSegment();
                    }
                }
            }
            if (oldRM != fSelectedRM) {
                createColumns(viewer);
            }
            refresh();
        }

        public void setDefault(Object rm) {
            // Ignore
        }
    });
}

From source file:org.eclipse.ptp.ui.views.ParallelJobsView.java

License:Open Source License

@Override
protected void createToolBarActions(IToolBarManager toolBarMgr) {
    terminateAllAction = new TerminateJobAction(this);
    toolBarMgr.appendToGroup(IPTPUIConstants.IUIACTIONGROUP, terminateAllAction);
    jobFocusAction = new JobFocusAction(this);
    toolBarMgr.add(new Separator(IPTPUIConstants.IUIJOBGROUP));
    toolBarMgr.appendToGroup(IPTPUIConstants.IUIJOBGROUP, jobFocusAction);
    super.buildInToolBarActions(toolBarMgr);
}

From source file:org.eclipse.remote.internal.console.TerminalConsolePage.java

License:Open Source License

@Override
public void init(IPageSite pageSite) {
    super.init(pageSite);
    IToolBarManager toolBarManager = pageSite.getActionBars().getToolBarManager();
    toolBarManager.insertBefore(IConsoleConstants.OUTPUT_GROUP, new GroupMarker(TOOLBAR_GROUP_ID));

    toolBarManager.appendToGroup(TOOLBAR_GROUP_ID, connectAction);
    toolBarManager.appendToGroup(TOOLBAR_GROUP_ID, disconnectAction);
    toolBarManager.appendToGroup(TOOLBAR_GROUP_ID, new ConsoleActionScrollLock(this));
    toolBarManager.appendToGroup(TOOLBAR_GROUP_ID, new CloseConsoleAction(terminalConsole));

    toolBarManager.insertAfter(TOOLBAR_GROUP_ID, new GroupMarker(CONTRIBUTIONS_GROUP_ID));

    addToolbarContributions(toolBarManager);
}

From source file:org.eclipse.remote.internal.console.TerminalConsolePage.java

License:Open Source License

private void addToolbarContributions(IToolBarManager toolBarManager) {
    String connectionType = terminalConsole.getConnection().getConnectionType().getId();
    List<String> actions = TerminalConsoleExtensionManager.getInstance().getActionsForType(connectionType);
    for (String id : actions) {
        IConsoleActionFactory factory = TerminalConsoleExtensionManager.getInstance().getFactory(id);
        if (factory != null) {
            ConsoleAction action = factory.createAction(id, connectionType, this);
            if (action != null) {
                toolBarManager.appendToGroup(CONTRIBUTIONS_GROUP_ID, action);
            }//from  w  ww  .  j  av  a  2  s  .c  o  m
        }
    }
}

From source file:org.eclipse.sirius.table.ui.tools.internal.editor.provider.DTableActionBarContributor.java

License:Open Source License

/**
 * Add the create line menu to the toolbar.
 * //from   ww  w.  jav a  2 s  . c  o m
 * @param editorCreateLineMenuAction
 *            the menu to add
 */
public void addCreateLineMenu(final EditorCreateLineMenuAction editorCreateLineMenuAction) {
    final IToolBarManager toolBarManager = getActionBars().getToolBarManager();
    toolBarManager.remove(EditorCreateLineMenuAction.ID);
    toolBarManager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, editorCreateLineMenuAction);
    toolBarManager.update(true);
}

From source file:org.eclipse.sirius.table.ui.tools.internal.editor.provider.DTableActionBarContributor.java

License:Open Source License

/**
 * Add the create target column menu to the toolbar.
 * /*from   w w  w. j a  va 2 s  .c  om*/
 * @param editorCreateTargetColumnMenuAction
 *            the menu to add
 */
public void addCreateTargetColumnMenu(
        final EditorCreateTargetColumnMenuAction editorCreateTargetColumnMenuAction) {
    final IToolBarManager toolBarManager = getActionBars().getToolBarManager();
    toolBarManager.remove(EditorCreateTargetColumnMenuAction.ID);
    toolBarManager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, editorCreateTargetColumnMenuAction);
    toolBarManager.update(true);
}

From source file:org.eclipse.sirius.tree.ui.tools.internal.editor.DTreeActionBarContributor.java

License:Open Source License

/**
 * Add the create tree item menu to the toolbar.
 * /*from w ww .  j av a2s  . c  om*/
 * @param editorCreateLineMenuAction
 *            the menu to add
 */
public void addCreateTreeItemMenu(final EditorCreateTreeItemMenuAction editorCreateLineMenuAction) {
    final IToolBarManager toolBarManager = getActionBars().getToolBarManager();
    toolBarManager.remove(EditorCreateTreeItemMenuAction.ID);
    toolBarManager.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, editorCreateLineMenuAction); //$NON-NLS-1$
    toolBarManager.update(true);
}

From source file:org.eclipse.swt.examples.paint.PaintView.java

License:Open Source License

/**
 * Creates the example.//from  w  w w.ja  v  a2 s  . c  om
 * 
 * @see ViewPart#createPartControl
 */
@Override
public void createPartControl(Composite parent) {
    instance = new PaintExample(parent);
    instance.createGUI(parent);

    /*** Add toolbar contributions ***/
    final IActionBars actionBars = getViewSite().getActionBars();
    IToolBarManager toolbarManager = actionBars.getToolBarManager();
    Tool tools[] = PaintExample.tools;
    String group = tools[0].group;
    toolbarManager.add(new GroupMarker(group));
    for (int i = 0; i < tools.length; i++) {
        Tool tool = tools[i];
        if (!tool.group.equals(group)) {
            toolbarManager.add(new Separator());
            toolbarManager.add(new GroupMarker(tool.group));
        }
        group = tool.group;
        PaintAction action = new PaintAction(tool);
        toolbarManager.appendToGroup(group, action);
        if (i == PaintExample.Default_tool || i == PaintExample.Default_fill
                || i == PaintExample.Default_linestyle) {
            action.setChecked(true);
        }
    }
    actionBars.updateActionBars();

    instance.setDefaults();
}

From source file:org.eclipse.tcf.te.ui.views.internal.View.java

License:Open Source License

/**
 * Adds the custom toolbar groups to the view toolbar.
 *///w  ww  .ja v a  2  s .c o m
protected void addCustomToolbarGroups() {
    if (getViewSite() != null && getViewSite().getActionBars() != null) {
        IToolBarManager tbManager = getViewSite().getActionBars().getToolBarManager();
        if (tbManager != null) {
            tbManager.insertBefore("FRAME_ACTION_GROUP_ID", new GroupMarker("group.new")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.new", new Separator("group.configure")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.configure", new Separator("group.connect")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.connect", new Separator("group.symbols.rd")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.symbols.rd", new GroupMarker("group.symbols")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.symbols", new Separator("group.launch")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.launch", new GroupMarker("group.launch.rundebug")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.launch.rundebug", new GroupMarker("group.launch.modes")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.launch.modes", new GroupMarker("group.launch.additions")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.launch.additions", new Separator("group.refresh")); //$NON-NLS-1$ //$NON-NLS-2$
            tbManager.appendToGroup("group.refresh", new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); //$NON-NLS-1$
        }
    }
}

From source file:org.eclipse.team.internal.ccvs.ui.CVSHistoryPage.java

License:Open Source License

protected void contributeActions() {
    CVSUIPlugin plugin = CVSUIPlugin.getPlugin();

    //Refresh/*from ww w .  j  av  a2 s. com*/
    refreshAction = new Action(CVSUIMessages.HistoryView_refreshLabel,
            plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH_ENABLED)) {
        public void run() {
            refresh();
        }
    };
    refreshAction.setToolTipText(CVSUIMessages.HistoryView_refresh);
    refreshAction.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH_DISABLED));
    refreshAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REFRESH));

    //Local Mode
    final IPreferenceStore store = CVSUIPlugin.getPlugin().getPreferenceStore();
    localMode = new Action(CVSUIMessages.CVSHistoryPage_LocalModeAction,
            plugin.getImageDescriptor(ICVSUIConstants.IMG_LOCALMODE)) {
        public void run() {
            if (isChecked()) {
                store.setValue(ICVSUIConstants.PREF_REVISION_MODE, LOCAL_MODE);
                updateFilterMode(LOCAL_MODE);
            } else
                setChecked(true);
        }
    };
    localMode.setToolTipText(CVSUIMessages.CVSHistoryPage_LocalModeTooltip);
    localMode.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_LOCALMODE_DISABLED));
    localMode.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_LOCALMODE));

    //Remote Mode
    remoteMode = new Action(CVSUIMessages.CVSHistoryPage_RemoteModeAction,
            plugin.getImageDescriptor(ICVSUIConstants.IMG_REMOTEMODE)) {
        public void run() {
            if (isChecked()) {
                store.setValue(ICVSUIConstants.PREF_REVISION_MODE, REMOTE_MODE);
                updateFilterMode(REMOTE_MODE);
            } else
                setChecked(true);
        }
    };
    remoteMode.setToolTipText(CVSUIMessages.CVSHistoryPage_RemoteModeTooltip);
    remoteMode.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REMOTEMODE_DISABLED));
    remoteMode.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_REMOTEMODE));

    //Remote + Local Mode
    remoteLocalMode = new Action(CVSUIMessages.CVSHistoryPage_CombinedModeAction,
            plugin.getImageDescriptor(ICVSUIConstants.IMG_LOCALREMOTE_MODE)) {
        public void run() {
            if (isChecked()) {
                store.setValue(ICVSUIConstants.PREF_REVISION_MODE, REMOTE_LOCAL_MODE);
                updateFilterMode(REMOTE_LOCAL_MODE);
            } else
                setChecked(true);
        }
    };
    remoteLocalMode.setToolTipText(CVSUIMessages.CVSHistoryPage_CombinedModeTooltip);
    remoteLocalMode.setDisabledImageDescriptor(
            plugin.getImageDescriptor(ICVSUIConstants.IMG_LOCALREMOTE_MODE_DISABLED));
    remoteLocalMode.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_LOCALREMOTE_MODE));

    //set the inital filter to both remote and local
    updateFilterMode(store.getInt(ICVSUIConstants.PREF_REVISION_MODE));

    //Group by Date
    groupByDateMode = new Action(CVSUIMessages.CVSHistoryPage_GroupByDate,
            CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_DATES_CATEGORY)) {
        public void run() {
            groupingOn = !groupingOn;
            store.setValue(ICVSUIConstants.PREF_GROUPBYDATE_MODE, groupingOn);
            refreshHistory(false, false, CVSFileHistory.REFRESH_LOCAL | CVSFileHistory.REFRESH_REMOTE);
        }
    };
    groupingOn = store.getBoolean(ICVSUIConstants.PREF_GROUPBYDATE_MODE);
    groupByDateMode.setChecked(groupingOn);
    groupByDateMode.setToolTipText(CVSUIMessages.CVSHistoryPage_GroupByDate);
    groupByDateMode.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_DATES_CATEGORY));
    groupByDateMode.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_DATES_CATEGORY));

    //Collapse All
    collapseAll = new Action(CVSUIMessages.CVSHistoryPage_CollapseAllAction,
            plugin.getImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL)) {
        public void run() {
            treeViewer.collapseAll();
        }
    };
    collapseAll.setToolTipText(CVSUIMessages.CVSHistoryPage_CollapseAllTooltip);
    collapseAll.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL));
    collapseAll.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_COLLAPSE_ALL));

    //Compare Mode Action
    compareModeAction = new Action(CVSUIMessages.CVSHistoryPage_CompareModeToggleAction,
            plugin.getImageDescriptor(ICVSUIConstants.IMG_COMPARE_VIEW)) {
        public void run() {
            compareMode = !compareMode;
            compareModeAction.setChecked(compareMode);
        }
    };
    compareModeAction.setToolTipText(CVSUIMessages.CVSHistoryPage_CompareModeTooltip);
    compareModeAction.setDisabledImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_COMPARE_VIEW));
    compareModeAction.setHoverImageDescriptor(plugin.getImageDescriptor(ICVSUIConstants.IMG_COMPARE_VIEW));
    compareModeAction.setChecked(false);

    // Click Compare action
    compareAction = new CompareRevisionAction(CVSUIMessages.CVSHistoryPage_CompareRevisionAction, this);
    compareAction.setEnabled(!treeViewer.getSelection().isEmpty());
    treeViewer.getTree().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            //update the current
            compareAction.setCurrentFileRevision(getCurrentFileRevision());
            compareAction.selectionChanged((IStructuredSelection) treeViewer.getSelection());
        }
    });

    openAction = new OpenRevisionAction(CVSUIMessages.CVSHistoryPage_OpenAction, this);
    openAction.setEnabled(!treeViewer.getSelection().isEmpty());
    treeViewer.getTree().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            openAction.selectionChanged((IStructuredSelection) treeViewer.getSelection());
        }
    });

    // Add 'Open With...'  sub-menu
    openWithMenu = new OpenWithMenu(this);
    treeViewer.getTree().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            openWithMenu.selectionChanged((IStructuredSelection) treeViewer.getSelection());
        }
    });

    new OpenAndLinkWithEditorHelper(treeViewer) {
        protected void open(ISelection selection, boolean activate) {
            if (getSite() != null && selection instanceof IStructuredSelection) {
                IStructuredSelection structuredSelection = (IStructuredSelection) selection;
                if (compareMode) {
                    StructuredSelection sel = new StructuredSelection(
                            new Object[] { getCurrentFileRevision(), structuredSelection.getFirstElement() });
                    compareAction.selectionChanged(sel);
                    compareAction.run();
                } else {
                    //Pass in the entire structured selection to allow for multiple editor openings
                    openAction.selectionChanged(structuredSelection);
                    openAction.run();
                }
            }
        }

        protected void activate(ISelection selection) {
            int currentMode = OpenStrategy.getOpenMethod();
            try {
                OpenStrategy.setOpenMethod(OpenStrategy.DOUBLE_CLICK);
                open(selection, true);
            } finally {
                OpenStrategy.setOpenMethod(currentMode);
            }
        }

        protected void linkToEditor(ISelection selection) {
            // XXX: Not yet implemented, see http://bugs.eclipse.org/324185
        }
    };

    getContentsAction = getContextMenuAction(CVSUIMessages.HistoryView_getContentsAction,
            true /* needs progress */, new IWorkspaceRunnable() {
                public void run(IProgressMonitor monitor) throws CoreException {
                    monitor.beginTask(null, 100);
                    try {
                        if (confirmOverwrite() && validateChange()) {
                            IStorage currentStorage = currentSelection
                                    .getStorage(new SubProgressMonitor(monitor, 50));
                            InputStream in = currentStorage.getContents();
                            ((IFile) file.getIResource()).setContents(in, false, true,
                                    new SubProgressMonitor(monitor, 50));
                        }
                    } catch (TeamException e) {
                        throw new CoreException(e.getStatus());
                    } finally {
                        monitor.done();
                    }
                }
            });
    PlatformUI.getWorkbench().getHelpSystem().setHelp(getContentsAction,
            IHelpContextIds.GET_FILE_CONTENTS_ACTION);

    getRevisionAction = getContextMenuAction(CVSUIMessages.HistoryView_getRevisionAction,
            true /* needs progress */, new IWorkspaceRunnable() {
                public void run(IProgressMonitor monitor) throws CoreException {
                    ICVSRemoteFile remoteFile = (ICVSRemoteFile) CVSWorkspaceRoot
                            .getRemoteResourceFor(((CVSFileRevision) currentSelection).getCVSRemoteFile());
                    try {
                        if (confirmOverwrite() && validateChange()) {
                            CVSTag revisionTag = new CVSTag(remoteFile.getRevision(), CVSTag.VERSION);

                            if (CVSAction.checkForMixingTags(getHistoryPageSite().getShell(),
                                    new IResource[] { file.getIResource() }, revisionTag)) {
                                new UpdateOperation(null, new IResource[] { file.getIResource() },
                                        new Command.LocalOption[] { Update.IGNORE_LOCAL_CHANGES }, revisionTag)
                                                .run(monitor);

                                Display.getDefault().asyncExec(new Runnable() {
                                    public void run() {
                                        refresh();
                                    }
                                });
                            }
                        }
                    } catch (InvocationTargetException e) {
                        throw CVSException.wrapException(e);
                    } catch (InterruptedException e) {
                        // Cancelled by user
                    }
                }
            });
    PlatformUI.getWorkbench().getHelpSystem().setHelp(getRevisionAction,
            IHelpContextIds.GET_FILE_REVISION_ACTION);

    // Override MoveRemoteTagAction to work for log entries
    final IActionDelegate tagActionDelegate = new MoveRemoteTagAction() {
        protected ICVSResource[] getSelectedCVSResources() {
            ICVSResource[] resources = super.getSelectedCVSResources();
            if (resources == null || resources.length == 0) {
                ArrayList logEntrieFiles = null;
                IStructuredSelection selection = getSelection();
                if (!selection.isEmpty()) {
                    logEntrieFiles = new ArrayList();
                    Iterator elements = selection.iterator();
                    while (elements.hasNext()) {
                        Object next = elements.next();
                        if (next instanceof CVSFileRevision) {
                            logEntrieFiles.add(((CVSFileRevision) next).getCVSRemoteFile());
                            continue;
                        }
                        if (next instanceof IAdaptable) {
                            IAdaptable a = (IAdaptable) next;
                            Object adapter = a.getAdapter(ICVSResource.class);
                            if (adapter instanceof ICVSResource) {
                                logEntrieFiles.add(((ILogEntry) adapter).getRemoteFile());
                                continue;
                            }
                        }
                    }
                }
                if (logEntrieFiles != null && !logEntrieFiles.isEmpty()) {
                    return (ICVSResource[]) logEntrieFiles.toArray(new ICVSResource[logEntrieFiles.size()]);
                }
            }
            return resources;
        }

        /*
         * Override the creation of the tag operation in order to support
         * the refresh of the view after the tag operation completes
         */
        protected ITagOperation createTagOperation() {
            return new TagInRepositoryOperation(getTargetPart(), getSelectedRemoteResources()) {
                public void execute(IProgressMonitor monitor) throws CVSException, InterruptedException {
                    super.execute(monitor);
                    Display.getDefault().asyncExec(new Runnable() {
                        public void run() {
                            if (!wasCancelled()) {
                                refresh();
                            }
                        }
                    });
                };
            };
        }
    };
    tagWithExistingAction = getContextMenuAction(CVSUIMessages.HistoryView_tagWithExistingAction,
            false /* no progress */, new IWorkspaceRunnable() {
                public void run(IProgressMonitor monitor) throws CoreException {
                    tagActionDelegate.selectionChanged(tagWithExistingAction, treeViewer.getSelection());
                    tagActionDelegate.run(tagWithExistingAction);
                }
            });
    PlatformUI.getWorkbench().getHelpSystem().setHelp(getRevisionAction,
            IHelpContextIds.TAG_WITH_EXISTING_ACTION);

    // Toggle text visible action
    toggleTextAction = new Action(TeamUIMessages.GenericHistoryView_ShowCommentViewer) {
        public void run() {
            setViewerVisibility();
            store.setValue(ICVSUIConstants.PREF_SHOW_COMMENTS, toggleTextAction.isChecked());
        }
    };
    toggleTextAction.setChecked(store.getBoolean(ICVSUIConstants.PREF_SHOW_COMMENTS));
    //PlatformUI.getWorkbench().getHelpSystem().setHelp(toggleTextAction, IHelpContextIds.SHOW_COMMENT_IN_HISTORY_ACTION);

    // Toggle wrap comments action
    toggleTextWrapAction = new Action(TeamUIMessages.GenericHistoryView_WrapComments) {
        public void run() {
            setViewerVisibility();
            store.setValue(ICVSUIConstants.PREF_WRAP_COMMENTS, toggleTextWrapAction.isChecked());
        }
    };
    toggleTextWrapAction.setChecked(store.getBoolean(ICVSUIConstants.PREF_WRAP_COMMENTS));
    //PlatformUI.getWorkbench().getHelpSystem().setHelp(toggleTextWrapAction, IHelpContextIds.SHOW_TAGS_IN_HISTORY_ACTION);

    // Toggle list visible action
    toggleListAction = new Action(TeamUIMessages.GenericHistoryView_ShowTagViewer) {
        public void run() {
            setViewerVisibility();
            store.setValue(ICVSUIConstants.PREF_SHOW_TAGS, toggleListAction.isChecked());
        }
    };
    toggleListAction.setChecked(store.getBoolean(ICVSUIConstants.PREF_SHOW_TAGS));
    //PlatformUI.getWorkbench().getHelpSystem().setHelp(toggleListAction, IHelpContextIds.SHOW_TAGS_IN_HISTORY_ACTION);

    //Toggle search field
    toggleSearchAction = new Action(CVSUIMessages.CVSHistoryPage_ShowSearchField) {
        public void run() {
            setViewerVisibility();
            store.setValue(ICVSUIConstants.PREF_SHOW_SEARCH, toggleSearchAction.isChecked());
            if (!toggleSearchAction.isChecked()) {
                if (searchFilter != null)
                    treeViewer.removeFilter(searchFilter);
            } else {
                searchField.setMessage(CVSUIMessages.CVSHistoryPage_EnterSearchTerm);
                searchField.selectAll();
                searchField.setFocus();
            }
        }
    };
    toggleSearchAction.setChecked(store.getBoolean(ICVSUIConstants.PREF_SHOW_SEARCH));
    //PlatformUI.getWorkbench().getHelpSystem().setHelp(toggleListAction, IHelpContextIds.SHOW_TAGS_IN_HISTORY_ACTION);

    toggleFilterAction = new Action(CVSUIMessages.CVSHistoryPage_NoFilter) {
        public void run() {
            if (historyFilter != null)
                treeViewer.removeFilter(historyFilter);
            historyFilter = null;
            String old = CVSHistoryPage.this.description;
            CVSHistoryPage.this.description = null;
            CVSHistoryPage.this.firePropertyChange(CVSHistoryPage.this, P_NAME, old, getName());
            toggleFilterAction.setEnabled(false);
        }
    };
    toggleFilterAction.setEnabled(historyFilter != null);

    //Create the filter action
    cvsHistoryFilter = new CVSHistoryFilterAction(this);
    cvsHistoryFilter.setText(CVSUIMessages.CVSHistoryPage_FilterOn);
    cvsHistoryFilter.init(treeViewer);
    cvsHistoryFilter.setToolTipText(CVSUIMessages.CVSHistoryPage_FilterHistoryTooltip);
    cvsHistoryFilter
            .setImageDescriptor(CVSUIPlugin.getPlugin().getImageDescriptor(ICVSUIConstants.IMG_FILTER_HISTORY));

    //Contribute actions to popup menu
    MenuManager menuMgr = new MenuManager();
    Menu menu = menuMgr.createContextMenu(treeViewer.getTree());
    menuMgr.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager menuMgr) {
            fillTableMenu(menuMgr);
        }
    });
    menuMgr.setRemoveAllWhenShown(true);
    treeViewer.getTree().setMenu(menu);
    //Don't add the object contribution menu items if this page is hosted in a dialog
    IHistoryPageSite parentSite = getHistoryPageSite();
    if (!parentSite.isModal()) {
        IWorkbenchPart part = parentSite.getPart();
        if (part != null) {
            IWorkbenchPartSite workbenchPartSite = part.getSite();
            workbenchPartSite.registerContextMenu(menuMgr, treeViewer);
        }
        IPageSite pageSite = parentSite.getWorkbenchPageSite();
        if (pageSite != null) {
            IActionBars actionBars = pageSite.getActionBars();
            // Contribute toggle text visible to the toolbar drop-down
            IMenuManager actionBarsMenu = actionBars.getMenuManager();
            if (actionBarsMenu != null) {
                actionBarsMenu.add(toggleTextWrapAction);
                actionBarsMenu.add(new Separator());
                actionBarsMenu.add(toggleTextAction);
                actionBarsMenu.add(toggleListAction);
                actionBarsMenu.add(new Separator());
                actionBarsMenu.add(toggleSearchAction);
                actionBarsMenu.add(new Separator());
                actionBarsMenu.add(cvsHistoryFilter);
                actionBarsMenu.add(toggleFilterAction);
            }
            // Create actions for the text editor
            copyAction = new TextViewerAction(textViewer, ITextOperationTarget.COPY);
            copyAction.setText(CVSUIMessages.HistoryView_copy);
            actionBars.setGlobalActionHandler(ITextEditorActionConstants.COPY, copyAction);

            selectAllAction = new TextViewerAction(textViewer, ITextOperationTarget.SELECT_ALL);
            selectAllAction.setText(CVSUIMessages.HistoryView_selectAll);
            actionBars.setGlobalActionHandler(ITextEditorActionConstants.SELECT_ALL, selectAllAction);

            copyTagAction = new TableViewerAction(tagViewer);
            copyTagAction.setText(CVSUIMessages.HistoryView_copy);
            copyTagAction.setEnabled(false);

            actionBars.updateActionBars();
        }
    }

    //Create the local tool bar
    IToolBarManager tbm = parentSite.getToolBarManager();
    if (tbm != null) {
        String fileNameQualifier = getFileNameQualifier();
        //Add groups
        tbm.add(new Separator(fileNameQualifier + "grouping")); //$NON-NLS-1$
        tbm.appendToGroup(fileNameQualifier + "grouping", groupByDateMode); //$NON-NLS-1$
        tbm.add(new Separator(fileNameQualifier + "modes")); //$NON-NLS-1$
        tbm.appendToGroup(fileNameQualifier + "modes", remoteLocalMode); //$NON-NLS-1$
        tbm.appendToGroup(fileNameQualifier + "modes", localMode); //$NON-NLS-1$
        tbm.appendToGroup(fileNameQualifier + "modes", remoteMode); //$NON-NLS-1$
        tbm.add(new Separator(fileNameQualifier + "collapse")); //$NON-NLS-1$
        tbm.appendToGroup(fileNameQualifier + "collapse", collapseAll); //$NON-NLS-1$
        if (!parentSite.isModal()) {
            //don't bother adding the compare mode toolbar button if in
            //a dialog; you can only compare from dialogs
            tbm.appendToGroup(fileNameQualifier + "collapse", compareModeAction); //$NON-NLS-1$
        }
        tbm.update(false);
    }

    menuMgr = new MenuManager();
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager menuMgr) {
            fillTextMenu(menuMgr);
        }
    });
    StyledText text = textViewer.getTextWidget();
    menu = menuMgr.createContextMenu(text);
    text.setMenu(menu);

    menuMgr = new MenuManager();
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager menuMgr) {
            fillTagMenu(menuMgr);
        }
    });
    menu = menuMgr.createContextMenu(tagViewer.getControl());
    tagViewer.getControl().setMenu(menu);
}