zoukankan      html  css  js  c++  java
  • Eclipse扩展点实践之添加菜单项(ActionSet方式实现)

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

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

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

    点击之后:

  • 相关阅读:
    Python--BeautifulSoup4丶Tag丶Xpath丶requests+re的基础学习及使用
    c#字符串字面量
    vim操作
    序列的方法
    python数值类型与序列类型
    Linux操作学习笔记1
    Jav的10个面向对象设计原则
    JAVA面向对象基础
    二进制 八进制 十六进制
    using 的故事
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/actionset.html
Copyright © 2011-2022 走看看