`
Jameslyy
  • 浏览: 391295 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

插件开发——基于Action的基本平台扩展点 二 : viewActions

阅读更多

org.eclipse.ui.viewActions

通过插件向工作台中已经存在的视图添加扩展功能是很常见的,这是通过org.eclipse.ui.viewActions 扩展点实现的,这个扩展点允许插件在已有视图的下拉菜单和工具栏上添加菜单项、子菜单和工具栏对象。

 

通过org.eclipse.ui.menus 扩展点也可以实现向视图添加菜单,这个扩展点通过命令对象向视图的下拉菜单和工具栏贡献菜单项或者工具栏对象。更过信息查看org.eclipse.ui.menus 。

 

可以看到,当选中一个自述文件时,项目浏览器工具栏中的一项变成可使用状态,它也出现在项目浏览器的下拉菜单中,这些action 的出现是因为自述文件工具插件是通过viewActions 扩展点创建它们的。

 

plugin.xml 中的相关声明如下:

 

<extension
    point = "org.eclipse.ui.viewActions">
      <viewContribution 
         id="org.eclipse.ui.examples.readmetool.vc1" 
         targetID="org.eclipse.ui.navigator.ProjectExplorer">        
	   <action id="org.eclipse.ui.examples.readmetool.va1" 
              label="%PopupMenu.ResourceNav.label" 
	      menubarPath="additions"
              toolbarPath="additions" 
              icon="icons/obj16/editor.png" 
              tooltip="%PopupMenu.ResourceNav.tooltip" 
   	      helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
              class="org.eclipse.ui.examples.readmetool.ViewActionDelegate" 
              enablesFor="1"> 
		<selection class="org.eclipse.core.resources.IFile" name="*.readme"/> 
	   </action>
      </viewContribution>
 </extension>

 
首先为视图扩展设定了一个唯一的id, 目标视图是通过targetID 设定的,我们扩展了项目浏览器视图的菜单,为新的action 设定了标签和在菜单栏与工具栏中的位置。(关于菜单和工具栏位置的完整的讨论,请看 Menu and toolbar paths)。

 

我们也设定了action 的可用的条件,可以看到,当一个带有".readme"后缀 (name="*.readme")一个 (enablesFor="1") IFile 类型 (class="org.eclipse.core.resources.IFile") 的文件被选中时,这个action就会处于可用状态。毫无疑问,这些正是当你在项目浏览器视图点击的时候所发生的过程。

 

plugin.xml中的这些信息是添加菜单项和工具栏项所需要的全部信息,插件代码会仅当选择了这个action时运行。为了提供action的功能行为,在plugin.xml 中配额的实现类必须实现 IViewActionDelegate 接口。

 

在这个例子中,readme 插件提供了ViewActionDelegate 类来实现action 的行为,浏览这个类,你可以看到它包括了获取所属的视图、处理选择更新、调用本省行为的方法。当调用这个action时,仅仅是打开一个对话框,表示执行了这个action。

 

 public void run(org.eclipse.jface.action.IAction action) {
	MessageDialog.openInformation(view.getSite().getShell(),
		MessageUtil.getString("Readme_Editor"),  
		MessageUtil.getString("View_Action_executed")); 
}

 

尽管这个action比较简单,但是展示了怎样通过这种方式做更多的工作。

 

  • 大小: 2.9 KB
分享到:
评论

相关推荐

    Eclipse插件开发扩展点大全(中文)

    本资源"**Eclipse插件开发扩展点大全(中文)**"正是针对这一主题,提供了详尽的中文指南,帮助开发者深入理解和利用这些扩展点。 Eclipse的扩展点是其插件机制的核心组成部分,它们定义了插件可以插入或扩展的特定...

    chrome扩展开发——自动填表实例[收集].pdf

    Chrome 扩展开发 —— 自动填表实例 本文将详细介绍 Chrome 扩展开发中的自动填表实例,通过分析 manifest.json 配置文件,了解扩展应用的权限、内容脚本、浏览器行为和弹出页面的实现机制。 一、权限...

    Chrome插件开发.pdf

    3. 添加 Browser Action:在 manifest 文件中添加 Browser Action,用于定义插件的图标和行为。 4. 创建 Background Page:创建一个 Background Page,用于处理插件的业务逻辑。 5. 添加 Content Script:添加 ...

    Illustrator插件开发指南

    总体而言,Illustrator插件开发指南为开发者提供了从基本概念到高级功能实现的全面指导,不仅包括了Illustrator API的发展历程,还涉及了如何创建和管理插件,以及与Illustrator软件交互的诸多细节。对于希望扩展...

    JSP信息办公类实例开发源码——基于struts的图书管理系统.zip

    《基于Struts的图书管理系统——JSP信息办公实例解析》 在信息技术日益发达的今天,JSP(JavaServer Pages)作为Web开发中的重要技术之一,被广泛应用于各种信息系统的设计与开发,尤其是信息办公领域。本实例——...

    IntelliJ IDEA插件开发基础(中文).pdf

    插件开发过程中,我们需要掌握以下核心知识点: 1. **插件结构**:一个基本的IntelliJ IDEA插件通常包含`plugin.xml`配置文件,用于定义插件元数据、激活范围、依赖关系等。此外,还可能包含Java源代码、资源文件等...

    Eclipse 扩展点开发

    在 Eclipse 插件开发中,扩展点(Extension Point)是一个至关重要的概念,它允许不同的插件之间通过标准化的方式进行交互和扩展。本文将深入探讨如何开发Eclipse扩展点,以及如何利用它们构建插件间的协作。 首先...

    PHP实例开发源码——wordpress语言翻译插件中文版.zip

    【描述】中提到的"PHP实例开发源码——wordpress语言翻译插件中文版.zip"进一步确认了这是一个基于PHP的项目,它是一个实际的开发实例,专注于WordPress平台上的语言翻译功能,且专为中文环境设计。这个描述暗示了...

    chrome插件开发入门教程

    Chrome 插件开发入门教程 Chrome 插件开发入门教程旨在帮助...本教程旨在为开发者提供一个快速入门 Chrome 插件开发的指南,涵盖了插件开发的基本概念、Manifest 文件的结构、模式匹配、开发和调试等方面的知识点。

    J2EE电子商务系统开发从入门到精通——基于Struts和Hibernate技术实现

    总的来说,"J2EE电子商务系统开发从入门到精通——基于Struts和Hibernate技术实现"是一个实践性强、理论与实际相结合的学习资源。通过研究这个系统,开发者不仅能掌握这两种框架的基本用法,还能了解到如何在实际...

    chrome插件开发 - tab页面切换插件

    Chrome插件开发是一个充满创新和实用性的领域,它允许开发者为全球最大的网络浏览器之一——Google Chrome,添加自定义功能和增强用户体验。在这个“chrome插件开发 - tab页面切换插件”项目中,我们关注的焦点是...

    Struts2.1权威指南——基于WebWork核心的MVC开发.pdf

    - REST支持:简化了基于RESTful Web服务的开发过程。 - Convention插件:提供了“零配置”的支持,使得开发者无需编写额外的配置文件即可完成框架的基本设置。 - Java Templates:增强了模板语言的支持,方便动态...

    IDEA插件开发笔记(二)-弹出一个自定义的dialog

    首先,我们需要理解IDEA插件开发的基本原理,然后学习如何创建、配置以及展示自定义的Dialog。 一、IDEA插件开发基础 1. **了解Plugin SDK**:IDEA插件开发主要基于Java语言,使用IntelliJ IDEA的Plugin ...

    ChromeExtensionDocument:chrome插件中文开发文档.zip

    开发Chrome扩展首先需要了解manifest.json文件,这是每个扩展的核心配置文件,包含了扩展的基本信息,如名称、版本、权限和所需脚本。例如,`manifest_version`字段定义了JSON格式的版本,`permissions`字段指定了...

    Chrome插件开发完整教程

    4. 相比Firefox插件,Chrome插件开发更为简单,且可以跨平台运行,不仅在Chrome浏览器上,还能在基于WebKit内核的其他国产浏览器上运行。 开发Chrome插件并不需要特定的项目结构或IDE,只需保证根目录下有一个`...

    基于Chrome浏览器扩展的图书采访插件开发.pdf

    ### 基于Chrome浏览器扩展的图书采访插件开发 #### 一、引言 随着教育体系对高质量人才的需求日益增长,高校图书馆作为知识资源的重要提供者,面临着一系列挑战。传统图书采访工作不仅耗时耗力,而且在面对多元化...

    jsp实例开发——购物车

    【JSP实例开发——购物车】是一个典型的网上商城系统中的重要组成部分,主要涉及网页动态编程技术JSP(Java Server Pages)以及购物车功能的实现。在这个实例中,我们将深入探讨如何利用JSP来构建一个简单但功能齐全...

    Intellij Idea插件开发分享

    ### Intellij IDEA插件开发知识点概述 #### 一、Intellij IDEA插件开发基础 - **IntelliJ Platform SDK**:IntelliJ IDEA基于自家的IntelliJ Platform SDK开发,这意味着开发者可以利用这个平台提供的API来创建...

    IOS应用源码——分享action sheet.zip

    本资源“IOS应用源码——分享action sheet.zip”显然包含了一个iOS应用程序的源代码,这个应用可能特别关注如何实现一个分享功能的Action Sheet。下面将详细介绍Action Sheet在iOS开发中的使用,以及源码中可能涉及...

Global site tag (gtag.js) - Google Analytics