為什么要定制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出現。透視圖也是插件實現的,所以我們只需要刪除相應的插件就行,
例如我們想刪除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