ActionSet方式比起Command方式,比较直观,但是功能有限。
首先:新建一个项目,在Extension中添加org.eclipse.ui.actionSets的扩展。
然后,new->actionSet。在新生成的actionSet上new->menu和new->action。注意:action的label决定图标的显示。
下来写一个处理action的类,这个类必须实现IWorkbenchWindowActionDelegate接口,其中的run函数就是点击图标之后要执行的响应。
package com.wjy.action; import org.eclipse.jface.action.IAction; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.ISelection; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkbenchWindowActionDelegate; public class ActionTest implements IWorkbenchWindowActionDelegate{ private IWorkbenchWindow window; @Override public void run(IAction action) { // TODO Auto-generated method stub Display display=Display.getCurrent(); Shell shell=new Shell(display); MessageDialog.openInformation( shell, "PlungInClient", "我是ActionSet模式实现的。"); } @Override public void selectionChanged(IAction action, ISelection selection) { // TODO Auto-generated method stub } @Override public void dispose() { // TODO Auto-generated method stub } @Override public void init(IWorkbenchWindow window) { // TODO Auto-generated method stub this.window=window; } }
最后对menu和action就行设定: menu中的没什么意义。
action中的是关键:label是显示的名称,icon是显示的图标,class是那个实现了IWorkbenchWindowActionDelegate接口的处理类的路径。
menubarPath是图标在menu的什么位置显示,toolbarPath是图标在toolbar的什么位置显示。
(有个问题,采用这种ActionSet的方式难道不能再快捷菜单中显示吗?只能在menu栏或者toolbar栏中显示吗?)
-----------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------
看一下效果:
点击之后: