- 浏览: 335941 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
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请求的方法
IActionDelegate的子类型有IWorkbenchWindowActionDelegate为工作台窗口的菜单栏和工具栏提供生命周期事件,还有:
IEditorActionDelegate为编辑器中的操作提供生命周期事件;
IObjectActionDelegate为快捷键相关联的操作代理提供生命周期事件;
IViewActionDelegate为视图中的操作提供生命周期事件;
IWorkbenchWindowActionDelegate接口中的方法:
//每次执行该操作时,都会执行该方法,init方法只有第一次才会执行,后面就不会执行了
public void run(IAction action)
//当用户焦点离开该操作创建的视图等等时,会执行该方法
public void selectionChanged(IAction action, ISelection selection)
//该关闭eclipse时,才会调用该方法
public void dispose()
//当第一次执行该操作时,创建该对象后,首先执行init方法,然后执行run方法
public void init(IWorkbenchWindow window)
操作可以在许多地方出现,如菜单栏、工具栏和上下文菜单,它丰富了编辑器的功能,增强的用户的体验。
eclipse中的操作既可以通过扩展点定义,也可以通过代码定义。
工具栏的按钮被分为多个组,每个组叫一个操作集(action set),用来集合一组相关的操作。
操作集扩展的使用(该扩展点主要是为了添加菜单栏和工具栏按钮的):
<extension
point="org.eclipse.ui.actionSets">
<actionSet
//引用该操作的唯一标识符
id="com.plugindev.addressbook.actionSet"
//出现在window->customize perspective 中的标识符
label="地址本操作"
//表示初始状态是否可见
visible="true">
//用于定义出现在菜单栏中的菜单
<menu
//菜单的唯一标识符
id="AddressBookMenu"
//菜单的名称,还有个属性path表示在何处插入此菜单
label="地址本">
<separator name="content"/>
</menu>
定义操作
<action
//操作的代理,必须实现IWorkbenchWindowActionDelegate或者 //IWorkbenchWindowPulldownActionDelegate(实现下拉式的工具栏按钮)
class="com.plugindev.addressbook.actions.OpenAddressViewAction"
//操作的命令标识符,将该操作绑定到哪个命令上
definitionId="com.plugindev.addressbook.commands.openAddressView"
//与该操作关联的图像,出现在工具栏
icon="icons/sample.gif"
引用该操作的唯一标识符
id="com.plugindev.addressbook.actions.OpenAddressViewAction"
//出现在菜单中的名称
label="打开视图"
//表示操作出现在菜单栏中的位置,表示出入到上面定义菜单的content中
menubarPath="AddressBookMenu/content"
//表示操作出现工具栏中的位置,Normal为工具栏的标识符,addition是工具栏中的组
toolbarPath="Normal/addition"
//用于工具栏按钮的提示信息
tooltip="在当前透视图中打开地址本视图"/>
</actionSet>
</extension>
视图操作包含视图上下文菜单、视图工具栏按钮、视图工具栏的下拉菜单。这些操作都可以通过编程的方式来实现。
popupMenus扩展点,可以为插件添加上下文菜单,并提供需要的菜单项。
<extension
point="org.eclipse.ui.popupMenus">
//与上下文特点对象相关联的操作,只有选择该对象才会出现该菜单
<objectContribution
//默认为fasle,指出适配IResource对象可接受的目标
adaptable="false"
//此操作的唯一标识符
id="com.plugindev.addressbook.example.objectActionTest"
//过滤器,表示可接受的目标名称
nameFilter="T*"
//表示可接受的目标类型,类型必须是String,其他类型不行
objectClass="java.lang.String">
<menu
id="exampleMenu"
label="示例菜单"
path="additions">
<separator name="example"/>
</menu>
<action
//操作代理类,必须实现IObjectActionDelegate接口
class="com.plugindev.addressbook.example.ObjExampleAction"
//表示多选是否也支持该操作,+表示支持,1表示不支持
enablesFor="1"
id="com.plugindev.addressbook.objExampleAction"
label="对象示例操作"
menubarPath="exampleMenu/example"
tooltip="举例说明如何添加对象操作"/>
</objectContribution>
</extension>
IObjectActionDelegate接口中方法的调用时机:
//右键选择目标对象时,先调用这个方法后再调用select,每次右键选择都会执行这2个方法
public void setActivePart(IAction action, IWorkbenchPart targetPart)
public void selectionChanged(IAction action, ISelection selection)
//选择相应菜单项时,执行该方法
public void run(IAction action)
<extension
point="org.eclipse.ui.popupMenus">
//为视图添加上下文菜单,针对所有的对象
<viewerContribution
id="com.plugindev.addressbook.example.viewerActionTest"
//表示为哪个视图提供操作
targetID="com.plugindev.addressbook.views.AddressView">
<menu
id="com.plugindev.viewToolbarMenu"
label="示例工具栏菜单"
path="additions">
<separator name="example"/>
</menu>
<action
//操作代理类必须实现IViewActionDelegate接口
class="com.plugindev.addressbook.example.ViewerExampleAction"
enablesFor="+"
id="com.plugindev.addressbook.viewerExampleAction"
label="查看器示例操作"
menubarPath="com.plugindev.viewToolbarMenu/example"
tooltip="举例说明如何添加查看器操作"/>
</viewerContribution>
</extension>
<extension
point="org.eclipse.ui.popupMenus">
//为编辑器的上下文菜单提供操作
<viewerContribution
id="com.plugindev.addressbook.example.editorActionTest"
//表示为哪个编辑器提供上下文菜单,在此表示eclipse默认的文本编辑器
targetID="#TextEditorContext">
<menu
id="com.plugindev.defaultEditorMenu"
label="示例编辑器菜单"
path="additions">
<separator name="example"/>
</menu>
<action
//操作代理类必须实现IEditorActionDelegate接口
class="com.plugindev.addressbook.example.EditorExampleAction"
icon="icons/sample.gif"
id="com.plugindev.addressbook.editorExampleAction"
label="编辑器操作"
menubarPath="com.plugindev.defaultEditorMenu/example"
tooltip="举例说明如何添加编辑器操作"/>
</viewerContribution>
</extension>
//用户定义编辑器的上下文菜单
<viewerContribution
id="com.plugindev.addressbook.example.editorActionTest"
targetID="#TextEditorContext">
<menu
id="com.plugindev.defaultEditorMenu"
label="示例编辑器菜单"
path="additions">
<separator name="example1"/>
<separator name="example2"/>
</menu>
//只有action的ID不同,可以放置多个action,并定义它在菜单中出现的位置
<action
class="com.plugindev.addressbook.example.EditorExampleAction"
icon="icons/sample.gif"
id="com.plugindev.addressbook.editorExampleAction"
label="编辑器操作2"
menubarPath="com.plugindev.defaultEditorMenu/example1"
tooltip="举例说明如何添加编辑器操作"/>
<action
class="com.plugindev.addressbook.example.EditorExampleAction"
icon="icons/sample.gif"
id="com.plugindev.addressbook.editorExampleAction2"
label="编辑器操作2"
menubarPath="com.plugindev.defaultEditorMenu/example2"
tooltip="举例说明如何添加编辑器操作"/>
</viewerContribution>
//此扩展点用于添加视图工具栏按钮
<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.addressViewPullDownMenu/example"
style="push"
toolbarPath="additions"
tooltip="举例说明如何添加视图操作"/>
<menu
id="com.plugindev.addressViewPullDownMenu"
label="下拉菜单示例"
path="addtions">
<separator name="example"/>
</menu>
</viewContribution>
</extension>
</editorContribution>
</extension>
为编辑器添加顶层工作台菜单和工具栏按钮,要扩展org.eclipse.ui.editorActions扩展点。与org.eclipse.ui.actionSets扩展点不同,后者对任何视图都可见,前者只对定义的
视图可见。
<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
//操作代理必须实现IEditorActionDelegate接口
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>
键绑定策略
命令是键序列与相应操作之间的桥梁,当按下快捷键时,通过命令就可以找到相应的操作
操作通过定义 definitionId来与命令ID相关联,绑定通过定义commandId与命令ID相关联
<extension
point="org.eclipse.ui.commands">
//定义命令所属的类别
<category
description="地址本插件添加的命令"
id="com.plugindev.addressbook.commands"
name="地址本"/>
<command
categoryId="com.plugindev.addressbook.commands"
description="打开地址本视图"
id="com.plugindev.addressbook.commands.openAddressView"
name="打开地址本"/>
<command
categoryId="com.plugindev.addressbook.commands"
description="打开地址本视图222"
id="com.plugindev.addressbook.commands.openAddressView22"
name="打开地址本222"/>
</extension>
<extension
point="org.eclipse.ui.bindings">
<key
commandId="com.plugindev.addressbook.commands.openAddressView"
contextId="org.eclipse.ui.contexts.window"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="CTRL+SHIFT+V"/>
<key
commandId="com.plugindev.addressbook.commands.openAddressView22"
//激活键序列时的上下文环境
contextId="org.eclipse.ui.contexts.window"
//激活键序列所使用的配置
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
//键序列
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.创建一 ... -
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 ... -
上下文菜单
2011-06-28 16:18 1407popupmenu扩展点是为各种对象上的右键弹出的菜单,添加菜 ...
相关推荐
1、数据库MySQL,连接方式有两种,一种直接JDBC,一种通过连接池,代码中有说明 用户root 密码password 不同的进行相应的改变。 <br/>Tomcat数据库连接池配置: Server.xml 增加如下内容:...
应用uni-swipe-action组件实现列表项左划操作。 真正做到开箱即用。
操作栏是一个窗口特性,确定用户的位置,和 提供用户操作和导航模式。 使用操作栏为用户提供了一个 跨应用程序系统优雅地适应熟悉的界面 对于不同的屏幕配置。
C++术语对照表 大全,abort() 特殊函数 如果一个函数抛出异常,但在通往异常函数的调用链中找不到与之匹配的catch,则该程序通常以此函数调用终止 abstract base class 抽象基类...action/decision model 操作判断模型
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 DAO --...
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
8.QTP操作Action 9.QTP验证点与测试报告 10.VBS的介绍 11.常用WEB控件介绍 12.AOM 13.场景恢复 14.正则表达式的运用 15.Html中DOM的运用 16.VBS操作数据库 17.WshShell介绍 20.函数资源库、环境变量、常用保留对象
在开发web程序时,从数据库中取出来的数据一般都要分页显示在页面上,分页显示的方法非常多,有人写自定义标签,用自己写的标签进行分页显示,我个人觉得这是一种...Action实现对业务逻辑的操作 Jsp用于显示或请求页面
主要介绍了JavaScript获取网页表单action属性的方法,涉及javascript操作表单属性的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
使用spring技术,不使用strut,hibernate 等技术实现,网站简单功能demo,希望对学习的人有用
Struts2操作同一action的不同方法跳转jar包(包括示例代码) 使用“项目名/类名!方法名.action”
对已ActionServlet的深入讲解,是您在一知半解中彻底明白来龙去脉
默认情况下,该操作将更新README.md基础上的action.yml 。 请参阅用于更改默认值的参数。用法该操作将通过替换html注释标签来更新您的自述文件。 将基于以下模板的多个标签之一添加到您<!-- action-docs-...
C++ Concurrency in Action中文 PDF清晰版 本书是并发和多线程机制指导书籍(基于C++11标准)。 从最基本的 std::thread std::mutex 和 std::async 的使用, 到 复杂的原子操作和内存模型。
Laravel开发-laravel-action-submit Laravel操作提交按钮
使用Struts的Action来对数据库进行增、删、改、查四项操作 <br/>1、数据库MySQL,创建数据库 Pagination MySQL.sql用来创建表结构 <br/>连接方式有两种,一种直接JDBC,一种通过连接池,代码中有说明...
Linq In Action(中文) 本书对你掌握LINQ的各种功能有很大的帮助。书中介绍了查询操作符、Lambda表达式和表达式树等,也提供了很多非常有用的代码片段。特别是那些混合操作多种不同数据源的例子,极其实用!.