首页 > 其他分享 >RCP给视图添加工具菜单和右键菜单

RCP给视图添加工具菜单和右键菜单

时间:2022-11-11 09:03:16浏览次数:39  
标签:菜单 void action1 add 视图 action2 manager 右键 Action

1、代码

private void makeActions() {
        action1 = new Action() {
            public void run() {
                showMessage("Action 1 executed");
            }
        };
        action1.setText("Action 1");
        action1.setToolTipText("Action 1 tooltip");
        action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
                getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
        action2 = new Action() {
            public void run() {
                showMessage("Action 2 executed");
            }
        };
        action2.setText("Action 2");
        action2.setToolTipText("Action 2 tooltip");
        action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
                getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
        contributeToActionBars();
    }
    
    private void contributeToActionBars() {
    	//获得视图的操作栏对象
    	IActionBars bars = getViewSite().getActionBars();
    	//添加下拉菜单
    	fillLocalPullDown(bars.getMenuManager());
    	//添加工具栏
    	fillLocalToolBar(bars.getToolBarManager());
    	hookContenxtMenu();
    }
    
    //添加下拉菜单
    private void fillLocalPullDown(IMenuManager manager) {
    	manager.add(action1);
    	manager.add(new Separator());
    	manager.add(action2);
    }
    
    //添加工具栏
    private void fillLocalToolBar(IToolBarManager manager) {
    	manager.add(action1);
    	manager.add(action2);
    }
    
    private void hookContenxtMenu() {
    	//创建菜单管理器对象
    	MenuManager menuMgr = new MenuManager("#PopupMenu");
    	menuMgr.add(action1);
    	menuMgr.add(action2);
    	menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    	
    	//为列表对象创建上下文菜单
    	Menu menu = menuMgr.createContextMenu(viewer.getControl());
    	//设置菜单
    	viewer.getControl().setMenu(menu);
    	//注册上下文菜单
    	getSite().registerContextMenu(menuMgr, viewer);
    	
    }

 2、效果:

 

标签:菜单,void,action1,add,视图,action2,manager,右键,Action
From: https://www.cnblogs.com/wwssgg/p/16879468.html

相关文章

  • Open Cascade 多视图-多个3D视图
    ​1.简介本文介绍OCC如何实现多窗口视图以及单个窗口的多视图功能。OpenCascade7.7.0Beta中引入一个新功能:新增口来创建视图的子视图,改进对多视图的支持,以此达到在......
  • RCP中视图和视图之间如何共享信息?
    1、在plugin.xml里面建多一个视图2、新建AnotherView视图代码packagemyviewrcp2;importorg.eclipse.swt.SWT;importorg.eclipse.swt.widgets.Composite;import......
  • win10 右键增加获取管理员权限
    1、新建txt空白文档2、复制以下代码到文档中保存,重命名文档为1.reg  txt文档会变成一个魔方图标的可执行的文件,执行它即可WindowsRegistryEditorVersion5.00;......
  • html屏蔽右键、禁止复制与禁止查看源代码的几种方法
    方法一:左右键屏蔽先来一种最简单的方法,它直接在body属性定义了oncontextmenu,使得右键的值为false,起到了屏蔽右键的效果。<bodyoncontextmenu=self.event.returnValue=f......
  • Android Menu工具栏菜单选项显示Icon图标
    将此段代码放到Acitivity@SuppressLint("RestrictedApi")overridefunonCreateOptionsMenu(menu:Menu?):Boolean{ if(menuisMenuBuilder){ menu.setOptional......
  • MySQL的视图(二十二)
    勿以恶小而为之,勿以善小而不为--------------------------刘备上一章简单介绍了MySQL合并查询结果(二十一),如果没有看过,​​请观看上一章​​一.视图一.一视图的出现......
  • 关于右键git bash不生效的另类解决方案jintianshangwu
    今天上午我是参照了网上别的博主的删除对应注册表的办法,重启电脑也没用,gitbash还是在右键那里,并且还点击了也没用。 后面我就想到了一个办法,删除git安装目录,删除了之后......
  • 直播平台开发,实现网页的导航栏和下拉菜单
    直播平台开发,实现网页的导航栏和下拉菜单1.HTML设置菜单项使用CSS可以美化HTML的菜单!导航栏类似于链接列表,所以使用<ul>属性来创建,效果如下: <ul><li><ahref="#">新......
  • idea、webstorm 2022 中顶部没有 vcs 菜单问题
    我一般在ide里创建本地仓库是使用VCS>ImportintoVersionControl>CreateGitRepository。但是在2022版的idea和webstrome中没有了顶部的VCS按钮。解决......
  • QTableWidget 右键菜单
    头文件中:QMenu*m_pContextMenu;QAction*m_pActionDel;构造函数中:ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu)voidCreateMenu(){......