邋遢居

          我的Java天堂

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

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

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

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

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

          那么這個action會在什么地方實現(xiàn)呢。我就打開了Plug-in Registry視圖來隨便看看??纯茨苡惺裁匆馔馐斋@。

          plug-in.jpg


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

          extends.jpg
          居然有Maximize Active view or Editor這個擴展點。大膽猜測org.eclipse.ui會提供一個關于“Maximize Active View or Editor”的實現(xiàn)。為了證實我的猜想,我打開了org.eclipse.uiplugin.xml文件??吹接邢旅孢@一段。
          command.jpg

          這一段證實了我的猜想。

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

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

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

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



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

          Feedback

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

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

          主站蜘蛛池模板: 益阳市| 临沭县| 澳门| 上栗县| 松江区| 姚安县| 循化| 永寿县| 申扎县| 八宿县| 邻水| 金坛市| 新干县| 武乡县| 乌鲁木齐县| 芮城县| 丘北县| 商河县| 富蕴县| 大竹县| 左云县| 会东县| 长治县| 大渡口区| 常山县| 廉江市| 玉屏| 上饶市| 中超| 灵石县| 洪泽县| 宜昌市| 娄底市| 福泉市| 思茅市| 江北区| 阳谷县| 松溪县| 廊坊市| 博乐市| 民乐县|