收藏 分销(赏)

基于Eclipse平台“编辑助手”插件开发与实现论文.doc

上传人:仙人****88 文档编号:9197664 上传时间:2025-03-16 格式:DOC 页数:47 大小:947.50KB
下载 相关 举报
基于Eclipse平台“编辑助手”插件开发与实现论文.doc_第1页
第1页 / 共47页
基于Eclipse平台“编辑助手”插件开发与实现论文.doc_第2页
第2页 / 共47页
点击查看更多>>
资源描述
毕业设计(论文) 设计(论文)题目: 基于Eclipse平台“编辑助手”插件 开发与实现 学生姓名 学生学号 专业班级 指导老师 院长 (系主任) 年5月 23日 软件学院 毕业论文 第 I 页 基于Eclipse平台“编辑助手”插件开发与实现 摘 要 Eclipse是IBM向开放源码社区捐赠的开发框架,一个基于Java的可扩展开发平台,这个平台本身是由多个子系统构成的,而每个子系统又是由一个或多个建立在平台运行库(Platform Runtime)之上的插件实现的。 Eclipse是一个优秀的集成开发环境,它的插件扩展机制更是它的特点和优势所在。Eclipse本身提供了一个用于开发插件的框架,本论文目的就在于从了解Eclipse的平台体系结构开始,逐步深入到它的插件扩展机制以及插件的工作原理,并在Eclipse提供的插件开发环境中开发一个小型插件。 论文的主要工作在于熟练掌握插件扩展点的运用,同时设计并实现一个具有灵敏辅助提示的java源文件编辑器和提供搜索功能的插件,通过实现特定的扩展点与Eclipse平台实现无缝集成。本论文所做的具有探索性和创新性的工作可为读者更快更好地熟悉Eclipse插件开发提供一个实际的、可视化的参考,与读者共享在Eclipse平台上开发的乐趣所在。 关键字: Eclipse,插件,编辑器,内容灵敏提示,搜索 软件学院 毕业论文 第 39 页 IDE Design of memory assistant based on Eclipse platform Abstract Eclipse is a development frame which IBM donated to the open source community and an expansive platform based on Java. Many subsystems constitute the platform, but each sub- system also is realized by one or more plugins which are based on platform runtime.As an int- egrated development environment Eclipse is extremely outstanding without doubt, but the ex- pansive mechanism of plug-in is the very characteristic and superiority of it. Eclipse itself provided a frame to develop plug-in. And this paper is aimed to penetrate into its ex-pansive mechanism of plugin gradually from the beginning of understanding the platform architecture of Eclipse, and then develop a small plug-in under plug-in development environment (PDE) provided by Eclipse. The major work of this paper is to grasp the key of expansive mechanism of plug-in- setting of extension-point, design and realize a java source code editor providing sensitive assistant and loacal document search , then integrate with Eclipse platform seamlessly by extension-point. The explo-ration and innovation work this paper does, can provide the reader an actual and visible reference to get familiar with Eclipse plug-in development sooner and better, and share the pleasure experiences of development in the Eclipse platform with the readers. Keywords: Eclipse, Plug-in, editor, content sensitive assistant, search 软件学院 目 录 基于ECLIPSE平台“编辑助手”插件开发与实现 I 摘 要 I 1. 绪论 1 1.1 课题背景 1 1.2 论文结构及主要内容 1 1.3 ECLISPE平台简介 2 1.4 ECLISPE插件开发概述 3 1.4.1 插件开发简介 3 1.4.2 插件开发的优势和不足 4 2. ECLLPSE平台及插件扩展机制 5 2.1 ECLIPSE平台技术概述 5 2.1.1平台体系结构 5 2.1.2平台组件层次 7 2.2 ECLIPSE平台插件扩展机制的实现 7 2.2.1适配器模式简介 7 2.2.2 IAdaptable接口 8 3. 编辑助手插件的需求与设计 10 3.1 需求概述 10 3.1.1 运行环境 10 3.1.2 功能需求 10 3.2 结构设计 10 4. 编辑助手插件的开发与实现 12 4.1前置条件 12 4.1.1 开发环境 12 4.1.2 插件开发引用的开源项目 12 4.1.3 图形界面开发包 13 4.2 在ECLIPSE中进行插件开发 14 4.2.1 插件建立 14 4.2.2 扩展设置 15 4.2.3 插件实现 17 4.2.4 插件成品 27 4.2.5 插件发布 30 5. 开发难点与解决途径 31 5.1 JAVA源文件的解析 31 5.2插件的依赖性和使用第三方JAR文件 32 5.3WORD文档的内容提取 33 5.4 PDF文档的内容提取 34 5.5 资料问题如何解决 34 结 论 36 致 谢 37 参考文献 38 附 录 40 1.1. 附录A :引用 40 1.2. 附录B :ECLISPE插件的安装及卸载 40 1.2.1. ECLIPSE插件的安装 40 1.2.2. ECLIPSE插件的卸载 41 1.3. 附录C:相关资源 41 1. 绪论 1.1 课题背景 自古以来就有得人心者得天下的道理,对全球数千万的程序员来说一个简单易用,功能完备的开发编译平台是具有独特的吸引力的。所以世界知名软件厂商不惜花费巨资投入到IDE平台的开发中。像微软的visual studio 平台,Borland 的Jbuilder,Sun 公司的 Netbeans ,IBM的 Eclipse 这些开发平台很大的提高了开发人员的开发效率。而开发平台最具吸引力的就是在编辑中自动产生的提示,这样开发者只需键入一些字符,快速的选择提示内容一行代码就很快的完成,同时也避免了因键入字符错误而导致的一些编译错误。像visual stution,Jbuilder和Netbeans的这方面都做得相当不错,而eclipse只支持当键入字符“.”时提供上下文提示,或者按帮助的组合键才显示帮助提示。本课题主要是研究设计实现更灵敏的提示,当键入任何字符都提示,不用按帮助的组合键,进而提高易用性。 在我们编辑源文件时,经常需要查找相应类的方法和用法。通常需要上网查找官方文档和一些类的API文档,还有就是我们对收集到的资料很难做到合理的分类,要查找已有的资料依旧要花费不少功夫。所以本课题还包括设计实现一个搜索功能,包括在线搜索和本地搜索。 1.2 论文结构及主要内容 论文是按照一般思维习惯来组织。 从绪论部分将尽量给出一个关于Eclipse平台比较综合和简介,然后紧接着便介绍本文的重点,即Eclipse插件开发的一些基本概念。 本文的第二部分是绪论部分的一个深入,这部分承上启下,为后续部分实际的插件开发提供理论支持与指导。这一部分更加透彻地讲解了Eclipse平台的体系结构和其插件扩展的实现机制。 本文的第三部分是本次设计的基础部分本插件的功能需求和系统结构。 本文的第四部分内容是本插件在Eclipse插件开发环境中的整个开发流程。其中首先从平台的搭建,开发所使用图形界面开发包的选择说起,然后介绍如何建立一个插件,再介绍如何设置插件关键的扩展点,之后是实现部分的所有方法列表以及插件成品的演示和如何发布一个插件。 本文的第五部分是本人在开发本插件整个过程中所遇到的问题及相应的解决途径。包括java 源文件的解析问题,建立索引时提取word和pdf文件内容以及使用第三方jar文件时所要做的配置。 本文第六部分是本人此次毕业设计一些心得和经验教训的总结部分。 本文第七部分表达了本人对所有无私关心和支持过本人的同学,老师的衷心谢意。 本文第八部分列举了此次设计过程中主要的参考文献。 本文第九部分,也即是最后一个部分,包括本文的引用并详细介绍了如何安装和卸载Eclipse插件以及本插件的数据库设计等。因为本插件实现中的一些主要源代码已经在论文第四和第五部分提及,故该部分并不包含源代码相关内容。 以上便是本论文的基本结构和主要内容。 1.3 ECLISPE平台简介 Eclipse平台是IBM向开放源码社区捐赠的开发框架,它之所以出名并不是因为IBM宣称投入开发的资金总数4千万美元,而是因为如此巨大的投入所带来的成果:一个成熟的、精心设计的以及可扩展的体系结构。Eclipse 的价值是它为创建可扩展的集成开发环境提供了一个开放源码平台。 图1-1 Eclipse开发平台(3.1.1中文版) Eclipse有强大的集成开发环境,主要包括Eclipse平台本身和一套工具。其中包括一个JDE ( Java 开发环境) 和PDE (插件开发环境) 及其他一系列所有开发相关工具插件。值得注意的是, C/C++的开发环境插件最近也已经发布。其它内嵌的功能插件包括:基于Ant的编译工具、基于GDB 的调试工具、Compare 通用比较工具、Scripting脚本支持工具、Search 集成功能的搜索工具、内嵌及在线Help 帮助文档,Java 界面SWT/JFace标准窗口工具包(Standard Widget Toolkit)等。 Eclipse的插件扩展机制是其最突出的特点和优势,这使Eclipse提升到了一个平台的高度。Eclipse的插件开发环境(即PDE)可以被用来开发插件,随己所需地扩展Eclipse的功能。这样的插件形式是多种多样的,可以是一种编程工具,如C/C++、JSP、PHP,也可以是一个应用系统,如信息管理系统等。 Eclipse的插件机制使得Eclipse具有了无限扩展的可能。 1.4 ECLISPE插件开发概述 1.4.1 插件开发简介 插件的无处不在,像音视频播放软件WINAMP绚丽多彩的皮肤插件,Windows Media Player的众多外观插件以及能够增强音效和视频功能的插件等等。但是插件不仅在于只是主软件的边角料,Eclipse插件就与众不同。 Eclipse中有三个最吸引人的地方:一是创新性的图形API,即SWT/JFace;二是插件机制;三是利用Eclipse插件机制开发的众多功能强大的插件。Eclipse也是对插件概念发挥得最炉火纯青的一个软件,插件成就了Eclipse成功的今天。 Eclipse的内核很小,其他功能都是基于这个内核上的插件,如Eclipse自带的JUnit、Ant等。而且Eclipse还开放了自己的插件机制,并提供了良好的插件开发环境,让用户可以轻松开发Eclipse插件。Eclipse的插件能够达到很高的程度,如Eclipse上流行的插件,用于UML建模的Together for Eclipse、用于J2EE的Lomboz和MyEclipse、IBM的Java开发工具WSAD、SYSDEO公司的Tomcat for Eclipse服务器插件等。这些全是Eclipse的插件。甚至程序员可以把Office、Photoshop等软件做成Eclipse的插件, Eclipse中的绘图API,即Draw2D的功能也是很强的。尽管Eclipse主要是一个Java开发环境,但其体系结构确保了对其它编程语言的支持。比如C/C++开发工具箱(C/C++ Development Toolkit,CDT),这是可用于Eclipse的最佳 C/C++ 工具箱。 Eclipse各式插件的出现正如雨后春笋,Eclipse本身已经超越了开发环境的概念,而将成为一个通用的平台,让尽量多的软件作为插件集成在上面,成为未来的集成桌面环境。 1.4.2 插件开发的优势和不足 把一个软件写成Eclipse插件有很多好处。对于用户来说Eclipse的使用环境比较友好,前面谈到的SWT/JFace中还是比较基本的界面元素,像Eclipse中的视图、编辑窗、停泊窗这些界面如果用Application的方式实现会很麻烦,但用Eclipse插件来实现,则不费吹灰之力。因此,Eclipse插件最大的优点就是界面友好、风格统一,特别是对于熟悉Eclipse操作的用户,这种优势会更明显。其次插件的安装和卸载都很方便,详见附录。 当然将软件写成插件形式也有一定的缺陷。比如插件必须依附于Eclipse运行,如果要安装插件就得首先安装Eclipse;并且插件和Eclipse融合在一起,原Eclipse的一些菜单和工具栏无法完全屏蔽。 2. ECLLPSE平台及插件扩展机制 Eclipse平台为工具提供者提供了一种机制,使得各种工具能够无缝集成。这些机制通过API接口、类和方法来体现。Eclipse平台负责处理基本环境的后台工作,并提供标准的用户导航模型[1]。同时,Eclipse平台提供开发新插件的框架(如PDE),使开发插件工作变得简单易行。 2.1 ECLIPSE平台技术概述 Eclipse平台是在其上创建插件扩展的核心框架和服务的名称,它提供了在其中装入和运行插件的运行时。Eclipse平台本身并不是一个完整的产品,平台的直接客户是工具构建器或者是独立软件开发商(ISV),它们以插件的形式集成到Eclipse平台中,从而使它们能够物尽其用。 Eclipse平台的设计和构建是为了满足下述需要: 1. 支持多种应用开发工具,如Java程序开发工具(JDT)、C程序开发工具(CDT)。 2. 支持无限制的工具提供者,包括ISV。 3. 支持任意的文件格式(例如,HTML、Java、C++、JSP,EJB、XML、GIF)。 4. 帮助不同工具提供者的无缝集成。 5. 支持GUI和基于非GUI的应用开发环境。 6. 支持在不同操作系统上运行,包括Windows和Linux[2]。 2.1.1平台体系结构 Eclipse平台定义了一个开放式体系结构,以使每个开发小组都能专注于擅长的领域。它是一组强大服务的框架,这些服务支持插件,比如 JDT 和插件开发环境(PDE)。它由几个主要的部分构成:平台运行库、工作区、工作台、团队支持和帮助。该结构如图2-1所示。 1.平台运行时(Platform Runtime) 平台运行库是内核,在启动时检查已安装了哪些插件,并创建关于它们的注册信息。为降低启动时间和资源使用,在实际需要任何插件时才加载该插件。除了内核外,其他所有部件都是作为插件来实现的。 图2-1 Eclipse平台体系结构 2.工作区(Workspace) 工作区是负责管理用户资源的插件。包括用户创建的项目、那些项目中的文件,以及文件变更和其他资源。工作区还负责通知其他插件关于资源变更的信息,比如文件创建、删除或更改。 3.工作台(Workbench) 工作台为 Eclipse 提供用户界面,使用标准窗口工具包(SWT)和一个更高级的API(JFace)来构建;SWT是Java的Swing/AWT GUI API的非标准替代者,JFace则建立在SWT基础上,提供用户界面组件。 SWT已被证明是Eclipse最具争议的部分。SWT比AWT/Swing更紧密地映射到底层操作系统的本机图形功能,这不仅使得SWT更快速,而且使得Java程序具有更像本机应用程序的外观和感觉。使用这个新的GUI API可能会限制Eclipse工作台的可移植性,不过针对大多数流行操作系统的SWT移植版本已经可用。 Eclipse对SWT的使用只会影响Eclipse自身的可移植性,即使用 Eclipse 构建的任何Java应用程序都不会受到影响,除非使用SWT而不是使用 AWT/ Swing。 4.团队支持(Team) 团队支持组件负责提供版本控制和配置管理支持,根据需要添加视图,以允许用户与所使用的任何版本控制系统交互。大多数插件都不需要与团队支持组件交互,除非提供版本控制服务。 5.帮助(Help) 帮助组件具有与Eclipse平台本身相当的可扩展能力。与插件向Eclipse添加功能相同,帮助提供一个附加的导航结构,允许工具以HTML文件的形式添加文档。 6.Eclipse 的前景 围绕Eclipse的开发正处于关键阶段。主要软件工具提供商都参与进来了,并且开放源代码Eclipse 插件项目的数量正在与日俱增。可移植、可扩展、开放源代码的框架并不是个新思想,但是由于它成熟、健壮和优雅的设计,Eclipse带来了全新的动力。IBM价值4000万美元的世界级软件在开放源代码领域的发布,给业界带来了久违的震撼。 2.1.2平台组件层次 1.独立于用户界面的核心层(Core) Workspace:负责管理一个或多个顶级项目; Runtime:定义了插件的基础设施,它启动时发现所有可用的插件,并负责管理插件的加载。 2.UI层 Workbench:定义Eclipse的UI集合体,主要是:编辑器、视图、视角; JFace:一组比较小的UI框架,建立在SWT之上; SWT:标准组件工具包,提供图形展示功能,并定义了一组标准的窗体组件。 如图2-2所示。 图2-2 Eclipse平台UI层结构 2.2 ECLIPSE平台插件扩展机制的实现 2.2.1适配器模式简介 Adapter(适配器模式)的意图在于将一个类的接口转换成客户希望的另一个口。Adapter 模式使得一些类由于接口不兼容而不能一起工作成为过去。 这个模式适用于以下环境: 1.想使用一个已经存在的类,而它的接口不符合需求。 2.想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。 3.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。 2.2.2 IAdaptable接口 IAdaptable是Eclipse里一个非常重要的接口。核心运行时的类型扩展机制 IAd- aptable需要通用,做到开源,无数的功能会在平台扩展,Eclipse为了达到这一点使用了大量的设计模式。 IAdaptable这个接口从命名去看是提供适配,其实早期的代码它的名字翻译成中文是扩展,Eclipse在不知道将会被怎样扩展的情况下使用了适配器工厂模式。 在Eclipse 中使用IAdaptable 接口的方式有两种: 1.某个类希望提供新的接口,但又不希望将其暴露在API 中,在这种情况下, IAdaptable 接口中的方法getAdaptor()方法将由本类实现。(希望支持新的接口,而又不想把已经发布的API 造成影响,这种机制很有用) 2.外界要求某个类提供新的服务,这种情况下不需要修改现有类的代码,getAdaptor()由一个工厂提供。 创建适配器工厂(IAdapterFactory),注册到适配器管理器(IAdapterManager),代码如下:      IadapterFactory factory = new AdapterFactory(); IadapterManager manager = Platform.getAdapterManager(); Manager.registerAdapters(factory,Ifile.class); 适配对象需要实现platformobject: public Object getAdapter(Class adapter) { return InternalPlatform.getDefault().getAdapterManager().getAdapter(this, adapter); } 若未实现,则需要下列调用: Platform.getAdapterManager().getAdapter(this,adapter); 要在运行时为一个已有的类增加功能,只需要定义一个用来转换的工厂类,然后把方法注册到Platform的AdapterManager即可。这种方式在保持UI组件和非UI组件的分离方面特别有用。例如在org.rcpapps.rcpnews.ui和org.rcpapps.rcpnews这两个plugin里,前者的IPropertySource需要与后者的数据对象(data object)相关联,当前者初始化时,它将IPropertySource注册到Platform,当数据对象在导航器(navi-gator)里被选中的时候,属性视图里就会显示正确的属性[3]。 3. 编辑助手插件的需求与设计 3.1 需求概述 3.1.1 运行环境 操作系统:Microsoft Windows 98/ ME/ NT/ 2000/ XP/ 2003及更高版本 支持环境:Eclipse 3.1.0及更高版本,需要安装jdk1.4及更高版本 3.1.2 功能需求 本插件功能主要划分为两个大模块。以下是模块名称及对应功能描述。 1.“内容灵敏提示的编辑器”部分:在开发者使用时实时提供关键字,类或者接口中定义的变量,方法的提示,提供自动载入模板代码,关键字和注释部分的不同颜色标注,文档结构的分析和导航功能。还提供鼠标悬浮提示,根据鼠标附近的内容提示方法,变量的类型,类的全名,方法的返回类型。 2.“搜索”部分:包括“在线搜索”和“本地文档搜索”两个部分,在线搜索只搜索选中的类,然后分析类的全名,打开eclipse内置的浏览器访问根据类全名组装起来的url 。本地搜索可以设置搜索本地一个目录中的资料。先设置目录位置,建立索引,可以搜索编辑器中的选中的文本内容。支持文档的类型包括纯文本,word,pdf 和html 格式。搜索的结果用一个view视图显示,用户可以打开视图列表中的文件察看。 3.2 结构设计 编辑器的设计: 本插件设计采用类似MVC模式的结构。C层主要是侦听编辑器中所做的修改,把更改事件通知M层,让M层及时解析计算提示信息。M层为核心解析处理层,接收源文件位参数,对源文件进行解析,然后根据上下文分析计算出要提示的建议集合。V层主要是把解析计算出的提示用提示出口显示给用户。 编辑器中的修改事件 解析分析引擎 C层 M层 V层 编辑器显示提示窗口 图3-1 三层结构 搜索的设计: 在线搜索:根据选中的文本内容,分析出类的全名,如果找到,则通过类名组装URL,打开内置的浏览器访问在线文档。 本地搜索:利用Lucence 对指定的目录中的文档进行索引,根据编辑器中选中的文本内容作为关键字搜索,结构以一个新的view显示给用户,用户可以打开view中列表中的文件察看。 4. 编辑助手插件的开发与实现 4.1前置条件 4.1.1 开发环境 Eclipse是一个免费而且开源的开发平台,在其官方网站:http://www.eclipse.org/ 可以很容易的下载到它的各个针对不同系统环境的各种版本,而且还有相关的语言包。Eclipse的新版本推出很快,最新的版本Eclipse 3.3M2也可以从官方网战下载了。本插件采用较为稳定的Eclipse-SDK-3.1.1-win32版,同时还采用了一个专为Eclipse开发SWT/JFace应用程序而设计的功能强大的辅助编程插件Designer_v4.2.1_for_Eclipse3.1,其官方网站为:http://www.swt- Eclipse是一个绿色软件,其安装相当简单,只需要把安装包解压缩到指定目录即可,它会自动查找系统jdk的安装路径并做出相应的配置。关于插件的选择以及安装和卸载在论文附录部分祥述。 4.1.2 插件开发引用的开源项目 Lucence: Lucene是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎. 其官方网站为http://lucene.apache.org/主要使用它对本地文档进行索引和搜索。 Xpdf: xpdf是一个开源项目,我们可以调用他的本地方法来实现抽取中文pdf文件。 其官方网站为 文件的内容 poi: poi是一个开源项目,我们可以调用他的本地方法来实现抽取中文word文件。 其官方网站为http://jakarta.apache.org/poi/,在进行索引示利用它提取word文件的内容 4.1.3 图形界面开发包 Java已经在很多领域取得成功,然而它却很少在图形界面程序上崭露头角,其关键在于Java语言缺省的图形界面开发包AWT和Swing。无论速度和外观,它们都难以让人接受。 如今,Eclipse组织编写的SWT开发包,为Java程序员提供了AWT和Swing之外的一个更佳的选择。 Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就极不相符,至今仍然很少能看到非常成功Java桌面程序。虽然有JBuilder,Netbean,JProbe等大型软件作为代表,但这仍不能证明Java的GUI程序是成功的:它们的外观总是和同一操作系统平台下的其它软件显得格格不入。对机器配置的需求也似乎永无止境,这使得它们只能被一些总是拥有当前最高性能PC的程序员们所容忍,或是那些不在乎金钱和时间的专业用户所接受。对绝大多数计算机使用者来说,AWT或Swing代表着不入流的界面和无法接受的速度。SWT(Standard Widget Toolkit)或许是Java这一噩梦的终结者,广大Java程序员终于可以开发出高效率的GUI程序,它们拥有标准的外观,几乎没有人能看出程序是用Java写出来的,更为重要的是,这些程序是跨平台的。 SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面API(Application Programming Interface)。或许是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司提供的AWT/Swing。目前Eclipse IDE已经开发到了3.1版本,SWT已经十分稳定。这里指的稳定应该包含两层意思: 1.性能上的稳定,其中的关键是源于SWT的设计理念。SWT最大化了操作系统的图形构件API,就是说只要操作系统提供了相应图形的构件,那么SWT只是简单应用JNI(Java Native Interface)技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的实现。 2.指SWT API包中的类、方法的名称和结构已经少有改变,程序员不用担心由于Eclipse组织开发进度很快(Eclipse IDE每天都会有一个Nightly版本的发布),而导致程序代码变化过大。从一个版本的SWT更新至另一版本,通常只需要简单将SWT包换掉就可以了[4]。 4.2 在ECLIPSE中进行插件开发 4.2.1 插件建立 虽然Eclipse的插件功能如此强大,而且看起来好像很神秘,但是着手开发一个插件并不难,因为Eclipse本身就提供了一个十分方便的插件开发环境。通过“File”、“New”、“Project,选择<Plug-in project>即可轻松地建立好一个插件。 图4-1 建立Eclipse插件项目 然后在接下来输入插件项目的名称即可,比如本编辑助手插件的名称为myeditor,接着直接点击next ,选择一个plug-in with a editor。 这样一个插件便建立成功了,在Eclipse界面的左边视图中出现了名为myeditor的插件项目。在项目的根目录下有一个非常重要的文件plugin.xml,这个文件是插件的入口。Eclipse就是根据这个文件里的设置信息来加载插件的。在插件开发的初期会频繁地修改这个文件来设置扩展点。建立的项目文件如图4-2所示: 图4-2 已经建立成功的插件项目 4.2.2 扩展设置 图4-3 plugin.xml文件 详细设置介绍如下,以下是该xml文件的内容: 1.声明插件 <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.0"?> <plugin id="org.eclipse.ui.examples.javaeditor" name="%pluginName" version="3.1.0" provider-name="%providerName" class="org.eclipse.ui.examples.javaeditor.JavaEditorExamplePlugin"> 2.编辑器扩展 <extension point="org.eclipse.ui.editors"> <editor name="%javaEditorName" icon="icons/java.gif" extensions="java" contributorClass="org.eclipse.ui.examples.javaeditor.JavaActionContributor" class="org.eclipse.ui.examples.javaeditor.JavaEditor" id="org.eclipse.ui.JavaEditor"> </editor> </extension> 3.视图扩展 <extension point="org.eclipse.ui.views"> <category name="Sample Category" id="myview"> </category> <view name="搜索结果" icon="icons/search.gif" category="myview" class="com.dudu.SampleView" id="com.dudu.SampleView"> </view> </extension> 4.首选项扩展     <extension point="org.eclipse.ui.perspectiveExtensions"> <perspectiveExtension targetID="myeditor.perspectiveExtension1"> <view id="com.dudu.SampleView" ratio="0.5" relationship="right" relative="org.eclipse.ui.views.TaskList"/> </perspectiveExtension> </extension> 对应于以上四部分内容分别进行如下说明: 1.<plugin> 是plugin.xml的主体。一个插件可以包括很多扩展点。 2.<extension>项里设置要扩展的扩展点,这是非常重要的一项。 (1) point=" org.eclipse.ui.editors ",表示扩展已有的编辑器的扩展点,通过实现该扩展点可以建立一个自己的编辑器 。 (2) point=" org.eclipse.ui. views ",表示扩展视图,通过实现该扩展点可以建立一个单独的view,用来展示搜索结果. (3) point=" org.eclipse.ui. perspectiveExtensions ",表示单独view视图,通过window>>show view >>other 打开对话框,选择搜索视结果显示视图。本插件经过如上设置之后,效果如图4-4和图4-5所示。 图4-4 插件的编辑器 图4-5 插件搜索结果显示视图 4.2.3 插件实现 根据本插件的层次设计,插件项目具体如图4-8所示。 其中com.dudu包中主要包括一些基础类,比如访问xml文件的XMLUitl和java 源文件核心解析类。org.eclipse.ui.examples.javaeditor.包中主要包括插件类,编辑器类。org.eclipse.ui.examples.javaeditor.java 包中包括给编辑器提供亮色显示,文档结构分析导航,内容提示,鼠标悬浮提示功能的类。 图4-6 本插件的项目视图 1) 内容提示的实现: 在编辑器中编写java源文件时,编辑器会根据上下文给出一些提示性的帮助,我们只需要选择合适的选项即可,没有必要完整的键入每一
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服