Eclipse - 定制Eclipse IDE之界面篇


 

為什么要定制IDE?

在工作時候,當公司有了自己的框架,給自己開放人員用,甚至是可以賣的時候,

我們可以做成一個產品,而這個產品將包括框架本身、文檔、工具、教程等等。工具之中最重要的莫過於開發工具(IDE)、調試工具。

目前apicloud或dcloud這些hybrid框架都是基於Eclipse做定制的,只不過dcloud做得比較徹底。

怎么定制IDE?

我們之所以能夠定制Eclipse IDE,並不是我們寫的東西有多厲害,

而是Eclipse的本身,它是一個平台,能夠讓我們編寫插件拓展功能,達到支持各種語言編輯的IDE。

在Eclipse官方下載有很多版本的Eclipse,可以說這就是不同插件組裝而成的。

所以我們定制IDE,其實就是編寫Eclipse插件 (Eclipse plug-in)

手動定制界面過程

注意里面列舉的目錄要按你使用eclipse決定,可能版本會不同

(1). 啟動頁

啟動頁是一個門面,我們可將他換成可以體現自己產品的圖片。

替換過程:對應目錄 eclipse\plugins\org.eclipse.platform_4.4.2.v20150204-1700\splash.bmp,只需要換這張圖片即可。

(2). IDE圖標

這些圖標的尺寸分別是16*16、32*32、48*48、256*256,是用來做應用圖標或IDE窗口圖標,

我們只需要替換這四個尺寸的圖標即可使得整個IDE大變樣。

替換過程:

對應目錄 eclipse\plugins\org.eclipse.epp.package.rcp_4.4.2.20150219-0708

對應目錄 eclipse\plugins\org.eclipse.platform_4.4.2.v20150204-1700

覆蓋掉里面的eclipse16.png,eclipse32.png,eclipse48.png,eclipse256.png 替換即可。

(3) . eclipse.exe圖標

當我們想把圖標換得更徹底的時候,即連eclipse.exe圖標都換。

用IconWorkshopshiyongban 修改exe圖標,這個才是最直接完整的工具。

替換過程:

1. 用IconWorkshopshiyongban 打開 eclipse.exe,我們看到下面界面,我們第二步用的圖標又派上用場了(尺寸一模一樣)。

2. 然后用這個工具打開那四個不同尺寸的圖標,會得到下面界面。

3.雙擊 eclipse.exe里面任一圖標,然后用復制粘貼的辦法覆蓋掉所有尺寸圖標。

4.保存即可,就會發現exe的圖標已經換了,在不同尺寸下都顯示正常。

ps:可能會出現圖標會沒替換到的樣子,這時你可以換個目錄來看,就正常的,那只是應用圖標沒刷新而已。

(4). Eclipse.icns

這個是mac上Eclipse的應用圖標,路徑如下(我們也要輸出mac的IDE)

替換過程:其實替換過程跟eclipse.exe一樣,只不過需要的尺寸多了兩個512* 512、1024*1024。

PS:如果發現啟動程序后,發現任務欄的應用圖標變暗變模糊了,就需要在icns文件加上128*128尺寸的。

 

插件定制界面過程

上面介紹的是手動更換界面的辦法,而接下來就是介紹插件改變界面的東西

推薦使用eclipse-rcp-and-rap-developers這個Eclipse作為開放插件的IDE

下載地址: http://www.eclipse.org/downloads/packages/eclipse-rcp-and-rap-developers/lunasr2

(1). 插件hello world工程

在講插件改變界面時,簡單介紹一下創建插件的過程,請查看:Eclipse Plug-in Hello world

(2). IDE標題

在第一個張圖片中,我們可以看到IDE標題是,BingoTouch - welcome - BingoTouch IDE,

這個標題是由三部分組成的,透視圖名稱- 編輯區名稱 - 產品名稱。

其中透視圖和編輯區的名稱都好理解,

而產品名稱是在eclipse\plugins\org.eclipse.epp.package.rcp_4.4.2.20150219-0708\plugin.xml里面定義的。

所以IDE的名稱並不是固定的,是由這三部分組成,我們也不必去改它們。

(3). 隱藏菜單欄、工具欄

很多時候,菜單欄或工具欄上的一些功能圖標我們並不需要,為了使IDE看起來比較簡潔,我們需要隱藏一些菜單、工具欄圖標。

在前面說過,IDE整個界面關鍵的是透視圖,菜單欄、工具欄的隱藏只是對於某個透視圖來說的,

例如你定制自己的透視圖,其他透視圖是不會影響到的。隱藏代碼:

<extension
    point="org.eclipse.ui.perspectiveExtensions" >
    <perspectiveExtension
        targetID="com.bingo.ide.perspective" >
            <hiddenMenuItem id="org.eclipse.ui.file.export"/>
            <hiddenToolBarItem id="org.eclipse.mylyn.tasks.ui.command.openTask"/>
    </perspectiveExtension>
</extension>

解析:

hiddenMenuItem :隱藏菜單欄             hiddenToolBarItem : 隱藏工具欄

1.這個兩個標簽是寫在拓展點(extension point)里面的,targetID是指明對哪個透視圖生效。

這里面有個關鍵的地方,就是id的獲取,菜單欄、工具欄的選項對應的id是什么,這是非常關鍵的。

2.我收集了Eclipse 常用的Id,同樣因為篇幅原因,我把他收集在另一篇文章中:Eclipse 擴展點常量ID

3.可能有人會發現,上面常量ID可能不夠,有些我們想隱藏的沒有在里面,那怎么辦。辦法總是有的,只要你尋找。

我用了一種比較蠢但能解決問題的辦法,同樣因為篇幅原因,我把他寫在另一篇文章中:Eclipse 尋找迷失的ID

(4). 刪除透視圖 有些透視圖也是我們不想要的,例如下面這些透視圖我們不想在定制的IDE出現。

image

    透視圖也是插件實現的,所以我們只需要刪除相應的插件就行,

    例如我們想刪除Git的透視圖,在eclipse\plugins目錄搜索git關鍵字。

    將這兩個包刪掉,再次打開IDE時候,你會發現Git的透視圖不見了。

    所以請記住,刪透視圖即是刪插件。

 

   (5). 視圖定義

     視圖定義從下圖可看到有三部分,

     左邊是項目管理視圖,右上是編輯視圖,右下是控制台視圖 

     這視圖的定義可以用xml定義,也可以用代碼。

     建議是用代碼,因為這個自由度更高。

 

 

 

 

 

 

String editorArea = layout.getEditorArea();
//添加視圖
layout.addView(IPageLayout.ID_PROJECT_EXPLORER, IPageLayout.LEFT, 0.22f, editorArea);

IFolderLayout bottom =layout.createFolder("bottom", IPageLayout.BOTTOM, 0.75f , editorArea) ;
bottom.addView("org.eclipse.ui.console.ConsoleView"); 
//bottom.addView(IPageLayout.ID_PROBLEM_VIEW);

IViewLayout projectLayout = layout.getViewLayout(IPageLayout.ID_PROJECT_EXPLORER);
projectLayout.setCloseable(false);
projectLayout.setMoveable(false);
  

解析:其實代碼都比較好理解,不要使用xml配置,在代碼里面寫,可以添加一個folder包含多個窗口。

(6). 刪除啟動歡迎頁

有可能你不需要首次打開時顯示歡迎頁,你可以這樣刪除它。

eclipse\plugins\org.eclipse.epp.package.rcp_4.4.2.20150219-0708\plugin.xml 刪除:

<extension
     point="org.eclipse.ui.intro">
    <introProductBinding
         introId="org.eclipse.ui.intro.universal"
          productId="org.eclipse.platform.ide">
    </introProductBinding>
</extension>

 

 

原文:

【1】

【2】http://www.cnblogs.com/lovesong/p/4693467.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM