`
feng88724
  • 浏览: 172330 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

RCP、PDE、Eclipse插件、模态、阻塞Eclipse平台、扩展点知识

阅读更多

1. org.eclipse.ui.actionSets
<actionSet>  --  [附件图片中的Menu Bar 和Tool Bar]
         给 Eclipse 增加主菜单和工具栏 (Workbench Window Actions)
         Action需要实现的接口  implements IWorkbenchWindowActionDelegate

这种情况下,如果需要打开的窗口是模态窗口,并且阻塞整个Eclipse平台:
那么:使用IWorkbenchWindow window
并且在 init方法中初始化(注:此方法在IWorkbenchWindowActionDelegate已声明)
	public void init(IWorkbenchWindow window) {
		this.window = window;
	}

此时,再在run方法中启动伱的界面
	public void run(IAction action) {
		MessageDialog.openInformation(window.getShell(),"Hello Plug-in","Hello, Eclipse world");
	}

注意上面的window.getShell()。
工具栏、菜单栏扩展点示例:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
   <extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            label="Sample Action Set"
            visible="true"
            id="hello.actionSet">
         <menu
               label="Sample &amp;Menu"
               id="sampleMenu">
            <separator
                  name="sampleGroup">
            </separator>
         </menu>
         <action
               label="&amp;Sample Action"
               icon="icons/sample.gif"
               class="hello.actions.SampleAction"	<!-- 指定Action类-->
               tooltip="Hello, Eclipse world"
               menubarPath="sampleMenu/sampleGroup"
               toolbarPath="sampleGroup"
               id="hello.actions.SampleAction">
         </action>
      </actionSet>
   </extension>
</plugin>

2. org.eclipse.ui.popupMenus  给 Eclipse 增加上下文右键菜单
        <objectContribution>  --  [附件中Views区,如在Navigator中选中某一文件,点击右键]
            针对选择的对象不同,显示上下文菜单 (Object Action)
            Action需要实现的接口    implements IViewActionDelegate
        <viewerContribution>  --  [附件中的Editor区,没错,就是Editor区]
            针对在不同的View里面,显示上下文菜单 (View Actions)

伱可以自己定义这个右键菜单出现在上面编辑器中。
                 比如: targetID – “org.eclipse.jdt.ui.MembersView” [没试过,不是很确定]
                 此时,Action需要实现的接口       implements IViewActionDelegate
          
比如: targetID – “#CompilationUnitEditorContext”  (Java Editor)[确定]
                 此时,Action需要实现的接口      implements IEditorActionDelegate

         另外还有个专门用于文件编辑器的右键菜单的,targetID 记不得了!好像是“#TextEditorContext”

Java Editor中,如果需要打开的窗口是模态窗口,并且阻塞整个Eclipse平台:
需要使用到IEditorSite editorSite 或者 IWorkbenchPartSite partsite
在setActiveEditor方法中初始化这两个对象(此方法在IEditorActionDelegate接口中已声明)
			public void setActiveEditor(IAction action, IEditorPart targetEditor) {
				partsite = targetEditor.getSite();
				editorSite = targetEditor.getEditorSite();
			}

此时,再在run方法中启动伱的界面
	public void run(IAction action) {
		new PPMEAddCommentGUI(editorSite.getShell(),SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);	//1
		new PPMEAddCommentGUI(partsite.getShell(),SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);	//2
	}

注意上面的editorSite.getShell() 和partsite.getShell()
Java Editor右键上下文菜单扩展点示例:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension point="org.eclipse.ui.popupMenus">
   <viewerContribution
      id="org.eclipse.ui.articles.action.contribution.popup.editor"
  	  targetID="#CompilationUnitEditorContext"> 
  	  	<menu
               label="Comment Edit"
               path="additions"
               id="second">
            <groupMarker
            	name="contents">
            </groupMarker>
            <separator
                  name="sampleGroup">
            </separator>
         </menu>
   		<action
         id="org.eclipse.ui.articles.action.contribution.editor.action1"
         label="Delete"
         icon="icons/sample.gif"
     	 menubarPath="second/contents"
         class="OldAction3">		<!-- 指定Action类-->
        </action>   		
	    <action
	     id="org.eclipse.ui.articles.action.contribution.editor.action2"
	     label="Edit"
	     icon="icons/sample.gif"
	 	 menubarPath="second/contents"
	     class="OldAction2">	<!-- 指定Action类-->
	    </action>
	    <action
	     id="org.eclipse.ui.articles.action.contribution.editor.action3"
	     label="Create"
	     icon="icons/sample.gif"
	 	 menubarPath="second/contents"
	     class="OldAction2">	<!-- 指定Action类-->
	    </action>
   </viewerContribution> 
 </extension>
</plugin>


3. org.eclipse.ui.viewActions
       <viewerContribution>
        给 Eclipse 的 View 上面的工具栏和菜单栏增加 View 系统菜单和工具栏

4. org.eclipse.ui.editorActions
     <editorContribution>
         针对不同的编辑器环境(比如JavaEditor, JSPEditor),在Eclipse主菜单上面增加不同的菜单和工具栏
        也就是说,给 JavaEditor 在 Eclipse 主菜单上面增加的菜单和工具栏,在 JSPEditor 打开的时候就看不到
分享到:
评论
2 楼 feng88724 2009-03-23  
samwalt 写道

请问通过eclipse的插件向导生成一个上下文菜单的向导,作为eclipse project运行的时候,为什么上下文菜单不显示呢?

不好意思,没能理解你的意思。你所说的“eclipse的插件向导生成一个上下文菜单的向导”是指在Eclipse中的实例吗?

另外说明一下,需要以Eclipse Application的方式来运行插件项目
1 楼 samwalt 2009-03-19  
请问通过eclipse的插件向导生成一个上下文菜单的向导,作为eclipse project运行的时候,为什么上下文菜单不显示呢?

相关推荐

    Eclipse插件RCP中文入门教程.pdf

    ### Eclipse插件RCP中文入门教程关键知识点解析 #### 一、Eclipse平台概述与起源 Eclipse平台是一个开源的、基于Java的可扩展开发框架,由一系列服务和框架构成,旨在通过插件组件构建高度定制化的开发环境。...

    Eclipse常用插件扩展点

    本篇文章将深入探讨Eclipse插件开发中的关键知识点,包括插件扩展点、RCP(Rich Client Platform)应用开发以及如何在Eclipse RCP中整合第三方库。 首先,让我们了解Eclipse插件扩展点。扩展点是Eclipse平台提供的...

    RCP 常见的扩展点指南

    RCP 的扩展点是其核心组成部分之一,插件可以通过定义自己的扩展点来提供特定的功能。在 Eclipse 中,插件可以通过 plugin.xml 文件中的扩展点来配置其功能,并提供对应的类来实现这些功能。熟悉 RCP 的扩展点是开发...

    eclipse插件开发步步教你

    本教程旨在逐步指导初学者进行Eclipse插件的开发,通过实例演示如何利用Eclipse平台的API和扩展点来实现各种功能。 首先,我们要理解Eclipse插件的基本概念。Eclipse插件是基于OSGi模块系统构建的,每个插件都是一...

    Eclipse RCP 插件开发指南

    扩展点(Extension Point)是 Eclipse RCP 中用于定义插件之间交互的一种机制。通过定义扩展点,一个插件可以公开其部分功能供其他插件使用。扩展点通常在插件的 `plugin.xml` 文件中定义,其他插件可以通过贡献扩展...

    Eclipse插件开发扩展点API中文.chm

    6. **插件开发工具**: Eclipse提供了PDE(Plugin Development Environment)工具,用于简化插件和RCP(Rich Client Platform)应用的开发,包括图形化的plugin.xml编辑器。 7. **运行时模型**: 插件在Eclipse运行...

    Eclipse插件开发方法与实战

    下面,我们将详细讨论Eclipse插件开发的相关知识点。 1. **Eclipse插件体系结构**: - Eclipse采用插件化架构,每个功能模块都是一个插件,通过OSGi(开放服务网关规范)框架进行管理和交互。 - 插件之间的依赖...

    eclipse RCP学习项目源码&amp;扩展控制台插件for eclipse3.5

    这个压缩包包含的“eclipse RCP学习项目源码&扩展控制台插件for eclipse3.5”是针对Eclipse 3.5版本的一个学习资源,它涵盖了RCP应用开发的基础和如何创建自定义控制台插件。 首先,RCP项目源码是理解Eclipse RCP...

    Eclipse Rcp

    Eclipse RCP是一种基于Eclipse平台的富客户端平台技术,它允许开发者创建独立于Eclipse环境的Java桌面应用程序。RCP通过提供一套标准组件和API,简化了桌面应用程序的开发流程,使开发者能够专注于业务逻辑而非界面...

    Eclipse插件开发Eclipse插件开发

    3. **扩展点和扩展**:Eclipse的插件机制基于扩展点和扩展的概念。扩展点定义了插件可以插入的位置,而扩展则表示插件实际插入的地方。在plugin.xml中,你可以声明你的插件要扩展哪个扩展点,以及如何扩展。 4. **...

    Eclipse插件开发学习笔记全篇+源码.rar

    本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...

    Eclipse插件开发笔记源码

    下面将详细阐述Eclipse插件开发的相关知识点。 1. **Eclipse插件体系结构**: Eclipse采用插件化架构,每个功能模块都是一个插件,这些插件通过OSGi(开放服务网关协议)框架进行交互。开发者可以通过编写插件,...

    Eclipse插件开发文档

    以下将详细介绍Eclipse插件开发的相关知识点。 一、Eclipse插件体系结构 Eclipse基于OSGi(Open Service Gateway Initiative)框架构建,它将整个IDE分解为可互换的模块,即插件。每个插件都有自己的生命周期、依赖...

    eclipse插件开发: rcp/swt相关资料

    Eclipse插件开发是Java开发领域中的一个重要组成部分,它允许开发者构建基于...掌握以上知识点,并通过实际项目练习,开发者可以熟练地进行Eclipse插件开发,利用RCP和SWT构建出高效、美观且功能强大的桌面应用程序。

    神州数码 Eclipse插件开发面试

    下面将详细介绍Eclipse插件开发的相关知识点。 一、Eclipse插件体系结构 Eclipse基于OSGi(Open Service Gateway Initiative)框架构建,采用模块化设计,每个模块称为插件。这些插件通过API进行交互,形成了一个可...

    eclipse插件及RCP开发资料.rar

    4. **扩展点与扩展**:Eclipse中的扩展点是定义其他插件可以插入的接口,而扩展则是实现这些接口的具体插件。通过这种方式,插件之间可以互相协作。 5. **插件部署**:开发完成后,插件通常被打包成一个.jar文件或....

    eclipse RCP Plug-in开发自学教程.pdf

    eclipse RCP(Rich Client Platform)是一种基于eclipse的插件式开发平台,允许开发者使用eclipse结构风格设计弹性的可扩展的应用程序。RCP插件式开发方式可以重用eclipse中的方法和编码模式,提高开发效率和代码...

    Eclipse扩展点

    Eclipse扩展点 Eclipse扩展点是Eclipse平台的一种机制,允许开发者扩展Eclipse的功能,使其满足特定的需求。扩展点是Eclipse插件的核心组件,通过...扩展点可以应用于插件开发、Eclipse平台开发和RCP应用开发等领域。

Global site tag (gtag.js) - Google Analytics