- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Eclipse源码分析
ECLIPSE3.4源码分析
最近由于工作需要,对Eclipse3.4的源代码进行了一些分析,觉得这是件很有意义的事,希望能与大家交流交流。分析的源码版本为Eclipse3.4官网下载的文件名为“eclipse-sourceBuild-srcIncluded-3.4.2.zip”接下来一步一步开始对Eclipse进行解剖
源码包的结构:eclipse-sourceBuild-srcIncluded-3.4.2 ——features ——jdtcoresrc ——plugins ——其他的XML文件和instructions.html,还有一个bat这里主要分析下plugins下的一些常见的plugin的源码,以作为对基于Eclipse的插件程序修改的参考。plugins下有很多的Eclipse项目,可以直接导入到Eclipse中,但绝大部分的项目都是生成plugIn.jar的,不能直接执行。当然可以将jar打包后覆盖到原Eclipse中,那么新打开的Eclipse就是我们修改以后的效果了。这里采取更直接的办法。打开org.eclispe.ui.ide.application包,导入这里包下的Eclipse工程,发现这里工程下包含IDEApplication.java、IDEWorkbenchAdvisor.java、IDEWorkbenchWindowAdvisor.java、ResourcePerspective.java,这里表明这是一个可执行的Eclipse插件。运行后显示为基本的Resource透视图,没有其他任何的插件效果。一下就将这个作为修改为的参考界面。
这是一个基本的资源透视图任何对它的修改几乎都要通过对内置的Eclipse 的包的修改来实现。比如修改菜单栏,修改视图等等。首先来修改菜单栏。导入org.eclipse.ui.ide包下的工程。这是个Eclipse 的基本的IDE的环境界面的创建主要源文件包括src和extensions两部分。先看看菜单栏是怎么生成的,跟踪一下源码。File-New-Project1)打开org.eclipse.ui.internal.ide包中的WorkbenchActionBuilder.java文件。 fillMenuBar()是创建菜单来的主要方法,其他2个fillActionBars()和fillCoolBar()则分别是刷新菜单项和创建工具栏的主要方法。fillMenuBar()方法中有很多 menuBar.add(createFileMenu()) 这种方法,调用了createXXX来创建各自的菜单项。不妨进入createFileMenu()看看,里面又有很多add方法,其中涉及到New的就是newWizardMenu,添加如下语句后New菜单消失。 /************************************************************************************ * Modified by LiXP * add newMenu.remove(this.newWizardMenu); *************************************************************************************/ /newMenu.remove(this.newWizardMenu);2)newWizardMenu是创建New子菜单的关键变量,为NewWizardMenu(包org.eclipse.ui.ide中的extensions下的org.eclipse.ui.actions中)类的实例,类NewWizardMenu又继承自BaseNewWizardMenu(包org.eclipse.ui.workbench中的org.eclipse.ui.actions),所以对New子菜单的修改就比较麻烦了,涉及到对这两个类的修改。NewWizard
文档评论(0)