- 浏览: 335942 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
hjl0722:
...
Java中的异或 -
lucd:
f(New.<Person, List<Pet&g ...
第15章泛型 -
liujunhao225:
[Error: could not access: List; ...
mvel的使用 -
superscorpio:
public void testImportInContex ...
mvel的使用 -
yuyangtina:
哦,知道了,是继承的方法。谢谢你的分享。
HttpClient3.x发送Soap请求的方法
popupmenu扩展点是为各种对象上的右键弹出的菜单,添加菜单项的。
主要分为三种:
对象操作(比如文件、工程、String对象等等,当在这些对象上点击右键,怎么添加菜单项到弹出的菜单里面);
对应<extension point="org.eclipse.ui.popupMenus">
<objectContribution
id="org.eclipse.ui.articles.action.contribution.popup.object"
objectClass="org.eclipse.core.resources.IFile"
nameFilter="*.java">
<filter
name="projectNature"
value="org.eclipse.jdt.core.javanature">
</filter>
<action
id="org.eclipse.ui.articles.action.contribution.object.action1"
label="Object Action 1"
icon="icons/red_dot.gif"
menubarPath="additions"
class="org.eclipse.ui.articles.action.contribution.ObjectAction1Delegate">
</action>
</objectContribution>
</extension>
子元素
对象操作必须实现IObjectActionDelegate接口
视图操作,对应 <extension point="org.eclipse.ui.popupMenus">
<viewerContribution
id="org.eclipse.ui.articles.action.contribution.popup.navigator"
//该元素表示为哪个视图提供操作
targetID="org.eclipse.ui.views.ResourceNavigator">
<action
id="org.eclipse.ui.articles.action.contribution.navigator.action1"
label="View Action 1"
icon="icons/red_dot.gif"
menubarPath="additions"
class="org.eclipse.ui.articles.action.contribution.ViewAction1Delegate"
enablesFor="!">
</action>
<menu
id="org.eclipse.ui.articles.action.contribution.navigator.subMenu"
label="View Sub Menu"
path="additions">
<separator name="group1"/>
</menu>
<action
id="org.eclipse.ui.articles.action.contribution.navigator.action2"
label="View Action 2"
icon="icons/red_dot.gif"
menubarPath="org.eclipse.ui.articles.action.contribution.navigator.subMenu/group1"
class="org.eclipse.ui.articles.action.contribution.ViewAction2Delegate"
enablesFor="1">
</action>
<action
id="org.eclipse.ui.articles.action.contribution.navigator.action3"
label="View Action 3"
icon="icons/red_dot.gif"
menubarPath="org.eclipse.ui.articles.action.contribution.navigator.subMenu/group1"
class="org.eclipse.ui.articles.action.contribution.ViewAction3Delegate"
enablesFor="2+">
</action>
</viewerContribution>
</extension>子元素;
<viewerContribution> 规定了视图中所有对象的通用操作。
视图操作必须实现IViewActionDelegate接口
添加视图工具栏和下拉子菜单,下面的扩展点是用于添加视图工具栏操作和下拉菜单操作的,如下:
<extension
point="org.eclipse.ui.viewActions">
//和<viewerContribution>子元素进行区别,是不同扩展点的子元素
<viewContribution
id="com.plugindev.addressbook.example.viewActionTest"
targetID="com.plugindev.addressbook.views.AddressView">
<action
//也要实现IViewActionDelegate接口
class="com.plugindev.addressbook.example.ViewExampleAction"
icon="icons/sample.gif"
id="com.plugindev.addressbook.viewExampleAction"
label="视图操作"
menubarPath="com.plugindev/example"
style="push"
//添加操作到视图工具栏上
toolbarPath="additions"
tooltip="举例说明如何添加视图操作"/>
<menu
id="com.plugindev"
label="下拉菜单示例"
//添加下拉菜单比较容易,只有定义path属性等于“addtions”即可
path="addtions">
<separator name="example"/>
</menu>
</viewContribution>
</extension>
编辑器操作,对应<viewerContribution
id="org.eclipse.ui.articles.action.contribution.popup.editor"
targetID="#TextEditorContext"子元素;
为编辑器添加顶层工作台菜单,需要扩展org.eclipse.ui.editorActions扩展点。和前面的添加菜单和工具栏按钮不同,前面的在所有的情况下都会出现添加的操作,而编辑器顶层菜单呢,只有在使用与之关联的特定编辑器时才会出现:
<extension
point="org.eclipse.ui.editorActions">
<editorContribution
id="com.plugindev.addressbook.example.editorActionTest"
//必须属性,用来与特定的编辑器想关联
targetID="org.eclipse.ui.DefaultTextEditor">
<menu
id="com.plugindev.defaultEditorMenu"
label="顶层编辑器菜单"
path="additions">
<separator name="example"/>
</menu>
<action
class="com.plugindev.addressbook.example.TopEditorAction"
icon="icons/sample.gif"
id="com.plugindev.addressbook.TopEditorAction"
label="顶层编辑操作"
menubarPath="com.plugindev.defaultEditorMenu/example"
style="push"
toolbarPath="Normal/additions"
tooltip="编辑器操作示例"/>
</editorContribution>
</extension>
编辑器操作要实现IEditorActionDelegate接口。
快捷键映射
如果要支持快捷键映射,就必须考虑一下三个问题:
1.不同的插件可能会为不相关的操作定义相同的快捷键;
2.插件可能会为相同的操作定义不同的快捷键;
3.插件可能会定义与工作台冲突的快捷键;
因而,eclipse不能直接将操作与快捷键相关联。为了解决该问题,eclipse引入了命令的概念
<extension
point="org.eclipse.ui.actionSets">
<actionSet
id="com.plugindev.addressbook.actionSet"
label="地址本操作"
visible="true">
<menu
id="AddressBookMenu"
label="地址本">
<separator name="content"/>
</menu>
<action
class="com.plugindev.addressbook.actions.OpenAddressViewAction"
//将某个快捷键通过“命令”这个桥梁和该操作关联起来,
definitionId="com.plugindev.addressbook.commands.openAddressView"
icon="icons/sample.gif"
id="com.plugindev.addressbook.actions.OpenAddressViewAction"
label="打开视图"
menubarPath="AddressBookMenu/content"
toolbarPath="Normal/addition"
tooltip="在当前透视图中打开地址本视图"/>
</actionSet>
</extension>
//通过该扩展点定义一个命令,该命令不包含操作的具体实现,也不和任何操作相关联。
<extension
point="org.eclipse.ui.commands">
//命令的类别
<category
description="地址本插件添加的命令"
id="com.plugindev.addressbook.commands"
name="地址本"/>
<command
categoryId="com.plugindev.addressbook.commands"
description="打开地址本视图"
//此id可以随便定义,要保证唯一性。以便action引入
id="com.plugindev.addressbook.commands.openAddressView"
name="打开地址本"/>
//通过该扩展点可以将命令和快捷键绑定
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
//定义和哪个命令绑定
commandId="com.plugindev.addressbook.commands.openAddressView"
//默认
contextId="org.eclipse.ui.contexts.window"
//默认将快捷键添加到eclipse配置中
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
//定义快捷键,快捷键通常由管理键(ALT,COMMAND,CTRL,SHIFT)和普通键组成,普通键一般用大写字母表示,不同键用+分割
sequence="CTRL+SHIFT+V"/>
</extension>
这样定义后,就可以在窗口-》定制透视图 的命令选项卡中,找到刚才定义的刚才定义的命令组,打勾表示在当前透视图中显示该操作,否则不显示。
主要分为三种:
对象操作(比如文件、工程、String对象等等,当在这些对象上点击右键,怎么添加菜单项到弹出的菜单里面);
对应<extension point="org.eclipse.ui.popupMenus">
<objectContribution
id="org.eclipse.ui.articles.action.contribution.popup.object"
objectClass="org.eclipse.core.resources.IFile"
nameFilter="*.java">
<filter
name="projectNature"
value="org.eclipse.jdt.core.javanature">
</filter>
<action
id="org.eclipse.ui.articles.action.contribution.object.action1"
label="Object Action 1"
icon="icons/red_dot.gif"
menubarPath="additions"
class="org.eclipse.ui.articles.action.contribution.ObjectAction1Delegate">
</action>
</objectContribution>
</extension>
子元素
对象操作必须实现IObjectActionDelegate接口
视图操作,对应 <extension point="org.eclipse.ui.popupMenus">
<viewerContribution
id="org.eclipse.ui.articles.action.contribution.popup.navigator"
//该元素表示为哪个视图提供操作
targetID="org.eclipse.ui.views.ResourceNavigator">
<action
id="org.eclipse.ui.articles.action.contribution.navigator.action1"
label="View Action 1"
icon="icons/red_dot.gif"
menubarPath="additions"
class="org.eclipse.ui.articles.action.contribution.ViewAction1Delegate"
enablesFor="!">
</action>
<menu
id="org.eclipse.ui.articles.action.contribution.navigator.subMenu"
label="View Sub Menu"
path="additions">
<separator name="group1"/>
</menu>
<action
id="org.eclipse.ui.articles.action.contribution.navigator.action2"
label="View Action 2"
icon="icons/red_dot.gif"
menubarPath="org.eclipse.ui.articles.action.contribution.navigator.subMenu/group1"
class="org.eclipse.ui.articles.action.contribution.ViewAction2Delegate"
enablesFor="1">
</action>
<action
id="org.eclipse.ui.articles.action.contribution.navigator.action3"
label="View Action 3"
icon="icons/red_dot.gif"
menubarPath="org.eclipse.ui.articles.action.contribution.navigator.subMenu/group1"
class="org.eclipse.ui.articles.action.contribution.ViewAction3Delegate"
enablesFor="2+">
</action>
</viewerContribution>
</extension>子元素;
<viewerContribution> 规定了视图中所有对象的通用操作。
视图操作必须实现IViewActionDelegate接口
添加视图工具栏和下拉子菜单,下面的扩展点是用于添加视图工具栏操作和下拉菜单操作的,如下:
<extension
point="org.eclipse.ui.viewActions">
//和<viewerContribution>子元素进行区别,是不同扩展点的子元素
<viewContribution
id="com.plugindev.addressbook.example.viewActionTest"
targetID="com.plugindev.addressbook.views.AddressView">
<action
//也要实现IViewActionDelegate接口
class="com.plugindev.addressbook.example.ViewExampleAction"
icon="icons/sample.gif"
id="com.plugindev.addressbook.viewExampleAction"
label="视图操作"
menubarPath="com.plugindev/example"
style="push"
//添加操作到视图工具栏上
toolbarPath="additions"
tooltip="举例说明如何添加视图操作"/>
<menu
id="com.plugindev"
label="下拉菜单示例"
//添加下拉菜单比较容易,只有定义path属性等于“addtions”即可
path="addtions">
<separator name="example"/>
</menu>
</viewContribution>
</extension>
编辑器操作,对应<viewerContribution
id="org.eclipse.ui.articles.action.contribution.popup.editor"
targetID="#TextEditorContext"子元素;
为编辑器添加顶层工作台菜单,需要扩展org.eclipse.ui.editorActions扩展点。和前面的添加菜单和工具栏按钮不同,前面的在所有的情况下都会出现添加的操作,而编辑器顶层菜单呢,只有在使用与之关联的特定编辑器时才会出现:
<extension
point="org.eclipse.ui.editorActions">
<editorContribution
id="com.plugindev.addressbook.example.editorActionTest"
//必须属性,用来与特定的编辑器想关联
targetID="org.eclipse.ui.DefaultTextEditor">
<menu
id="com.plugindev.defaultEditorMenu"
label="顶层编辑器菜单"
path="additions">
<separator name="example"/>
</menu>
<action
class="com.plugindev.addressbook.example.TopEditorAction"
icon="icons/sample.gif"
id="com.plugindev.addressbook.TopEditorAction"
label="顶层编辑操作"
menubarPath="com.plugindev.defaultEditorMenu/example"
style="push"
toolbarPath="Normal/additions"
tooltip="编辑器操作示例"/>
</editorContribution>
</extension>
编辑器操作要实现IEditorActionDelegate接口。
快捷键映射
如果要支持快捷键映射,就必须考虑一下三个问题:
1.不同的插件可能会为不相关的操作定义相同的快捷键;
2.插件可能会为相同的操作定义不同的快捷键;
3.插件可能会定义与工作台冲突的快捷键;
因而,eclipse不能直接将操作与快捷键相关联。为了解决该问题,eclipse引入了命令的概念
<extension
point="org.eclipse.ui.actionSets">
<actionSet
id="com.plugindev.addressbook.actionSet"
label="地址本操作"
visible="true">
<menu
id="AddressBookMenu"
label="地址本">
<separator name="content"/>
</menu>
<action
class="com.plugindev.addressbook.actions.OpenAddressViewAction"
//将某个快捷键通过“命令”这个桥梁和该操作关联起来,
definitionId="com.plugindev.addressbook.commands.openAddressView"
icon="icons/sample.gif"
id="com.plugindev.addressbook.actions.OpenAddressViewAction"
label="打开视图"
menubarPath="AddressBookMenu/content"
toolbarPath="Normal/addition"
tooltip="在当前透视图中打开地址本视图"/>
</actionSet>
</extension>
//通过该扩展点定义一个命令,该命令不包含操作的具体实现,也不和任何操作相关联。
<extension
point="org.eclipse.ui.commands">
//命令的类别
<category
description="地址本插件添加的命令"
id="com.plugindev.addressbook.commands"
name="地址本"/>
<command
categoryId="com.plugindev.addressbook.commands"
description="打开地址本视图"
//此id可以随便定义,要保证唯一性。以便action引入
id="com.plugindev.addressbook.commands.openAddressView"
name="打开地址本"/>
//通过该扩展点可以将命令和快捷键绑定
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
//定义和哪个命令绑定
commandId="com.plugindev.addressbook.commands.openAddressView"
//默认
contextId="org.eclipse.ui.contexts.window"
//默认将快捷键添加到eclipse配置中
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
//定义快捷键,快捷键通常由管理键(ALT,COMMAND,CTRL,SHIFT)和普通键组成,普通键一般用大写字母表示,不同键用+分割
sequence="CTRL+SHIFT+V"/>
</extension>
这样定义后,就可以在窗口-》定制透视图 的命令选项卡中,找到刚才定义的刚才定义的命令组,打勾表示在当前透视图中显示该操作,否则不显示。
发表评论
-
ViewPart的基本操作
2013-01-08 16:00 1047public class AddressView ext ... -
CoolBar
2012-12-16 15:12 1842CoolBar是一个容器,里面可以放置多个工 ... -
ViewForm
2012-12-16 14:53 1461ViewForm是一个容器,它是编辑器的基座,用来 ... -
SWT容器类
2012-12-16 14:34 3232容器类 我们可以通过容器对组件进行统 ... -
多页编辑器
2012-11-12 17:40 1434资源里存储了用户需要的信息,而编辑器是用户创 ... -
控件支持键盘操作
2012-11-12 14:48 842支持键盘删除操作 private void hookK ... -
eclipse表单
2012-11-09 17:45 1578eclispe表单,它的作用就是使swt/jf ... -
视图工具栏
2012-11-08 17:41 864通过编程方式添加视图工具栏和下拉菜单 priva ... -
几个常用的监听器
2012-11-08 17:38 1243为表格或列表查看器添加选择更改监听器 org.ecli ... -
显示上下文菜单
2012-11-08 17:31 1176通过扩展点添加菜单时,必须添加下面的方法,才能显示上下文 ... -
TableView排序
2012-11-08 17:28 869给TableViewer添加排序器的方法: 1.创建一 ... -
操作Action
2012-11-07 17:32 1923IActionDelegate的子类型有IWork ... -
eclipse整体概况
2012-11-07 17:25 1009eclipse通过插件的依赖关系将不同的插件联 ... -
事件监听
2012-07-25 00:03 934一、概述 1.用户在UI界面上的不同操作,会产生不同的 ... -
绘制图形
2012-07-09 22:45 859swt中的绘图功能是通过org.eclipse.s ... -
系统资源类
2012-07-09 00:12 940一、概述 ... -
表格查看器
2012-07-02 00:12 944package com.test.cxm.plugin0 ... -
常用的布局管理器
2012-07-01 18:29 1262SWT有2种控制控件位置和大小的方法:绝对定位和托管定位。 ... -
常用窗口小部件使用实例
2012-06-29 00:24 1357package com.test.cxm.plugin01.p ... -
SWT概述
2012-06-28 23:46 999import org.eclipse.swt.layout.F ...
相关推荐
android中上下文菜单与上下文操作模式的简介与使用
文档中包括Android实现上下文菜单、下拉菜单、选项菜单代码以及截图,亲测可用!!!
Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...
创建上下文菜单
上下文菜单 就是用户在页面上单击右键时所显示的一组命令。微软的MSDN有一个简单的例子说明了怎样建立自定义菜单。这里,我们将通过XML的数据岛来快速创建自定义的上下文菜单。XML数据岛就是存在于HTML文档中的XML...
上下文菜单(即某个视图被长按时弹出的菜单,类似于电脑上的右键菜单)
该文档详细介绍了上下文菜单以及操作,适合初学者以及有需要的朋友
eclipse下上下文菜单和用array adapter构建的listview,点击会显示被选中那项的内容
一个美观而实用的方法,可定制编辑框的上下文菜单,
android studio写的选项菜单和上下文菜单,在同一个项目中了
上下文菜单编辑框的程序代码,热键的处理,判断功能是否可用控制菜单项的Enable状态等等
这个案例就是实现listView显示列表,并绑定了上下文菜单,实现删除
基于kotlin实现的上下文菜单,供初学者参考
iOS上下文菜单UI类似于Things 3
jQuery Context Menu - jQuery上下文菜单插件
上下文菜单的设计,掌握C#的基础应用与开发
上下文菜单(java).mp4
如何为控件添加上下文菜单(visual studio C++源代码编写).net