filter元素是用来指定当前的contribution是否可用, 它的用法跟visibility中的objectState类似, 比如只有选择的对象为只写才可用, 那么可以这样写:
xml 代码
<objectContribution ...>
<filter name="readOnly" value="false"/>
... the other stuff here ...
objectContribution>
和objectState 一样,filter使用的进行测试的对象必须实现IActionFilter接口或者能适配为IActionFilter, 然后调用testAttribute()方法来跟指定的name/value进行比对, 对于Resource来说, 它提供了下列属性让我们来进行比对
name,表示对文件名进行比对, 可使用*这种正则表达式
extension表示后缀名比对
path路径比对, 可使用*
readOnly只读比对
projectNature 对nature比对
persistentProperty 对选择的资源的持久属性进行比对, 如果他的值只是一个字符串,那么就对该资源已有的属性值拿出来进行比对, 如果是propertyName=propertyValue这种形式,那么先根据name从选择的对象中取出值,然后再跟指定的value进行比对
projectPersistentProperty 对选中对象所在工程的持久性属性进行比对
sessionProperty 对对象中对的session属性进行比对
projectSessionProperty 选中对象所在工程的session属性进行比对
selection 元素主要针对contribution中某个action是否可见来进行判断,比如说下面这样写:
xml 代码
<objectContribution
objectClass="java.lang.Object"
id="com.qualityeclipse.favorites.popupMenu">
<action
label="Add to Favorites"
tooltip="Add the selected resource(s) to the
Favorites view"
class="com.qualityeclipse.favorites.actions.
AddToFavoritesActionDelegate"
menubarPath="additions"
enablesFor="+"
id="com.qualityeclipse.favorites.addToFavorites">
<selection
class="org.eclipse.core.resources.IResource"
name="*.java"/>
action>
objectContribution>
这里的意思是com.qualityeclipse.favorites.popupMenu下的action在任何情况下都是可见的,只有Add to Favorites只有在选中的对象实现了IResource接口且文件名后缀为java才可见
enablement元素 也是针对单个action的, 它集selection和visibility两个元素的强大于一身,举个例子就明白了:
xml 代码
<objectContribution
objectClass="java.lang.Object"
id="com.qualityeclipse.favorites.popupMenu">
<action
label="Add to Favorites"
tooltip="Add the selected resource(s)
to the Favorites view"
class="com.qualityeclipse.favorites.actions.
AddToFavoritesActionDelegate"
menubarPath="additions"
enablesFor="+"
id="com.qualityeclipse.favorites.addToFavorites">
<enablement>
<and>
<objectClass
name="org.eclipse.core.resources.IResource"/>
<objectState name="name" value="*.java"/>
and>
enablement>
action>
objectContribution>
根据文件内容关联contribution
比如一般我们的Run Ant...菜单项是跟build.xml文件关联的, 如果要跟export.xml也关联, 那么我们就需要通过对xml的DTD声明进行判断是否可以关联, 为了处理这种情况org.eclipse.ant.core 定义了一种叫antBuildFile 的content type:
xml 代码
<extension point="org.eclipse.core.runtime.contentTypes">
<content-type
id="antBuildFile"
name="%antBuildFileContentType.name"
base-type="org.eclipse.core.runtime.xml"
file-names="build.xml"
file-extensions="macrodef,ent,xml"
priority="normal">
<describer
class="org.eclipse.ant.internal.core.
contentDescriber.AntBuildfileContentDescriber">
describer>
content-type>
extension>
在AntBuildfileContentDescriber 类中将判断xml文件是否是ant内容, 接下来我们就可以通过使用antBuildFile来指定contibution是否可用.
分享到:
相关推荐
Eclipse Action 深入学习涉及了许多核心概念和机制,它是Eclipse插件开发中不可或缺的部分,用于构建用户界面的交互元素,如菜单、工具栏和上下文菜单。以下是对这些概念的详细解释: 1. **IActionDelegate**: ...
《Eclipse In Action》是一本深入探讨Eclipse集成开发环境(IDE)的专业书籍,被誉为学习Eclipse的必备宝典。本书全面覆盖了Eclipse的各项功能和应用,旨在帮助开发者充分利用这个强大的工具提升开发效率和代码质量...
Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...
第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(Perspective)等10章的内容;第三篇主要讲述插件开发的高级内容,包括开发高级内容...
Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...
书将指导读者学习如何开发自己的Eclipse插件,以满足特定需求或增强IDE功能。 8. **Web和企业应用开发** 除了Java桌面应用,Eclipse还支持Web和企业级应用的开发。书会涉及动态Web项目、Java EE服务器的配置,以及...
每个主题都需要深入学习和实践,以充分理解和掌握Eclipse RCP的强大功能。 总的来说,Eclipse RCP提供了丰富的工具和框架,使得开发者能够构建出功能强大的桌面应用程序。通过逐步学习和实践,你可以逐步掌握这一...
4. **调试工具**:深入学习Eclipse的调试器,包括设置断点、单步执行、查看变量值、调用堆栈分析等,以帮助开发者高效定位和解决问题。 5. **构建工具**:介绍使用Ant和Maven进行项目构建,理解构建脚本的编写和...
第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(Perspective)等10章的内容;第三篇主要讲述插件开发的高级内容,包括开发高级内容...
第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、...
### Eclipse in Action: 第二章知识点详述 #### 一、获取Eclipse 在开始学习Eclipse之前,首先需要从Eclipse官方网站下载安装软件。Eclipse官网提供了多种版本供用户选择,具体可以从以下地址访问:...
Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...
3. **项目管理和构建**:书中会涵盖Eclipse的项目结构,如何创建、导入和管理项目,以及使用构建工具如Ant或Maven进行自动化构建。 4. **编辑器和代码辅助**:Eclipse的强大在于其智能代码编辑器,提供语法高亮、...
第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包括行为(Action)、视图(ViewPart)、编辑器(Editor)、透视图(Perspective)等10章的内容;第三篇主要讲述插件开发的高级内容,包括开发高级内容...
1. 创建菜单和工具栏:通过编程或者使用Eclipse的图形化工具(如Perspective Editor和Action Set Editor)来添加菜单项和工具栏按钮。 2. 绑定事件处理:为菜单项和工具栏按钮关联相应的事件处理器,实现功能逻辑。 ...
Eclipse插件开发 学习笔记 第一篇 开发基础(01-05).rar Eclipse插件开发 学习笔记 第一篇 开发基础(06-10).rar Eclipse插件开发 学习笔记 第二篇 核心技术(11-16).rar Eclipse插件开发 学习笔记 第二篇 核心技术(17-...
【标题】"ViewDragHelper初步学习 Eclipse版本"涵盖了Android开发中的一个重要组件——ViewDragHelper,这是一个用于在ViewGroup中处理视图拖放的工具类。在这个项目中,开发者提供了Eclipse版本的源代码,便于初学...
《Eclipse in Action》这本书是关于Eclipse集成开发环境(IDE)的一本实践指南,它深入浅出地介绍了如何高效地使用Eclipse进行软件开发。Eclipse作为一个强大的开源平台,被广泛应用于Java、C++、Python等众多编程...