Eclipse扩展点实践之添加菜单项(ActionSet方式实现)

来源:互联网 发布:淘宝严重违规包括那些 编辑:程序博客网 时间:2024/04/29 07:45

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栏中显示吗?)  

-----------------------------------------------------------------------------------------------------------------------

 

---------------------------------------------------------------------------------------------------------------
看一下效果:

 

点击之后:

0 0
原创粉丝点击