




已阅读5页,还剩65页未读, 继续免费阅读
(计算机软件与理论专业论文)xul编辑器的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华东师范大学硕士学位论文l l 编辑嚣的设计与实现 摘要 随着w e b 应用程序的广泛使用,传统的b s 模式已不能满足日趋复杂的应用 需求这时,r i a 技术应运而生,它将桌面应用程序与w e b 应用程序的优点有机地 结合起来,满足了网络应用程序不断提高的要求m o z i l l a 组织开发的x u l ( ) 凸几 u s e ri n t e r f a c el a n g u a g e ) 是一种典型的r i a 技术,具有便捷高效的特点,能用 来创建功能强大界面友好的w e b 应用程序,降低了制作富客户端界面的难度。已 在用户界面开发领域产生了重要的影响。 目前,用于开发】( 1 l 应用的各类编辑器还存在一定缺陷,基本上都是以代码 编辑的方式来进行界面开发,未实现可视化操作,且需手动完成整个】( u l 工程的 部署管理,尚不能为提高开发效率提供强有力的支持 基于上述情况,本文从实际需求出发,设计并实现了一个基于e c l i p s e 插件 的x u l 图形界面开发工具h ,v e d i t e r ,为用户提供了具有设计编辑页和代 码编辑页的双重开发界面,既支持“所见即所得”的图形界面编辑方式,又具备 智能提示等相关功能,并实现了基于工程级别的管理与维护。实际应用证明,) 【l i l v e d i t o r 能简化操作流程,增强系统的通用性和适用面,有效地提高开发效率, 方便了不同层次的用户 x u lv e d i t o r 采用j a v a 作为实现语言,涉及e c l i l ,s ep d e 、s 耵、j f a c e 等 相关技术,借助j d o i 来解析x u l 文档,充分利用$ 1 r r 窗体界面部件的扩展数据 槽及相关技巧,并结合布局调整算法,实现了图形设计区域的动态更新,力求在 易操作性,图形化开发和工程自动化管理等功能阅达到平衡 关键词:富互联同络技术,r j l ,e c l i p s e ,所见即所得,$ 1 r r ,图形界面。) 【i l v e d i t o r 华末师花大学焉士学位论文 矶编辑嚣的设计与实现 g r t t ht h ee x t e n s i v ea d o p t i o no ft h ew e ba p p l i c a t i o n s , t h et r a d i t i o n a lb sm o d e 啪n o tu 吐s f yt h ew e b v i e w e r s r e q u i r e m e n ta n ym o f 魏t h e nr i c hi n t e r n e ta p p l i c a t i o n ( r i a ) e m e r g e da st h et i m e sr e q u i r e i tc o m b i n e st h ea d v a n t a g e so ft h ed e s k o p a p p l i c a t i o n sa n dt h ew e ba p p l i c a t i o n st os a t i s f yt h ew e bv i e w e 砖r e q u i r e m e n t x u l o 心儿u s e ri l l 扯施睇l a n g u a g e ) d e v e l o p e db ym o z i l l ao r g a n i z a t i o ni s 蛐ck i n do f r i at e c h n o l o g y , w h i c hc a ns e tu pt h eu s e ri n t e r f a c ew i t hp o w e r f u lf u n c t i o na n d f r i e n d l yi n t e r f a c e i to f f e r sam o f cc o n v e n i e n ta p p r o a c hw i t hh i g he f f i c i e n c ya n dw e l l c o m p a t i b i l i t y , a n dr e d u c e st h ed i f f i c u l t yo fd e v e l o p i n gt h er i c hc f i e n ti n t e r f a c e x u l h a st a k e na na c t i v ep a r ti nt h eg u id e v e l o p m e n td o m a i n n o w a d a y st h o s ex u l e d i t o r st h a tc a nb eu s e ds t i l lh a v es o l 鹅d r a w b a c k s , m o s t o f t h e m j u s tw o r ko rc o d ew i t h o u tv i s u a lo p e r a t i o n , a n dt h ew h o l ex u lp r o j e c th a st o b em a n a g e dm a n u a l l y , w h i c hi n f l u e n c e st h ed e v e l o p m e n te f f i c i e n c yg r e a t l y b a s e do nt h ep r e c e d i n gd i s c u s s i o n , t h i sp a p e rd e s i g n sa n di m p l e m e n t s 缸x u l g u id e v e l o p m e n tt o o l :x u lv e d i t o r , i nt h ef o r mo f e c l i p s ep l u g i n , w h i c hc a ns a t i s f y t h eu s e r s a c t u a lr e q u i r e m e n t i to f f e r sad o u b l ed e v e l o p m e n ti n t e r f a c ew i t hd 伪i g na n d 咖p a g e , s u p p o r t i n gt h ef u n c t i o no f “w y s i w y g a n dc o n t e n ta s s i s t i n g a n d b e s i d e s , t h ex u lp r o j mc a nb em a n a g e da u t o m a t i c a l l y i ti sp r o v e dt h a tx u l v e d i t o rc a ns i m p l i f yt h eo p e r a t i n gf l o w , a n de n h a n c et h ee f f i c i e n c yo ft h es y s t e m , f a c i l i t a t i n ga l lk i n d so f u s e r st od e v e l o p p i n gx u l h e r ej a v ai su t i l i z e da st h ed e v e l o p m e n tl a n g u a g e , i n v o l v i n gs o m ee c l i p s e t e c h n o l o g i e s , s u c ha se c l i p s ep d e ,s w i , a n dj f a c e t h e d a t a o fs w tw i d g e ta n d j d o mt e c h n o l o g ya r ca l s om a d ef u l li i s co ca n ds 咖ca r i t h m e t i c so fl a y o u t 删m t m e n ta r ci n t e g r a t e di n t ot h ee d i t o r x u lv e d i 瞬d o e st h eb e s tt oa t t a i nb a l a n 咖e e l lu s a b i l i t ya n df u n c t i o n a l i t y k e yw o r d :r i a ,x u l ,e c l i p s e 。w y s i w y g ,s w t ,g u i ,x u lv e d i t o r 学位论文独创性声明 本人所呈交的学位论文是我在导师的指导下进行的研究工作及 取得的研究成果据我所知,除文中已经注明引用的内客外,本论文 不包含其他个人已经发表或撰写过的研究成果对本文的研究做出重 要贡献的个人和集体,均已在文中作了明确说明并表示谢意 作者签名: 关仑 日期:2 1 = z :三:三矿 学位论文授权使用声明 本人完全了解华东师范大学有关保留、使用学位论文的规定,学 校有权保留学位论文并向国家主管部门或其指定机构送交论文的电 子版和纸质版有权将学位论文用于非赢利目的的少量复制并允许论 文进入学校图书馆被查阅有权将学位论文的内容编入有关数据库进 行检索有权将学位论文的标题和摘要汇编出版保密的学位论文在 解密后适用本规定 学位论文作者獬:买合导师签名茹解乞 日期: 华东师范大学焉士学位论文 邛l 编辑嚣的设计与实现 1 1 前言 第一章绪论 b s ( 浏览器服务器) 是当4 w e b 应用系统开发中最主流的架构这种低维护成 本的软件应用确实给人们带来了很多的便利,但在某些方面,这种基于页面的传统 模型已无法满足日趋复杂的应用需求,尤其是无法提供类似于c s 模式中的良好的用 户体验【”比如,在许多w e b 应用系统中,处理一项业务往往涉及多个页面,必须频 繁地请求页面,从而导致系统交互速度低下,工作效率不高的局面 近年来提出的r i a ( r i c hi n t e r n e ta p p l i c a t i o n ,富因特网应用程序) 技术较 好地解决了这个问题,它将桌面应用程序的用户体验与传统霄e b 应用的灵活部署结合 起来主流应用厂商纷纷推出了各自的相应技术,如o z i l l a 的x u l ,微软的s l m r t c l i e n t ( 智能客户端) ,m a c r o m e d i a 的f l e x 。 相比之下,x u l 是一种简洁且表达能力非常强的语吉,提供了一种快速构建跨平 台用户接口的新途径,代表了 o l - g u i 的一个发展方向。在- e b 用户界面开发领域 前景广阔,其开发需求正不断增大,但目前尚无完备的开发工具,x u l 编辑器的开发 状况仍不理想 1 2x u l 编辑器的研究现状 当前,国内外很多程序员在进行x u l 开发时,都只能借助于l 的开发工具, 或直接使用记事本、u l t r a e d i t o r 之类的编辑器因此,x u l 基于图形界面的集成开 发环境( i 班) 被广泛期待,尤其是对于初级开发人员而言。没有合适的可视化编辑署 是相当不便的 据统计,截至2 0 0 7 年初。s o u r c e f o r g e 上注册的关于x l 】li 弛的项目共有1 5 个,m o z i l l aw i k i 】【u l :i d e 首页上提出的相关项目与想法有7 个,但其中完成了 大部分功能并投入使用的并不多,仅有m o z d e v 的m o z c r e a t o r ,i 雕公司的c o m p o u n d 弛也d o c u m e n te d i t o r 。以及开源工具x l j j b l l 【e r 等,它们各有优劣 华东师范大学焉士学位论文矶编辑墨的设计与实理 i l o z c r e a t o r 是m o z i j e v 上发布的开发工具,内嵌了) 咂i n s p e c t o r ,从而实现 了一个结构视图。它提供了自定义部署、运行和调试等相关命令,但没有可视化的 开发界面,仅表现为单一的代码编辑窗口,而且它的运行速度也不尽如人意( 3 】 c o u p o u n dx 乩d o c t m e n tg d i t o r ,整合了对各类) 呲文件的编辑功能,如x l j l , s v g ,m a t b m l ,x f o r m 等。操作较为简单灵活,可直接键入元素标签或是在上下文菜 单中选取标签来实现插入,然后通过m o z i l l a 类浏览器进行预览,但属非可视化的 编辑方式而且它仅是针对单一文件的编辑,没有x u l 工程韵概念。无法胜任大型 项目的开发工作 】【】u i a l 【盱是第一个x o l 图形界面开发工具,其自身即采用了x u l 技术它提供 了许多功能,但其版本过低,已无法正常地运行在当前m o z i l l a 浏览器上。另外, 它的开发界面比较拥挤,常常导致无法正确地定位部件的添加位置,操作不方便 由于项目的升级耗资过大,开发者f r a n k l i nd e6 r a a f 已宣布废止该项目 1 3 本文的主要工作 钎对上述编辑器所存在的种种问题,本文在对x u l 标签以及s w 窗体晃面部件 进行系统性研究的基础上,依据两者间相似和相通的性质建立了一整套映射关系, 充分利用e c l i p s ep d e ,j f e 、j d o u 等技术,借助s w t 窗体界面部件的扩展数据槽 及相关技巧,构建了x u lv 阴i t o r 一即基于e c l i p s e 插件、支持“所见即所得” 编辑方式、支持工程级管理的x u l 图形界面开发工具x u lv e d i t o r 实现了设计编 辑页和代码编辑页的双重开发界面,支持x u l 文件的可视化开发和x u lt 程的自动 化管理,并为不同层次的x u l 开发者提供了相应的开发环境,极大地提高了x u l 应 用的开发效率 x u lv e d i t o r 采用基于e c l i p s e 插件的方式,是为了让其能与当前的主流开发 平台e c l i p s e 保持风格统一,对于熟悉e c l i p s e 操作的用户来说,能缩短对该软件 的适应过程,降低学习难度此外,借助e c l i p s e 提供的p d e ( t h ep 1 u r i n d e v e l o p m e n te n v i r o r m e n t ,插件开发环境) 可以方便地开发出与整个i 跣无缝结合 的功能扩展插件 1 4 本文的章节安捧 第一章。引言,主要介绍论文的研究背景,分析当前娜l 编辑器的研究现状, 2 华东彝范大学磺士学位论文肌编辑嚣的设计与实现 明确论文的研究内容。 第二章,x u l 和r i a 技术。由网络应用程序的发展历程引入r i a 技术,并对其 相关特点傲了介绍,还就g u l 技术的各方面内容傲了探讨 第三章,e c l i p s e 插件开发,介绍了e c l i p s e 平台以及与插件开发相关的内容, 并对x 【i lv e d i t o r 中拓展定义的扩展点作了分析。 第四章,x l j lv e d i t o r 的功能设计,针对现存编辑器所存在的问题,提出了x o l v e d i t o r 的系统功能结构及整体设计l 另外。还为x 【l l 的应用开发设计了一套较为 完备而实用的开发部署方案 第五章,x u lv e d i t o r 的关键技术及实现,在第四章的基础上,给出了) 【u l v e d i t o r 的四层映射模型,并对该系统所采用的关键技术做了介绍;此外,还就具 体模块的实现过程与相关思路作了比较深入的婀述 第六章,一个应用开发实例,描述了x i j lv e d i t o r 的一个应用案例,并对其应 用情况做了说明 第七章,总结论文的研究内容,并指出下一步的研究工作 华东疖藏大学焉士学位论文 玑蝙辑暑的设计与实现 第二章x u l 和r i a 技术 2 1 网络应用程序的发展 网络应用程序曾经历过数次系统架构方面的重要转交。从广义上说,它最早可 追溯到基于主机的模式。该类应用程序出现在以大型计算机为中心的框架上,联入 网络的终端计算机则以文本为主的非图形界面来进行操作。当时只有大型公司或 组织的内部人员才能访问、运行这些应用程序 在二十世纪九十年代,随着客户端计算机应用能力的增强以及服务器技术的进 步,出现了c s ( 客户端服务器) 模式。这类应用程序通常是为某个公司某种事务 而定制,它们能将来自终端的数据汇总到服务器端进行统一管理,同时也带来了丰 富的客户体验但是,在这种框架下,应用程序在使用的过程中往往会在客户端留 下很多印记( h e a v yf o o t p r i n t ) ,而且还需要不断地更新客户端、服务器上运行的 软件,从而导致复杂的部署及高昂的维护费用,因而也只有很少一部分企业用户才 能够负担得葱”j 到了九十年代中期,互联网飞速发展,随着溯览器技术的诞生引发了软件开发 模式的又一场重大变革,那也就是从c s ( 客户端服务器) 发展到b s ( 测览器服 务器) ,真正意义上的w e b 应用程序开始走上历史舞台,引颁着人们步入。瘦客户端 应用程序”时代。在这种体系结构下,客户端无需进行特别的软件部署,只要安装 有浏览器,管理员便能在服务器端通过互联网将文档和资讯发布给全世界。对于客 户端来说它只负责向服务器端发送请求,以及对返回的结果数据予以显示,并不涉 及复杂的计算或处理 同c s 模式相比,b s 同样也存在着缺陷:标准浏览嚣技术( i n 眦4 0 ) 的用户 交互能力非常弱,除了提供的几个简单文本输入框、选择框、按钮等,便再无其它 交互手段为了沿袭c s 模式下的界面使用风格,开发人员需借助大量的j a v a s c r i p t 等客户靖脚本技术和潮札去实现c s 应用程序的用户界面,如菜单,工具条,还 i i 蛐y 白嘟h t 一词铂自饭轼m 耐凼。t 熏,1 i 讲座之一美子c 思的介铂蕃分这里具体报的槐悬m 乏夷 的文件 4 华东库花大学嗣士学位论文 x u l 编辑嚣的设计与实瑰 有那复杂的图形和表格等。此外,该架构快捷而广泛的部署还换来了客户端的功能 受限,而且随着软件应用环境的日益复杂,这个问题也越发严重,即使借助了那些 客户端脚本技术,也还是无力胜任更为高级的应用。在那些复杂的应用系统中,由 于会涉及到快速实时交互、复杂数据处理、深刻用户体验,所以在完成某一项事务 处理时,往往需要客户端频繁地提交请求、存取网页,以期实现与服务器端的协同 工作。这便导致了w e b 应用程序运行缓慢,交互速度低,直接影响到工作效率【l ”。 b s 架构由于其自身特性以及存在的问题。已渐渐不能满足网络浏览者更高、 更全方位的体验要求,即所谓的“体验问题”( e x p e r i e n c e m a t t e r s ,此提法最初是 由m a c r o m e d i a 公司提出的) 闭这时候。关于r i a ( r i c hi n t e r n e ta p p l i c a t i o n s 的缩写,富互联网应用程序) 的论调开始形成了,该技术结合了桌面应用程序的反 应快、交互性强等优点,以及w e b 应用程序的传播范围广、容易传播等特性,提供 了更丰富、更具有交互性和响应性的用户体验此架构从2 0 0 4 年开始逐渐得到广大 开发人员和系统架构师的认剜n 2 2r i a 技术 r i a 技术是一种集桌面应用程序的最佳用户界面功能,w e b 应用程序的普遍采 用和快速、低成本布署,以及互动多媒体通信的实时快捷于一体的新一代网络应用 程序它简化并改进了w e b 应用程序的用户交互,是一种安全,可升级,并具良好 适应性的新一代面向服务模型。它可由w 曲服务来驱动,结合了声音、视频和实时 对话等方式,具有着前所未有的网上用户体验l z j 。 下图给出了一个典型的r i a 体系结构,x m l 通常被用作数据传输的格式,有时 也被用来描述窗体的页面布局。在很多实例中,客户端可以保持与数据源的连接, 这样服务器便能够实时地对客户端数据进行更新 圈2 - 1r i a 典型的体系结构 在r i a 中,最关键的词眼便是丰富,主要体现在以下两个方面:一是丰富的数 据模型,这意味着客户端的用户界面能表现、应对更多更复杂的数据模式,使客户 端能胜任部分运算处理,异步发送以及接受数据等工作,这样便允许在客户端构建 一个高响应、交互式的应用程序;二是丰富的用户界面,同l i t 虬只能为用户的界面 5 华东师范大学爱士学位论文 矶编辑嚣的设计与实现 控制提供非常有限的功能相比,r i a 则提供了灵活多样的界面控制元素,能巧妙地 与数据模式相融合,为用户提供更加友好的用户体验 r i a 技术的出现,使人们从早期那种服务器响应便会引起整个客户端界面刷新的 运作模式,迁移到只对发出请求的特定区域做改动的模式上来,即所谓的页面局部 更新该模型能将界面分解为许多小单元模块,使客户端变得更加灵活,能适应局 部改变、服务器交互,以及客户端内部组件的通讯;同样。其事件模型也一改传统 风格原先总是服务器收到请求后自上而下地创建客户端界面,人们无须预测事件 的顺序。现在既然每个组件都是独立的交互个体,就要使它们都具有向服务器传送 信息的能力,能知道如何处理服务器传回来的信息【3 3 】;此外,在r i a 中,客户端和 服务器端之间的数据交互是采用异步响应的方式,这样人们便可以控制由组件来创 建信息。然后荐发送给服务器以及处理服务器的响应,并且还可以为更零散的控制 去耦合分离程序功能,从而组建面向服务( s o a ) 的程序结构。 针对r i a 技术的特点,一些主流的应用厂商均推出了各自的相关技术,比如微 软的s h a f tc l i e n t 技术,m a c r o n e d i a 的f l e x 技术,以及m o z i l l a 的x u l 综合这 三种技术方案的特点来看,s m a r tc l i e n t s 是从c s 出发,关注于解决它的缺点, 同时也在一定程度上借鉴了s s 的长处,能适用于企业级应用程序的模式,但在需 要更多丰富效果、面向i n t e r n e t 用户的w e b 程序中,后边两种技术则会更有其市场; f t e x 应用很有特色,实现的界面美观,功能强大,但目前仍不太成熟,还不利于在 实际项目中使用,一些不完善的地方都得靠自定义才能完成相应要求,而且它昂贵 的软件许可和谈不上特别流畅的开发环境( 代号为“b r a d y ”的i d e 还未正式推出) 也在很大程度上限制了它的发展;x u l 在开发富客户端的应用上则提供了一种便捷 高效的方法,能降低制作富客户端用户界面的难度,是一种用来快速开发跨平台用 户接口的新途径,它的一大优点在于与g e c k o 引擎的集成,打开了通向大量w e b 标 准的大门,同其它x m l 用户界面描述语言相比它非常简洁,具较强的表达力,普遍 认为其代袭了x h l - g u i 的一个发展方向i l 】本文正是以x u l 作为研究重点,在之后 的内容中会就其相关特点做进一步的探讨 2 3 】【i l 技术的特点 x u l 是z i l l a 璺t 织开发的,基于舭的用户界面描述语言。其核心思想就是用x 虬 来表达界面它属于x m l 的一种交体,实现了对h t m l 的扩展,使用它能较为方便地构 建丰富、跨平台的w e b 应用,设计出复杂的图形晃面程序,m o z i l l a 浏览器自身以及 6 华东师范大学磺士学位论文 聋l l l 编辑嚣的设计与麦瑰 许多相关的扩展插件,都是很好的例子最初,它仅是为快速构建m o z i l l a 软件界面 而设计,但现在它同样能用于开发富客户端程序,以及在x r e ( x u lr u n t i m e e n v i r o n m e n t ) 和g r e ( g e c k or u n t i m ee n v i r o n m e n t ) 支持下独立于浏览器运行的应用 程序。它提供了大量灵活易用的界面元素,支持w 3 c 的众多标准:c s s ,r d f 等,易于 被本地化,利用样式表还能做到方便地改变用户界面外观l l ” 目前,x u l 的思想已衍生出大量新的技术,如t h i n l e t 、s w i 儿、l a s z l o 等,微 软下一代操作系统l o n g h o r n 中所用到的x 虬就从中借鉴不少,与之有许多相似之处 2 3 1 肌标签和事件处理 和m 札有点类似,) 【叽也是使用标记语言来编写用户界面,它主要有以下四种 类型的标签: ( i ) 布局元素( 如h b o x ,v b o x ,g r i d ,s t a c k 以及d e c k 等) ( 2 ) 部件元素( 如b u t t o n t e x t b o x ,m e n u b a r ,t o o l b a r 以及m e n u l i s t 等) ( 3 ) 命令,加速键元素( 如c o m m a n d 以及k e y s e t ) ( 4 ) 模板元素( 为u i 绑定后台数据,使用r d f ) 不过相比之下,它又丰富了很多,为创建菜单,工具栏,标签属性页,_ 树型列 表等提供了一组丰富的用户界面部件,这就意味着我们不必为处理一个弹出式菜单 而去寻找第三方代码,或是编写一大段的j a v a s c r i p t ,只要使用现成标签便能轻松 拥有桌面应用程序中的所有部件,极大地提高了开发效率,同时也丰富了用户的界 面体验除) ( u l 内建的用户界面部件外,可扩展绑定语言( x b l ) 也能用来创建自定 义的标签以满足用户的实际需求,使界面开发更加灵活、高效。 x u l 的事件处理机制和h t i l l 较为类似,它的使用方法就是为标签添加一个属性, 如o n c l i c k ,o n n o u s e l o w n ,o n l o a d 等,以实现对相应事件响应脚本的调用歹f 过, 它还提供了命令标签c o m m a n d ,可用来创建一些命令来执行一定操作,尽管我们能 调用s c r i p t 来完成同样的工作,但是c o m m a n d 有其优势:一是能在无需知道具体实 现的情况下调甩某个c o u e i n d l 二是当工程应用需要时能自动取消 2 3 2 】【i j l 对现存标准的复用 i u l 复用了骼c 的众多现存标准和技术,包括c s s ,1 7 f d ,j a v a s c r i p t 和r d f : 使用c s s 可以控制界面外观并定义多种界面风格,这些样式文件均放置在x u l 应用 7 华表师藏大学焉士学位论文 i o l 编辑嚣的设计与实现 包的s k i n 目录下;使用d t d 可完成对字符串的替代,方便地实现本地化,这些文档 类型定义文件放置在x u l 应用包的l o c a l e 目录下;使用j a v a s c r i p t 可以提供基本的 逻辑编程,对用户界面的操作做出反应,通过对象文档接i e i ( d 伽) 动态控制用户界 面,同时还能调用m o z i l l a 提供的x p c o m 实现强大的功能。可进行文件、同络、图 形等方面的操作;使用r 肺可以存储独立于界面的数据,并能用来传输信息l 埘 2 3 3x l i l 应用的安装访问运行 出于安全性的考虑,m o z i l l a 类浏览器会限制远端资源内容,如i m 儿,x u l 或 其他类型文档所能执行的操作同时,它还提供了一种能将应用安装注册为本地 c h r o m e 应用的方法,这样便允许以一种c h r o m eu r l 的方式来实现访问,从而获得 对该应用提升了的权限,既能访问本地的系统文件,系统数据源,相关选项和书签。 又能执行其他的授权操作 f i r e f o x 的扩展插件就是采用这种安装注册方式,从而实现将新特征或是功能 添加到谢览嚣中去那些扩展插件实际上就是一个包含有x u l 文件,j a v a s c r i p t , 样式表,d t d 的c h r o m e 包,使用z i p 工具从而完成构建。用户只需将其下载到本地, 执行安装注煅,便能在浏览器中使用对于那些独立运行的x u l 应用同样也可以采 用该种安装注册方式,此后我们既可以在浏览器地址栏中输入c h r o m eu r l ( 基本语 法为c h r o m e l l l ) 来运行该应用,同时也可以执行命 令m o z i l l a - c h r o m ec h r o m e :l l l l ,后边这种运行方式得 到的就是应用程序风格的界面,而不带浏览器的外框 2 3 4x u l 在富客户靖方面的应用 x u l 作为一种实现富客户端应用的技术,主要采用“拉”模型,前端界面可根 据自己的需求去主动调用后端业务,以获得所需数据。与j s p ,p l t p 等不同的是,它 不能同后台数据库实现直接通讯,而必须通过中介j a v a s c r i p t 脚本来完成,后台应 用可以是s e r v l e t ,w e bs e r v i c e 等,不过对于不同后台,x u l 在客户端处理上会稍 有不同以下是它的两种实现方法。 x p c o m ( c r o s s - p l a t f o r mc o m p o n e n to b j e c tm o d e l 跨平台组件对象模型) 是 m o z i l l a 使用的对象系统,同m s c o m 在微软平台提供的基于组件的编程模型类似 借助此,我们可在j a v a s c r i p t 脚本中方便地调用本地代码,实现一些复杂应用它 华东师范大学焉士学位论文魁儿编辑嚣的设计与实琨 是以x p c o n n e c t 技术作为桥梁,实现了在j a v a s c r i p t 中对x p c o m 的调用和初始化, 并将j a v a s c r i p t 类型绑定到x p c o m 中的相应类型。l ( o z i l l a 提供了很多种类的组件 与接口,其中x i l l 、w e bs e r v i c e s 、r d f 类便可运用在同后端应用的交互中 r d f 是一种主要用于描述i n t e r n e t 资源的数据模型,如w e b 页面以及w e b 页面 之间相互关联的方式,同时它还是一个可序列化规范,而且在更多数据从远程服务 到达时可以动态改变。x u l 提供了一种模板技术,它能动态生成由r d f 提供数据的 页面内容,实现从数据源提取r d f 到x u l ,使之能根据所使用数据的不同而做相应 调整。将r d f 数据源的值( r d f 文件的u r l 地址或者是内置数据源的编号) 赋给t r e e 之类标签的d a t a s o u r c e 属性,这是决定内容能否建立的关键,当一个元素包含该属 性时,负责从模板建立内容的构造器对象便被加入到该元素中此外,还需要提供 一个简单模板,能被每个要创建的元素所复制,也就是在t e m p l a t e 标签内置入每一 个需要创建的元素,同时辅以运用r u l e 标签来调整所获数据,使之能按所需样式显 示揪搠 9 华东师花大学磺士掌位论文肌编辑嚣的设计与实现 第三章e c l i p s e 插件开发 3 1e c l i p s e 概述 3 1 1e c l i p s e 平台简介 j a v a 集成开发环境e c l i p s e ,不仅具有源码开放、免费使用的特点,而且也 以其性能良好、容易定锚等优点吸引了大量程序员迅速向其迁移,已逐渐成为程序 员开发的主流平台 e c l i p s e 平台设计出色,具有独创性,本身并没有提供大量的最终用户功能,它 的价值就在于业界所谓的促成( c o n t r i b u t e ) 作用,能根据插件模型快速开发集成 功能部件确切地说,e c l i p s e 更是一种普遍适用的开放式扩展i d e ,提供了功能丰 富的开发环境,并允许开发者创建一些能无缝集成到e c l i p s e 平台中的工具f l o k “ 3 1 2e c l i p s e 平台体系结构 e c l i p s e 平台是根据扩展点这个概念建立起来的,它被构造为一个或多个插件 实现的子系统,各个子系统又建立在一个小型运行时引擎的顶部如图3 一l 所示: 华东舜蓖大学焉士学位论文习吼编辑暑的设计与赛班 图3 - 1 2e c l i p s e 平台体系结构 从以上e c l i p s e 平台体系结构图中可以看到,除了小巧的e c l i p s e 平台核心运 行时之外,e c l i p s e 由工作台( w o r k b e n c h ) 、工作空间( w o r k s p a c e ) 、帮助( h e l p ) 和小组组件( t e a m ) 这四个部分构成,其它工具则是以插件的形式集成到框架中【嘲: 运行时( p l a t f o r mr u n t i m e ) 一这是e c l i p s es d k 所必需的,其自身并不具有 任何对最终用户有意义的功能,它仅是作为一个加载所有插件的基础平台,定义了 运行插件的基础设施该组件会在启动时发现所有可用的插件,并负责管理插件的 加载,它实际上就是e c l i p s e 运行时的最小集合 工作台( w o r k b e n c h ) 一定义了e c l i p s e 的u i 聚合体,其核心要素是编辑器, 视图和透视图,下属的s l i t ( s t a n d a r dw i d g e tt o o l k i t ,标准窗体组件工具包) 提 供了图形展示功能,并定义了一组标准的窗体组件,而建立在s w t 之上的j f a c e ( 甩 户界面框架) 则是一组比较小的u i 框架,它提供了对常用u i 任务的支持 工作空间( w o r k s p a c e ) 一负责管理一个或多个顶级项目,每个项目都是由多 个文件和文件夹组成的,分别对应后台文件系统的文件和目录 帮助( h e l p ) 一与e c l i p s e 平台自身类似,帮助组件也是一个拓展的文档系统, 该工具能以h t m l 格式添加文档,以掰l 格式定义导航结构,当以映射的方式将一个 插件与另外的插件连接起来时,帮助插件可将提示插入到已存在的提示树中 小组组件( t e a ) 一小组支持插件是一个使用版本控制系统来管理用户项目资 源的工具,它定义了在库中保存和检索所必需的工作流,在e c l i p s e 中已经提供了 一个c v s ( c o n c u r r e n tv e r s i o n ss y s t e m ) 客户端 j a v a 开发工具o d t ) 一所有j a v a 相关的开发部分都是由这个插件来完成的, 它形成了对于j a v a 最为基础的编辑、编译、运行、调试、发布的全功能开发环境 插件开发者环境( p d e ) 一开发插件的插件,它提供了开发插件所需的工作环境, 包括用于自动创建、处理、调试和部署插件的工具,使插件和扩展的开发更加方便 3 2e c l i p s e 插件开发 e c l i p s e 插件是一种在e c l i p s e 平台中提供某些服务的组件,这个概念有点类戗 于s o a ( 面向服务的架构) 中的服务我们能通过拓展e c l i p s e 插件从而构建与 e c l i p s e 相融合的新的工具因而,可拓展性构成了e c l i p s e 平台的又一大优异特 性 2 此圈擅自& i 卸自带帮助佃嘲白岫h 峰抽d 即e l 叩盯o i 出, l i 华东师范大学磺士学位论文吼稿辑嚣的设计与实现 从具体实现看,插件是基于e c l i p s e 平台所提供的扩展点来进行编写的,主要 按照以下两个步骤: ( 1 ) 戗建一些j a v a 类,它们一般都要求继承于e c l i p s e 某个特定的类或接口。 比如开发一个e c l i p s e 透视图,就需要实现透视图的接口i p e r s p e c t i v e f a c t o r y s 而要在e c l i p s e 的首选项窗口中添加一页,则需继承指定的类p r e f e r e n c e p a g e ; ( 2 ) 为所创建的j a v a 类,在e c l i p s e 的配置文件( p l u g i n x m l ) 中注册声明; 将软件写成e c l i p s e 插件的形式具有界面友好、风格统一等优点,尤其是对于熟 悉e c l i p s e 操作的用户而言,优势便更加明显,能大大缩短用户对软件的习惯过程。 平缓了学习饷曲线在当前,包括i b m 公司在内的许多国内外大公司都在此平台上开 发各自的插件,以满足其开发、应用的需求,可见e c l i p s e 插件开发正呈上升的势头 逐渐地,e c l i p s e 本身超越了开发环境的概念,成为了一个通用平台,能让尽量多的 软件作为插件集成在它上面,成为未来的集成桌面环境,我们甚至可以将应用系统 也写成e c l i p s e 插件的形式,即所谓的r c p 程序 m o z i l l a 高级技术员b r e n d a n e i c h 曾在m o z i l l a 开发者日傲过( m o z i l l a f u t u r e s a n a l y s i sa n dp r o p o s a l s ) 的报告,他提出要将m o z i l l a 】【u l 编辑器整合到e c l i p s e i d e 中去的构想;此外,同x u lm a k e r 开发者f r a n k l i nd eg r a a f 的多次探讨,使 我们最终选择了采用基于e c l i p s e 插件的形式来构建x u lv e d i t o r 以下将对e c l i p s e 插件开发的相关内容做一系统介绍: 3 2 1 插件开发环境 e c l i p s es d k 提供了p d e ( 插件开发环境p l u g - i nd e v e l o p m e n te n v i r o n m e n t ) , 这是一个辅助开发者创建、开发、测试、调试和部署e c l i p s e 插件的工具,它同样 也包含了开发片段( f r a g m e n t s ) 、特征( f e a t u r e s ) 以及更新站点( u p d a t es i t e s ) 等功能为了同整个e c l i p s e 平台的基调相统一。p d e 提供了大量可供使用的平台 对象( 如视图v i e s 。编辑器e d i t o r s ,向导w i z a r d s 等等) ,它们能和e c l i p s e 工 作台的其它部分透明融合,保持协调一致l 哪 华东师范大掌焉士学位论文霹比编辑嚣的设计与实现 3 2 2 湖lv e d i t o r 使用的相关扩展点 e c l i p s e 定义了大量可用来添加功能的扩展点,它们是系统中严格定义的位置。 其它工具( 插件) 都需在此基础上添加功能。以下将列举几个e c l i p s e 中常用的扩 展点,x u lv e d i t o r 在实现相应功能的时候,主要就是对它们傲了一定程度的扩展。 ( 1 ) e c l i p s e 的插件扩展点o r g e c l i p s e u i e d i t o r s 此扩展点能用来在工作台上定义新的编辑器,这里所谓的编辑器也就是工作台 页面内的可视组件,通常可用来编辑、浏览文档,或是输入对象。通过对这个扩展 点做拓展定义,我们实现了x u lv e d i t o r 中的核心内容,即x u l 文档的编辑区域 在配置文件p l u g i n x m l 中对该扩展点的定义,需要关注以下内容:c l a s s 属性 指向的类须是系统编辑器类o r g e c l i p s e u i i e d i t o r p a r t 的子类,并定义相应的 c o n t r i b u t o r c l a s s 属性,该属性所指向的类需实现o r g e c l i p s e u i i e d i t o r a c t i o n b a r c o n t r i b u t o r 接口,它能将反映编辑器类型功能的新操作添加到工作台菜单和工 具栏中。此外,还有个e x t e n s i o n s 属性。是一个用逗号分隔的文件扩展名的字符串。 它指定了编辑器所能理解的文件类型列表 附录四:e c l i p s e 插件配置定义之1 那段儿便定义了一个名为。x u lv f i t o r ” 的编辑器,对应了所有扩展名为x u l 的文件,x u l e d i t o r e d i t o r s x u l i p a g e e d i t o r 类则为x u lv e d i t o r 所用到的编辑器的特点与行为作了一系列的定义,至于该类的 具体内容将会在第五章中涉及到 ( 2 ) e c l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 播音考试河南题目及答案
- vets考试题及答案
- 禄丰市文明城市知识培训课件
- Acrylamidine-生命科学试剂-MCE
- 禁毒知识培训资料记录课件
- 2025年进程管理试题及答案
- 2025年物理作业41题库及答案
- 江西省九江市重点中学2025年高三数学第一学期期末统考模拟试题
- 云南省楚雄市古城二中2025-2026学年数学高三第一学期期末预测试题
- 湖南省长沙雅礼中学2025-2026学年高三数学第一学期期末质量跟踪监视模拟试题
- 集装箱装车安全教育
- (2025)辅警招聘考试题题库及答案
- 2024版慢性阻塞性肺疾病课件
- 北师大版八年级数学上册教学工作计划(含进度表)
- 西师大版六年级上册数学全册教案(教学设计)
- 某电厂拆除工程施工方案
- 退伍军人贫困申请书
- 九年级全一册英语单词默写表(人教版)
- 2025年4s店代步车使用协议(三篇)
- 学校食堂服务承诺书
- 《浅析人工智能的伦理关切与治理研究》3100字(论文)
评论
0/150
提交评论