Package org.erlide.ui.editors.erl

Source Code of org.erlide.ui.editors.erl.ErlEditorActionBarContributor

/*******************************************************************************
* Copyright (c) 2005 Vlad Dumitrescu and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Vlad Dumitrescu
*******************************************************************************/

package org.erlide.ui.editors.erl;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.progress.UIJob;
import org.eclipse.ui.texteditor.BasicTextEditorActionContributor;
import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
import org.erlide.ui.editors.erl.actions.GotoAnnotationAction;

public class ErlEditorActionBarContributor extends BasicTextEditorActionContributor {

    public ErlEditorActionBarContributor() {
        super();

        // contentAssistProposal = new RetargetTextEditorAction(ErlideUIMessages
        // .getResourceBundle(), "ContentAssistProposal.");
        // ErlLogger.debug("AC 1");

        fPreviousAnnotation = new GotoAnnotationAction("PreviousAnnotation.", false); //$NON-NLS-1$
        fNextAnnotation = new GotoAnnotationAction("NextAnnotation.", true); //$NON-NLS-1$
    }

    // protected RetargetTextEditorAction contentAssistProposal;
    private final GotoAnnotationAction fPreviousAnnotation;

    private final GotoAnnotationAction fNextAnnotation;

    @Override
    public void contributeToMenu(final IMenuManager menuManager) {
        final IMenuManager navigateMenu = menuManager
                .findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE);
        if (navigateMenu != null) {
            // navigateMenu.add(new Separator());
            // navigateMenu.add(fQuickOutline);
        }
    }

    @Override
    public void setActiveEditor(final IEditorPart part) {
        super.setActiveEditor(part);

        ITextEditor editor = null;
        if (part instanceof ITextEditor) {
            editor = (ITextEditor) part;
        }

        if (part instanceof ErlangEditor) {
            final ErlangEditor erlangEditor = (ErlangEditor) part;
            erlangEditor.getActionGroup().fillActionBars(getActionBars());
        }
        // contentAssistProposal.setAction(getAction(editor,
        // "ContentAssistProposal"));

        // IActionBars bars = getActionBars();
        // bars.setGlobalActionHandler(ErlangActionIds.COMMENT,
        // getAction(editor,
        // "Comment"));
        // bars.setGlobalActionHandler(ErlangActionIds.UNCOMMENT,
        // getAction(editor,
        // "Uncomment"));

        final IActionBars actionBars = getActionBars();
        final IStatusLineManager manager = actionBars.getStatusLineManager();
        manager.setMessage(null);
        manager.setErrorMessage(null);

        fPreviousAnnotation.setEditor(editor);
        fNextAnnotation.setEditor(editor);

        final IAction showOutline = getAction(editor,
                IErlangEditorActionDefinitionIds.SHOW_OUTLINE);
        actionBars.setGlobalActionHandler(IErlangEditorActionDefinitionIds.SHOW_OUTLINE,
                showOutline);

    }

    /*
     * @see IEditorActionBarContributor#init(IActionBars, IWorkbenchPage)
     */
    @Override
    public void init(final IActionBars bars, final IWorkbenchPage page) {
        super.init(bars, page);
        // register actions that have a dynamic editor.
        bars.setGlobalActionHandler(ITextEditorActionDefinitionIds.GOTO_NEXT_ANNOTATION,
                fNextAnnotation);
        bars.setGlobalActionHandler(
                ITextEditorActionDefinitionIds.GOTO_PREVIOUS_ANNOTATION,
                fPreviousAnnotation);
        bars.setGlobalActionHandler(ActionFactory.NEXT.getId(), fNextAnnotation);
        bars.setGlobalActionHandler(ActionFactory.PREVIOUS.getId(), fPreviousAnnotation);
    }

    public void displayMessage(final String message) {
        getActionBars().getStatusLineManager().setMessage(message);
        new UIJob("message clear") {

            @Override
            public IStatus runInUIThread(final IProgressMonitor monitor) {
                getActionBars().getStatusLineManager().setMessage(null);
                return Status.OK_STATUS;
            }
        }.schedule(2000);
    }

}
TOP

Related Classes of org.erlide.ui.editors.erl.ErlEditorActionBarContributor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.