`
卒子99
  • 浏览: 75420 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

RCP应用程序开发系列(2)--创建第一个应用程序

阅读更多

开发环境是用的Eclipse3.1

        首先,创建一个插件工程.选择 File > New > Project... 开始一个新工程向导. 选择Plug-in Project点击 Next.在这一页,输入工程的名字.我直接用的是项目的名称,输入"edu.swust.cs.soapfirewall".

       选择 Next,在这个页面可以输入插件的id, version, name, 等信息.基于工程名字,向导会初始化大部信息,需要改变的是:

      • 去除Plug-in Class选项。可能永远也不会需要一个插件类!如果你的插件需要一些信息在它第一次被访问的时候,这个时候需要插件类
       • 在Rich Client Application组中选择Yes。它会告诉向导在一页显示RCP模板,而不是标准的插件模块。
注意:这儿Classpath 项是空的. 因为在 Eclipse 3.1中,通常是会将插件打包成一个JAR文件. 这样的话,插件本身就在加入了classpath,所以这儿没有必要指定这个值.

       点击Next ,向导会显示 RCP Templates 页面. 这儿可以看到有不同类型的向导.对于入门来说,选择Hello RCP 模板来创建尽最简单的RCP应用程序。

      点击 Next 到下一页,在这个页面, 你可以确认soapfirewall 应用,可以输入窗口标题和透视图名字等.这儿可以改变应用程序窗口的标题。


      点击 Finish 来创建你的第一个Eclipse RCP 应用程序. 这个时候IDE可能会提示你是否打开插件开发透视图.它设置插件开发环境中的许多视图,对于插件开发来说,特别有用. 建议选择 Yes.
当向导结束后,你的工作台包含一个单独的edu.swust.cs.soapfirewall工程, 在工程里的src 文件夹里面包含了模板产生的 Java 源文件.
 

       如果你选择Yes 切换到插件开发透视图,你的新的在插件编辑器中打开.这个编辑器提供了一个综合视图,其中包括了plugin.xml的定义, MANIFEST.MF信息, 和 build.properties文件信息.插件编辑器同时与它们一起工作,使你能在一个编辑器中修改插件的各个信息.
 
       为了演示soapfirewall,在OverView页面的Testing部分点击链接. 点击Launch an Eclipse application 链接运行. 这样它会在自己的JVM中启动Eclipse RCP 应用程序.

       双击MANIFEST.MF文件,打开插件编辑器,可以看到,编辑器底部有插件不同部分的标签。打开Dependencies page 页面,可以看到soapfirewall插件依赖于其它的插件: org.eclipse.core.runtime 和 org.eclipse.ui.

这意味着soapfirewall插件可以使用其它插件暴露的类.它同样意味着在这些类不能在soapfirewall中使用. 这个控制类的可见性(visibility) ,这就是Eclipse模块化的概念,通过使用Eclipse从插件集中构建自己的系统.

        Dependencies 页面还有其它有用的 Dependency Analysis 工具用于帮助你在插件之间导航,找到未使用的依赖等功能

  • 关于其它插件

        你可能会问 "哪些是关于 JFace, SWT,和 OSGi的信息呢?我认为他们也应该是RCP的一部分." 为了找到答案,打开Dependencies页面,点击 Dependency Analysis,就可以看到插件的依赖层次图


       注意的是在Runtime和UI下面还有一些其它插件,例如,org.eclipse.swt,有小箭头在旁边演示。这个箭头说明了插件被他们树层次上的父插件再导出了(re-exported),同样地,任何依赖于UI插件的插件自动依赖于再导出的SWT。相似的,UI重导出了JFace和org.eclipse.ui.workbench

      Rumtime插件重新导出了OSGI,这种依赖链机制可以将其它插件暴露的API作为自身插件的一部分. 例如,UI API 中的类和方法的命名类型可以在SWT中找到.为了保证一个需要UI的插件得到一个一致的依赖链, 所以UI需要重导出SWT。记住,UI 不用重导出它知道的所有依赖插件,只暴露那些作为它的API的部分的插件。

  Extensions 提供了一种机制用于将类连接到Eclipse结构. 在extensions页面展示了soapfirewall透视图扩展. 注意它是怎么列出新的透视图类 (edu.swust.cs.soapfirewall. Perspective) 并链接到org.eclipse.ui.perspectives 扩展点。

  • 关于,Extensions和Extension Points的区别

Extensions是实现其它插件定义的扩展点,是你插件必须要做的事情,比如应用程序必须实现的Application扩展点

 

xml 代码
  1. <extension  
  2.          id="application"  
  3.          point="org.eclipse.core.runtime.applications">  
  4.       <application>  
  5.          <run  
  6.                class="org.eclipsercp.hyperbola.Application">  
  7.          run>  
  8.       application>  
  9.    extension>  

Extension Points则是定义本插件中的扩展点,可以由其它插件来实现,典型的应用如访问数据库的Dao接口等

        所有的RCP应用程序必须定义至少一个透视图; 否则无法部署视图. 每一个 IWorkbenchWindow 都有一个page. 这个page拥有它的编辑器和视图实例,通过使用激活的透视图来决定它的布局. 透视图详细的定义了在什么位置,是否显示组件,例如视图,编辑器区域和动作. 

 

分享到:
评论

相关推荐

    开发您的第一个 Eclipse RCP 应用程序

    ### 开发您的第一个 Eclipse RCP 应用程序 #### 富客户端平台 (RCP) 概述 **Eclipse Rich Client Platform (RCP)** 是一个强大的框架,旨在利用 Eclipse 平台来构建非集成开发环境 (IDE) 类型的最终用户应用程序。...

    开发你的第一个EclipseRCP应用程序汇编.pdf

    【开发你的第一个Eclipse RCP应用程序】 Eclipse Rich Client Platform(RCP)是Eclipse框架的一个组成部分,专门用于构建复杂的桌面应用程序。RCP利用Eclipse的插件体系结构,允许开发者创建具有高度可定制和可...

    Eclipse RCP Plug-in开发自学教程(Eclipse3.6)

    2. **创建第一个RCP程序** - **创建一个RCP程序**:指导读者创建基本的RCP项目,包括设置项目结构和编写启动类。 - **启动RCP程序**:介绍如何运行RCP程序,并理解程序启动过程。 - **程序VS产品**:区分程序与...

    eclipse-rcp-juno-SR2-win32-x86_64.zip

    综上所述,"eclipse-rcp-juno-SR2-win32-x86_64.zip"是一个用于开发Windows 64位系统桌面应用程序的Eclipse RCP环境,包含丰富的开发工具和强大的插件支持,为开发者提供了一个高效、可扩展的平台。

    Eclipse RCP 应用系统开发方法与实战

    Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用程序。它基于Java,提供了丰富的用户界面组件和插件机制,使得开发者能够构建功能丰富的、可扩展的应用程序。"Eclipse RCP 应用系统开发方法...

    Eclipse RCP 应用系统开发方法与实战 源代码

    工作台是RCP应用程序的核心,管理所有视图、编辑器和透视图。通过分析源码,我们可以学习如何定义和切换不同的透视图,以及如何在工作台上添加和管理UI元素。 4. **菜单和工具栏(Menus and Toolbars)** 菜单和...

    我的第一个RCP程序

    【标题】"我的第一个RCP程序"涉及到的是Eclipse Rich Client Platform (RCP)的编程基础知识,这是一种用于构建桌面应用程序的框架。RCP是Eclipse IDE背后的强大技术,允许开发者创建功能丰富的、可扩展的应用程序。 ...

    eclipse-rcp-indigo-SR2-win32-x86_64

    Eclipse RCP(Rich Client Platform)是开源的Java开发框架,由Eclipse基金会维护,用于构建功能丰富的桌面应用程序。"eclipse-rcp-indigo-SR2-win32-x86_64"是一个特定版本的Eclipse RCP平台,适用于Windows 64位...

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

    1. 创建第一个RCP程序 2. 创建菜单和工具栏 3. 查看、编辑、对话、外部JAR的用法 4. 向一个RCP应用程序产品中添加标志和帮助 每一章都基本独立于其他章节,读者可以根据自己的需求选择学习的章节。所有的代码均可...

    Eclipse RCP应用系统开发方法与实战(第四章)

    在“Eclipse RCP应用系统开发方法与实战(第四章)”中,我们将深入探讨如何利用这个平台进行高效且灵活的应用程序开发。本章节主要关注的是实战经验与具体实现步骤,旨在帮助开发者掌握Eclipse RCP的核心概念和技术...

    RCP程序设计教程打包

    - **插件开发环境(PDE)**:Eclipse内置的工具集,用于开发、调试和管理RCP应用程序和插件。 - **菜单和工具栏**:通过命令模型(Command Framework)添加自定义菜单项和工具栏按钮,实现用户界面操作。 3. **...

    Eclipse-4-RCP教程

    - **版本选择**:根据需求选择合适的版本,例如Eclipse 4.x系列适合大多数现代应用程序开发。 #### 五、安装e4工具 Eclipse 4(也称为e4)是一个现代化的UI框架,旨在简化Eclipse应用程序的开发过程。安装e4工具...

    Eclipse的RCP开发的入门教程

    开发者会学习如何创建第一个RCP应用,包括定义插件项目、构建基本UI结构和启动配置。 其次,"使用Eclipse RCP进行桌面程序开发(一):快速起步.doc"文档将引导读者迅速进入实战阶段,讲解如何搭建开发环境,配置...

    eclipse-rcp-kepler-SR2-win32-x86_64.zip

    开发者可以利用这个环境创建自己的RCP应用程序,通过编写插件并打包成新的Eclipse产品。这个版本的Eclipse RCP对Windows 64位系统的支持意味着它可以充分利用系统资源,提供更好的性能体验。 总的来说,Eclipse RCP...

    Eclipse RCP应用系统开发方法与实战(源代码)

    4. **第3章到第6章.rar** - 这部分通常涵盖RCP的基础知识,如创建第一个RCP项目、理解插件体系结构、使用RCP的UI元素(如透视图、页、视图和编辑器)、事件传递机制以及服务注册等。这是每个Eclipse RCP开发者必须...

    eclipse-rcp-2023-09-R-win32-x86-64.zip

    使用Eclipse IDE启动该环境,你可以开始创建、调试和部署你的RCP应用程序。为了开始开发,你需要配置项目设置,定义应用程序的主类,然后可以利用Eclipse的拖放界面设计工具(比如Window Builder)来构建用户界面。...

    eclipse plug-in/rcp 开发方法详解03

    - RCP应用程序由一组相互协作的插件构成,提供了丰富的用户界面和强大的功能。 3. **插件开发环境**: - 使用Eclipse IDE本身来开发Eclipse插件和RCP应用,利用"Plug-in Development Environment"(PDE)工具集。...

    RCP Plug-in开发自学教程(中国Eclipse社区首发)

    Eclipse RCP应用是由一系列插件组成的,每个插件封装了一组相关的功能。通过插件的组合,可以构建出复杂的程序。插件通过API相互通信,遵循OSGi(Open Service Gateway Initiative)标准,保证了模块间的解耦和动态...

    Eclipse RCP开发教程

    创建你的第一个 RCP 程序** 2.1. 创建一个 RCP 程序 在 Eclipse 中,开发者可以通过新建项目选择 "Plug-in Project",然后按照向导指引配置基本信息,如项目名称、目标运行环境等,即可创建一个基础的 RCP 插件...

    Eclipse RCP应用系统开发方法与实战(第三章)

    这使得RCP应用程序能够灵活地添加或移除功能,实现了高度的模块化。 在Eclipse RCP中,工作台(Workbench)是整个应用程序的核心。工作台管理着视图(Views)、编辑器(Editors)、透视图(Perspectives)等元素,为用户...

Global site tag (gtag.js) - Google Analytics