Plug-in 编辑器菜单
来源:互联网 发布:洗衣机推荐 知乎 编辑:程序博客网 时间:2024/06/13 20:02
Plug-in 编辑器菜单
首先申明下,本文为笔者学习《Eclipse插件开发学习笔记》的笔记,并加入笔者自己的理解和归纳总结。
1、编辑器菜单
(1) 扩展点【org.eclipse.ui.editorActions】在【extensions】中添加【org.eclipse.ui.editorActions】
在【org.eclipse.ui.editorActions】中添加【editorContribution】,"targetID"指定对应的编辑器DemoEditorView。
在【editorContribution】中添加相应的【menu】和【action】
<extensionpoint="org.eclipse.ui.editorActions"><editorContributionid="com.plugin.blog.demo.editorContribution.DemoEditorPart"targetID="com.plugin.blog.demo.edit.DemoEditorPart"><menuid="com.plugin.blog.demo.menu.DemoEditorPart"label="编辑器菜单"path="additions"><separatorname="menu.DemoEditorPart.separator"></separator></menu><actionclass="com.plugin.blog.demo.actions.DemoEditorAction"icon="icons/icon_info.png"id="com.plugin.blog.demo.actions.DemoEditorAction"label="编辑器Action"menubarPath="com.plugin.blog.demo.menu.DemoEditorPart/menu.DemoEditorPart.separator"style="push"toolbarPath="additions"></action></editorContribution></extension>(2) 【action】
在"class"中选择对应的Action,必须继承IEditorActionDelegate类。
在menubarPath和toolbarPath中分别定义了菜单栏和工具栏的路径。
DemoEditorAction类,继承IEditorActionDelegate。
public class DemoEditorAction implements IEditorActionDelegate {private IEditorPart mEditorPart;@Overridepublic void run(IAction action) {MessageBox mb = new MessageBox(mEditorPart.getSite().getShell());mb.setText("消息");mb.setMessage("编辑器菜单");mb.open();}@Overridepublic void selectionChanged(IAction action, ISelection selection) {}@Overridepublic void setActiveEditor(IAction action, IEditorPart targetEditor) {this.mEditorPart = targetEditor;}}显示如下
2、编辑器Popup菜单
在编辑器中,同样可以在【org.eclipse.ui.popupMenus】中添加【objectContribution】或【viewerContribution】。<extensionpoint="org.eclipse.ui.popupMenus"><objectContributionadaptable="false"id="com.plugin.blog.demo.objectContribution.UserInfo"objectClass="com.plugin.blog.demo.edit.UserInfo"><menuid="com.plugin.blog.demo.menu.objectContribution.UserInfo"label="编辑器对象菜单"path="additions"> </menu> <actionclass="com.plugin.blog.demo.actions.EditorObjectAction"icon="icons/icon_editor.png"id="com.plugin.blog.demo.actions.EditorObjectAction"label="编辑器对象Action"menubarPath="com.plugin.blog.demo.menu.objectContribution.UserInfo"></action></objectContribution></extension>EditorObjectAction类,继承IObjectActionDelegate。
public class EditorObjectAction implements IObjectActionDelegate {private IWorkbenchPart mWorkbenchPart;private ISelection mSelection;@Overridepublic void run(IAction action) {if (mWorkbenchPart != null && mSelection != null) {IStructuredSelection ss = (IStructuredSelection) mSelection;UserInfo userInfo = (UserInfo) ss.getFirstElement();MessageBox mb = new MessageBox(mWorkbenchPart.getSite().getShell());mb.setText("消息");mb.setMessage("用户信息:\n" + userInfo.getText());mb.open();}}@Overridepublic void selectionChanged(IAction action, ISelection selection) {this.mSelection = selection;}@Overridepublic void setActivePart(IAction action, IWorkbenchPart targetPart) {this.mWorkbenchPart = targetPart;}}在UserInfoBlock类中添加右键菜单
@Overrideprotected void createMasterPart(IManagedForm managedForm, Composite parent) {... ...MenuManager menuManager = new MenuManager();menuManager.setRemoveAllWhenShown(true);Menu menu = menuManager.createContextMenu(table);table.setMenu(menu);getEditor().getSite().registerContextMenu(menuManager, tableViewer);}显示如下
阅读全文
0 0
- Plug-in 编辑器菜单
- Plug-in 菜单
- Plug-in 视图菜单
- Plug-in 编辑器
- Eclipse Plug-in 通过PropertTest设置菜单权限
- plug-in
- plug-in网址
- C# Plug-in resources
- Eclipse plug-in
- plug in, Basic idea
- ZDA plug-in,删无赦!
- datawindow plug-in
- powerbuilder window plug-in
- Nagios plug-in开发
- 瞎扯plug-in
- PI Achive Plug-In
- Plug-in插件技术
- Plug-In 1.1
- Android创建 不输入内容的常见对话框,工具类
- Java有没有goto
- (2)时间最优PID控制
- 顺时钟打印矩阵
- Android 调用系统相机和图片
- Plug-in 编辑器菜单
- 目标跟踪:KCF--调通C++代码
- 三次曲线和五次曲线函数
- 使用Tesseract-OCR训练文字识别记录
- AssetBundle 坑来坑去(一)
- 安信可A7模块、DB9公母头及TTL\rs232简介
- java_Comparator接口
- 布局优化必备 Hierarchy Viewer 工具使用
- leetcode Median of Two Sorted Arrays(Java)