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

ActionSet方式比起Command方式,比较直观,但是功能有限。

首先:新建一个项目,在Extension中添加org.eclipse.ui.actionSets的扩展。

 

Eclipse扩展点实践之添加菜单项(ActionSet方式实现)_第1张图片

然后,new->actionSet。在新生成的actionSet上new->menu和new->action。注意:action的label决定图标的显示。

Eclipse扩展点实践之添加菜单项(ActionSet方式实现)_第2张图片

下来写一个处理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栏中显示吗?)  

Eclipse扩展点实践之添加菜单项(ActionSet方式实现)_第3张图片

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

Eclipse扩展点实践之添加菜单项(ActionSet方式实现)_第4张图片

 

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

 

点击之后:

Eclipse扩展点实践之添加菜单项(ActionSet方式实现)_第5张图片

你可能感兴趣的:(Eclipse扩展点实践之添加菜单项(ActionSet方式实现))