邋遢居

          我的Java天堂

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks
          定位Eclipse源碼

          前兩天在網(wǎng)上看到一個需要把outline最大化的需求。我就想啊這個Ctrl +M不就的了(呵呵,這個快捷我經(jīng)常用。快成了條件反射了)。在往下看發(fā)現(xiàn)他的需求要求用編程實(shí)現(xiàn)。唉這個時候我的Ctrl + M就用不上了。

          然后我就想tmd,這個功能既然Eclipse本身已經(jīng)實(shí)現(xiàn)了,那么肯定就回有這樣的代碼。我需要做的就是把這段代碼找出來。好了,確定這個目標(biāo)就好辦了。

          下面就得想辦法怎么把這個功能地位到Eclipse源碼中了。我現(xiàn)在知道得就只是Ctrl + M可以喚醒這部分得功能。其他的就什么都不知道了。那我怎么定位到這部分的源碼呢。天哪。我該怎么辦啊。

          后來理了一理想起來Eclipse中對于快捷鍵的實(shí)現(xiàn)。他們都是通過accelerator來定義的。而accelerator后面一般回對應(yīng)到一個action。這個action會真真的來完成這個快捷鍵所要完成的功能。這樣一想,心里有了一點(diǎn)底。那么現(xiàn)在就把目標(biāo)鎖定到找到相應(yīng)的action的實(shí)現(xiàn)就算完成了。對于找出相應(yīng)的action的方法是通過找到Ctrl+M向?qū)?yīng)的accelerator

          那么這個action會在什么地方實(shí)現(xiàn)呢。我就打開了Plug-in Registry視圖來隨便看看。看看能有什么意外收獲。

          plug-in.jpg


          還真巧在發(fā)現(xiàn)了有org.eclipse.ui這個插件。再點(diǎn)進(jìn)去看到他的Extensions

          extends.jpg
          居然有Maximize Active view or Editor這個擴(kuò)展點(diǎn)。大膽猜測org.eclipse.ui會提供一個關(guān)于“Maximize Active View or Editor”的實(shí)現(xiàn)。為了證實(shí)我的猜想,我打開了org.eclipse.uiplugin.xml文件。看到有下面這一段。
          command.jpg

          這一段證實(shí)了我的猜想。

          下面如果能找到那各類實(shí)現(xiàn)了這個commandok了。找這個就比較容易了。呵呵。只要看看那各類里面有

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

          這樣的代碼就可以搞定了。

          最后查得org.eclipse.ui.internal. MaximizePartAction在他的構(gòu)造函數(shù)你發(fā)現(xiàn)了這樣的代碼。
          control.jpg
          不用多想了,他肯定是實(shí)現(xiàn)了這個使視圖最大化的功能了。看了他的run函數(shù)的內(nèi)容更加確定就是他了。
          run.jpg
          而且就是toggleZoom搞定這一切。自己寫了測試小測了一下。果然是他。呵呵,這樣就完成一次代碼定位的過程。爽了一把。離Eclipse寶庫又近了一點(diǎn)點(diǎn)。



          posted on 2006-01-22 23:00 Jet Geng 閱讀(3139) 評論(2)  編輯  收藏 所屬分類: Eclipse

          Feedback

          # re: 定位Eclipse源碼 2006-05-03 22:11 綠色使者、綠色心情
          好文章,寫得很清晰,方法很好的,想想前一段時間看jetspeed2的源代碼,也是這樣先從表象開始定位,逐步布進(jìn),到最終定位到實(shí)現(xiàn)  回復(fù)  更多評論
            

          # re: 定位Eclipse源碼 2008-08-12 14:59 HB
          不錯不錯~~  回復(fù)  更多評論
            

          主站蜘蛛池模板: 武隆县| 绵阳市| 阿巴嘎旗| 东安县| 赣榆县| 阳原县| 遵义市| 嘉鱼县| 宾川县| 永登县| 阳高县| 浦县| 衡阳市| 九龙坡区| 外汇| 运城市| 康马县| 仁怀市| 江门市| 禹州市| 朝阳区| 高要市| 黄梅县| 建平县| 太白县| 宝山区| 隆林| 紫金县| 称多县| 庆元县| 屏东县| 巴东县| 墨脱县| 兰西县| 乐昌市| 城固县| 尖扎县| 公主岭市| 海阳市| 巫山县| 柳州市|