邋遢居

我的Java天堂

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks
定位Eclipse源码

前两天在网上看到一个需要把outline最大化的需求。我就想啊这个Ctrl +M不就的了(呵呵,这个快捷我经常用。快成了条件反射了)。在往下看发现他的需求要求用编程实现。唉这个时候我的Ctrl + M就用不上了。

然后我就想tmd,这个功能既然Eclipse本身已经实现了,那么肯定就回有这样的代码。我需要做的就是把这段代码找出来。好了,确定这个目标就好办了。

下面就得想办法怎么把这个功能地位到Eclipse源码中了。我现在知道得就只是Ctrl + M可以唤醒这部分得功能。其他的就什么都不知道了。那我怎么定位到这部分的源码呢。天哪。我该怎么办啊。

后来理了一理想起来Eclipse中对于快捷键的实现。他们都是通过accelerator来定义的。而accelerator后面一般回对应到一个action。这个action会真真的来完成这个快捷键所要完成的功能。这样一想,心里有了一点底。那么现在就把目标锁定到找到相应的action的实现就算完成了。对于找出相应的action的方法是通过找到Ctrl+M向对应的accelerator

那么这个action会在什么地方实现呢。我就打开了Plug-in Registry视图来随便看看。看看能有什么意外收获。

plug-in.jpg


还真巧在发现了有org.eclipse.ui这个插件。再点进去看到他的Extensions

extends.jpg
居然有Maximize Active view or Editor这个扩展点。大胆猜测org.eclipse.ui会提供一个关于“Maximize Active View or Editor”的实现。为了证实我的猜想,我打开了org.eclipse.uiplugin.xml文件。看到有下面这一段。
command.jpg

这一段证实了我的猜想。

下面如果能找到那各类实现了这个commandok了。找这个就比较容易了。呵呵。只要看看那各类里面有

setActionDefinitionId("org.eclipse.ui.window.maximizePart");

这样的代码就可以搞定了。

最后查得org.eclipse.ui.internal. MaximizePartAction在他的构造函数你发现了这样的代码。
control.jpg
不用多想了,他肯定是实现了这个使视图最大化的功能了。看了他的run函数的内容更加确定就是他了。
run.jpg
而且就是toggleZoom搞定这一切。自己写了测试小测了一下。果然是他。呵呵,这样就完成一次代码定位的过程。爽了一把。离Eclipse宝库又近了一点点。



posted on 2006-01-22 23:00 Jet Geng 阅读(3119) 评论(2)  编辑  收藏 所属分类: Eclipse

Feedback

# re: 定位Eclipse源码 2006-05-03 22:11 绿色使者、绿色心情
好文章,写得很清晰,方法很好的,想想前一段时间看jetspeed2的源代码,也是这样先从表象开始定位,逐步布进,到最终定位到实现  回复  更多评论
  

# re: 定位Eclipse源码 2008-08-12 14:59 HB
不错不错~~  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: