(本图片摘自Ajax Toolkit Framework Tools in Eclipse幻灯片, 作者Philippe Ombredanne)
在公司论坛上看见有人又再问有没有新版本的Eclipse,也总有热心的人共享出来,俺对这个东西不太感冒,虽然这个东西被称为RCP的热门首选,但考虑到Java程序的内存占用,俺还是觉得不太适合我们。不过还是翻了一下3.3版本的新功能说明,里面倒是有一点吸引了我(后来发现该说明不是官方的,而是来自“Eclipse在做什么"这篇网上日志):
忘了提Eclipse 3.3的又一大特性了,叫做“Moziila Everywhere”,是指在任何平台上都可以创建一个Browser控件但是使用Mozilla内核(及时该平台上没有安装Firefox)。这是怎 么实现的呢?其实很简单,它要求你必须安装一个xulrunner,后者是Mozilla的全部内核,包括Gecko布局引擎、Javascript解析 引擎、XUL解析引擎和XPCOM,其中每样东西都足够写一本书,有了这些,仅用XUL+Javascript就可以写出一个Firefox来, Eclipse洽是利用了这个特性,用Java连接XPCOM所以创建了一个Mozilla的Browser,但是没有任何行为,包括右键菜单。如果现在整个Mozilla能嵌进去,并且能够通过JavaXPCOM交互,那就非常爽了:我们的用户很期望将他们开发的工具集成起来,一直也期望我们这边能够提供一个平台,毕竟现在我们已经有数据管理这一部分了,但我们一直没有一个好的思路,Mozilla XUL/XPCOM是近期考虑的一个方向;另外一些用户又期望将平台搭建到Eclipse平台,毕竟现在这上面的东西已经有非常多了,可以很好地利用一下。
这 个Browser控件和缺省的Browser控件是不一样的,我们平时见到的缺省Browser控件,在Windows上用的是IE内核,在MacOSX 上用的是Safari,在Linux上。。。不知道,所以它是最最简单的浏览器,不具备任何可以定制的功能,除了显示一张HTML页面外,没有任何用处。 (你该不会想用Eclipse写一个傲游出来吧)
但是Mozilla内核的浏览器控件就不同了,它意味着如果程序员平时为Firefox 写插件的形式,也可以被应用到RCP应用程序上来,设想一下我们拥有一个RCP+xulrunner的平台吧,RCP接收Java扩展, xulrunner接收xul和javascript扩展,那我们的平台——要么叫Fireclipse,要么叫Eclifox——就所向披靡了。即使不 利用它的可扩展性,单单就是能保证在不同平台上提供对Web应用程序的一致性展现一条,就足够臭美的了,更可以用写Eclipse插件的形式来限定浏览器 的行为。。。。。。唉,刚才是不是说过一个NetBeans in Eclipse啊?把那玩意扔了吧~~
现在既然这两块能够集成到一起,那么我们这边用Mozilla XUL/XPCOM来构建,他们想用Eclipse的就用,不想用的也可以直接用XUL和XPCOM。哈哈。
BTW: 晚上试验了一下,可以将Mozilla(具体说是XUL Runner)嵌入到一个SWT程序中去,成为一个Web Browser, 但还没试验成功如何显示一个XUL界面(也许是我没搞对chrome地址)。
参考:
- 比较Eclipse与Mozilla中的COM/XPCOM Java Wrapper技术 (标题有点绕,其实是说Eclipse原来对COM的支持 vs Mozilla的JavaXPCOM 这二者)
- JavaXPCOM
- PyXPCOM: 似乎Komodo的大部分组件都是用Python来搞的
- XPCOM in Delphi 7