Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » GEF » Usage of MultiPageEditorActionBarContributor
Usage of MultiPageEditorActionBarContributor [message #212136] Sat, 18 March 2006 18:52
Eclipse UserFriend
Originally posted by: dutz.c-ware.de

Hi.

I am working on a gephical editor and simply cant get the kebindings to
work. Everything is working fine except that. I implemented my own
contributor extending MultiPageEditorActionBarContributor and added all the
action code from the "normal" ActionBarContributor. Unfortunately my Hotkeys
still won't work. Any help is greatly appreciated ;)

Chris

package de.tud.cs.qpe.editors.net.gef;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.gef.ui.actions.ActionRegistry;
import org.eclipse.gef.ui.actions.DeleteRetargetAction;
import org.eclipse.gef.ui.actions.GEFActionConstants;
import org.eclipse.gef.ui.actions.RedoRetargetAction;
import org.eclipse.gef.ui.actions.UndoRetargetAction;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.RetargetAction;
import org.eclipse.ui.part.MultiPageEditorActionBarContributor;

public class NetEditorActionBarContributor extends
MultiPageEditorActionBarContributor {
private ActionRegistry registry = new ActionRegistry();

private List<RetargetAction> retargetActions = new
ArrayList<RetargetAction>();

private List<String> globalActionKeys = new ArrayList<String>();

public void init(IActionBars bars) {
buildActions();
declareGlobalActionKeys();
super.init(bars);
}

protected void addAction(IAction action) {
getActionRegistry().registerAction(action);
}

protected void addGlobalActionKey(String key) {
globalActionKeys.add(key);
}

protected void addRetargetAction(RetargetAction action) {
addAction(action);
retargetActions.add(action);
getPage().addPartListener(action);
addGlobalActionKey(action.getId());
}

protected IAction getAction(String id) {
return getActionRegistry().getAction(id);
}

protected ActionRegistry getActionRegistry() {
return registry;
}

protected void buildActions() {
IWorkbenchWindow workbenchWindow = getPage().getWorkbenchWindow();
addRetargetAction(new UndoRetargetAction());
addRetargetAction(new RedoRetargetAction());
addRetargetAction((RetargetAction)
ActionFactory.COPY.create(workbenchWindow));
addRetargetAction((RetargetAction)
ActionFactory.PASTE.create(workbenchWindow));
addRetargetAction(new DeleteRetargetAction());
addRetargetAction((RetargetAction)
ActionFactory.SELECT_ALL.create(workbenchWindow));
}

public void contributeToToolBar(IToolBarManager toolBarManager) {
toolBarManager.add(new Separator());
toolBarManager.add(getAction(ActionFactory.UNDO.getId()));
toolBarManager.add(getAction(ActionFactory.REDO.getId()));
toolBarManager.add(getAction(ActionFactory.COPY.getId()));
toolBarManager.add(getAction(ActionFactory.PASTE.getId()));
toolBarManager.add(getAction(ActionFactory.DELETE.getId()));
toolBarManager.add(getAction(ActionFactory.SELECT_ALL.getId( )));

}

public void contributeToMenu(IMenuManager menuManager) {
IMenuManager editMenu =
menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_ED IT);

GEFActionConstants.addStandardActionGroups(editMenu);

editMenu.appendToGroup(GEFActionConstants.GROUP_UNDO,
getAction(ActionFactory.UNDO.getId()));
editMenu.appendToGroup(GEFActionConstants.GROUP_UNDO,
getAction(ActionFactory.REDO.getId()));

editMenu.appendToGroup(GEFActionConstants.GROUP_EDIT,
getAction(ActionFactory.COPY.getId()));
editMenu.appendToGroup(GEFActionConstants.GROUP_EDIT,
getAction(ActionFactory.PASTE.getId()));

editMenu.add(new Separator("de.tud.cs.qpe.editors.net.group.select"));
editMenu.appendToGroup("de.tud.cs.qpe.editors.net.group.select ",
getAction(ActionFactory.DELETE.getId()));
editMenu.appendToGroup("de.tud.cs.qpe.editors.net.group.select ",
getAction(ActionFactory.SELECT_ALL.getId()));
}

protected void declareGlobalActionKeys() {
addGlobalActionKey(ActionFactory.UNDO.getId());
addGlobalActionKey(ActionFactory.REDO.getId());
addGlobalActionKey(ActionFactory.COPY.getId());
addGlobalActionKey(ActionFactory.PASTE.getId());
addGlobalActionKey(ActionFactory.DELETE.getId());
addGlobalActionKey(ActionFactory.SELECT_ALL.getId());
}

public void setActivePage(IEditorPart activeEditor) {
ActionRegistry registry = (ActionRegistry)
activeEditor.getAdapter(ActionRegistry.class);
IActionBars bars = getActionBars();
for (int i = 0; i < globalActionKeys.size(); i++) {
String id = (String) globalActionKeys.get(i);
bars.setGlobalActionHandler(id, registry.getAction(id));
}
getActionBars().updateActionBars();
}
}
Previous Topic:Newbie question: chart with GEF/ Draw2d
Next Topic:GEF problem - Needed help urgently
Goto Forum:
  


Current Time: Wed Jan 22 12:37:35 GMT 2025

Powered by FUDForum. Page generated in 0.14865 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top