- 浏览: 340539 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
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 1086public class AddressView ext ... -
CoolBar
2012-12-16 15:12 1873CoolBar是一个容器,里面可以放置多个工 ... -
ViewForm
2012-12-16 14:53 1497ViewForm是一个容器,它是编辑器的基座,用来 ... -
SWT容器类
2012-12-16 14:34 3276容器类 我们可以通过容器对组件进行统 ... -
多页编辑器
2012-11-12 17:40 1460资源里存储了用户需要的信息,而编辑器是用户创 ... -
控件支持键盘操作
2012-11-12 14:48 867支持键盘删除操作 private void hookK ... -
eclipse表单
2012-11-09 17:45 1603eclispe表单,它的作用就是使swt/jf ... -
视图工具栏
2012-11-08 17:41 889通过编程方式添加视图工具栏和下拉菜单 priva ... -
几个常用的监听器
2012-11-08 17:38 1258为表格或列表查看器添加选择更改监听器 org.ecli ... -
显示上下文菜单
2012-11-08 17:31 1198通过扩展点添加菜单时,必须添加下面的方法,才能显示上下文 ... -
TableView排序
2012-11-08 17:28 894给TableViewer添加排序器的方法: 1.创建一 ... -
操作Action
2012-11-07 17:32 1983IActionDelegate的子类型有IWork ... -
eclipse整体概况
2012-11-07 17:25 1036eclipse通过插件的依赖关系将不同的插件联 ... -
事件监听
2012-07-25 00:03 954一、概述 1.用户在UI界面上的不同操作,会产生不同的 ... -
绘制图形
2012-07-09 22:45 877swt中的绘图功能是通过org.eclipse.s ... -
系统资源类
2012-07-09 00:12 967一、概述 ... -
表格查看器
2012-07-02 00:12 963package com.test.cxm.plugin0 ... -
常用的布局管理器
2012-07-01 18:29 1287SWT有2种控制控件位置和大小的方法:绝对定位和托管定位。 ... -
常用窗口小部件使用实例
2012-06-29 00:24 1380package com.test.cxm.plugin01.p ... -
SWT概述
2012-06-28 23:46 1020import org.eclipse.swt.layout.F ...
相关推荐
Android 实现上下文菜单、下拉菜单、选项菜单代码详解 Android 中的菜单系统是一个非常重要的组件,它提供了多种方式来帮助用户与应用程序进行交互。在本文档中,我们将详细介绍如何实现上下文菜单、下拉菜单和选项...
在Android应用开发中,上下文菜单(Context Menu)和上下文操作模式(Contextual Action Mode)是两种常见的用户交互设计,它们提供了在特定情境下对数据进行操作的界面。这两种设计模式在处理列表、网格或其他可选元素...
在Android开发中,上下文菜单(Context Menu)是一种常见的交互元素,它允许用户在长按某个视图或项时出现一个包含相关操作的弹出菜单。上下文菜单通常用于提供与特定视图或数据相关的动作选项,而不是全局的操作。在...
上下文菜单是用户界面设计中的一个重要元素,它在用户与应用程序交互时提供了便捷的操作选项。在Android、iOS、Windows等操作系统以及许多Web应用中,上下文菜单常常扮演着快速访问功能的角色。当用户对特定视图执行...
本篇文章将深入探讨如何在ListView中实现单击和长按事件,弹出上下文菜单(ContextMenu)。这通常用于提供针对列表项的快捷操作,提升用户体验。 首先,我们需要在清单文件(`AndroidManifest.xml`)中为我们的Activity...
在编程和软件开发中,上下文菜单(Context Menu)是一种常用的人机交互元素,它根据用户的操作环境提供相关的操作选项。在编辑框中,上下文菜单通常包含与文本操作相关的命令,如复制、粘贴、剪切等。本文将深入探讨...
在Android开发中,"上下文菜单(Context Menu)"和"ListView"是两个非常重要的组件,尤其在构建用户交互界面时。本文将深入探讨如何在Eclipse环境下利用这两个组件创建一个功能完善的移动应用。 首先,让我们了解**上...
本案例深入探讨了菜单的三种主要类型:普通菜单(Option Menu)、子菜单(Submenu)以及上下文菜单(Context Menu)。下面将详细阐述这三种菜单的使用方法、特点及其实现代码。 1. 普通菜单(Option Menu) 普通菜单通常...
Android ContextMenu实例,为EditText文本框添加上下文菜单,菜单激活并显示的方式是,用户在EditText输入框上面长按2秒,即可弹出上下文菜单,如运行截图所示的效果,为实现此功能,创建了onCreateContextMenu ...
在IT领域,编辑框上下文菜单是用户界面中常见的元素,尤其在开发Windows应用程序时,如使用VC++6.0和MFC库。上下文菜单(也称为弹出菜单或右键菜单)提供了与特定对象相关的操作选项,当用户在编辑框上点击鼠标右键...
在IT行业中,上下文菜单(Context Menu)是用户界面中不可或缺的一部分,它为用户提供了一种在特定场景下访问相关操作的便捷方式。特别是在C#编程环境下,上下文菜单的使用可以极大地提高应用程序的易用性。本文将...
本教程将深入探讨如何使用Kotlin实现上下文菜单(Context Menu),这对于任何想要提升Android应用交互体验的初学者来说是十分重要的知识点。 首先,我们需要理解上下文菜单的概念。在Android中,上下文菜单(Context ...
在Android应用开发中,选项菜单(OptionsMenu)和上下文菜单(ContextMenu)是两种常见的交互方式,用于提供用户在特定场景下的操作选择。本项目通过Android Studio实现,将这两种菜单集成在一个应用中,使得用户...
在Swift iOS应用开发中,上下文菜单(ContextMenu)是一种常用的设计模式,用于提供与特定视图内容相关的操作选项。这种设计灵感往往来源于优秀的第三方应用,比如Things 3,它以其直观且高效的用户界面赢得了广大...
在Android应用开发中,上下文菜单(Context Menu)、选项菜单(OptionsMenu)和子菜单(Submenu)是三种重要的交互方式,用于提供用户与应用界面的多种操作选项。它们各自有不同的应用场景和设计规范,对于提升用户体验至...
在.NET框架中,使用Visual Studio C++进行编程时,为控件添加上下文菜单是常见的需求,这可以增强用户交互性并提供定制的功能选项。上下文菜单,也称为右键菜单,是在用户对控件执行右键点击时显示的一系列命令选项...
【创建上下文菜单的原理与实现】 上下文菜单,又称为右键菜单,是指当用户在网页或应用程序中右键单击时出现的定制化功能列表。这些菜单提供了与当前选择相关的操作,使得用户能够更方便地进行交互。在本文中,我们...
上下文菜单扩展是Shell扩展的一种常见形式,它允许开发者在用户右键点击文件或文件夹时添加自定义的操作选项。这篇"Windows Shell扩展编程傻瓜手册大全:上下文菜单扩展"详细介绍了如何实现这一功能。 首先,开发上...
在Windows 11操作系统中,微软引入了全新的用户界面,其中包含了现代风格的上下文菜单。这个设计旨在提供更简洁、直观的体验,但有些用户可能更习惯于经典的Windows 7或10版本的上下文菜单。针对这些用户的偏好,...