/*******************************************************************************
* Copyright (c) 2008
* 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:
* Jurgen Vinju (jurgenv@cwi.nl) - initial API and implementation
*******************************************************************************/
package org.eclipse.imp.services.base;
import org.eclipse.imp.editor.UniversalEditor;
import org.eclipse.imp.runtime.RuntimePlugin;
import org.eclipse.imp.services.ILanguageActionsContributor;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.MenuManager;
public class DefaultLanguageActionsContributor implements ILanguageActionsContributor {
/**
* Override this method to add any kind of action to the popup
* menu of an editor. The default implementation uses
* the deprecated getEditorActions method to provide backward compatibility.
*
* @param editor
* @param menuManager
*/
public void contributeToEditorMenu(final UniversalEditor editor, IMenuManager menuManager) {
IMenuManager subMenu = new MenuManager(editor.fLanguage.getName());
try {
IAction[] actions = getEditorActions(editor);
if (actions != null && actions.length > 0) {
for (IAction action : actions) {
subMenu.add(action);
}
menuManager.add(subMenu);
}
}
catch (Exception e) {
RuntimePlugin.getInstance().logException(
"Unable to create language actions for contributor "
+ this, e);
}
}
public void contributeToStatusLine(final UniversalEditor editor, IStatusLineManager statusLineManager) {
// do nothing, subclasses can override to implement
}
public void contributeToToolBar(final UniversalEditor editor, IToolBarManager toolbarManager) {
// do nothing, subclasses can override to implement
}
public void contributeToMenuBar(final UniversalEditor editor, IMenuManager menuManager) {
// do nothing, subclasses can override to implement
}
/**
* Implement this method to add actions to a submenu labelled by the
* language name.
*
* @deprecated use contributeToEditorMenu() instead
* @param editor
* @return
*/
@Deprecated()
public IAction[] getEditorActions(UniversalEditor editor) {
return null;
}
}