上文回顧:
定制Eclipse IDE之界面篇
這一篇文章將記錄一些Eclipse插件拓展(extension),簡單講述常用拓展的用法,但可能不會那么詳細。
我的主要插件的拓展如下:


一、org.eclipse.ui.startup
這一個拓展可以說很關鍵,他可以讓我們在eclipse啟動時候做一些事件(之后很多小功能東西依靠它做的)。
XML配置:
<extension point="org.eclipse.ui.startup"> <startup class="com.bingo.start.BTStart"> </startup> </extension>
對應實現類:
public class BTStart implements IStartup { public BTStart() { } public void earlyStartup() { //無關UI的代碼可寫這里 Job job = new UIJob("") { public IStatus runInUIThread(IProgressMonitor monitor) { try { //涉及到UI的代碼寫這里,不然將操作不了 } catch (ExecutionException e) { e.printStackTrace(); return Status.CANCEL_STATUS; } return Status.OK_STATUS; } }; job.schedule(300L); //300ms后執行 } }
二、org.eclipse.ui.newWizards
這個是向導拓展。就類似新建項目,然后下一步下一步的操作。
在這里我用來做新建應用模板的工程,在向導拓展里面實現應用模板生成。


XML配置:
<extension point="org.eclipse.ui.newWizards"> <category id="bt_project" name="%category.name"> </category> <wizard category="bt_project" class="com.bingo.perspective.ui.wizards.BTProjectWizard" finalPerspective="com.bingo.ide.perspective" icon="icons/eclipse16.png" id="com.bingo.perspective.wizards.BTProjectWizard" name="%projcet.name" project="true"> </wizard> </extension>
對應實現類:
public class BTProjectWizard extends Wizard implements INewWizard{ }
具體代碼就不顯示,BTProjectWizard 只是一個容器,他還需要添加WizardPage進去。
另外可以將向導拓展添加到右鍵菜單上。
XML配置如下:
<extension point="org.eclipse.ui.navigator.navigatorContent"> <commonWizard associatedExtensionId="org.eclipse.ui.navigator.resourceContent" type="new" wizardId="com.bingo.perspective.wizards.BTProjectWizard"> <enablement> </enablement> </commonWizard> </extension>
三、org.eclipse.ui.menus
單獨在菜單欄添加項。
例如:我添加一個同步菜單


XML配置:
<extension point="org.eclipse.ui.menus"> <menuContribution allPopups="false" locationURI="menu:help?before=org.eclipse.equinox.p2.ui.sdk.install"> <command commandId="com.bingo.perspective.ui.SyncHandler" label="同步BingoTouch模板" style="push"> </command> </menuContribution> </extension> <extension point="org.eclipse.ui.commands"> <command defaultHandler="com.bingo.perspective.ui.handler.SyncHandler" id="com.bingo.perspective.ui.SyncHandler" name="同步BingoTouch模板"> </command> </extension>
實現類:
public class SyncHandler extends AbstractHandler { public SyncHandler() { } public Object execute(ExecutionEvent event) throws ExecutionException { //檢查模板版本 SyncResource.start(); return null; } }
四、org.eclipse.ui.perspectives
定義透視圖


XML配置:
<extension point="org.eclipse.ui.perspectives"> <perspective class="com.bingo.perspective.BingoTouchPerspective" fixed="true" icon="icons/eclipse16.png" id="com.bingo.ide.perspective" name="%perspective.name"> </perspective> </extension>
實現類:實現類內容就是對視圖的布局,在第一篇文章里面有寫。
五、org.eclipse.ui.actionSets
定義操作動作,可以放置到菜單欄或工具欄上。


XML配置:
<extension point="org.eclipse.ui.actionSets"> <actionSet label="BingoTouch Action Set" visible="true" id="com.bingo.functions.actionSet"> <menu label="%document.name" id="btDoc"> <separator name="btDocGroup"> </separator> </menu> <action class="com.bingo.perspective.ui.actions.OnlineDocumentAction" icon="icons/icon/faq.png" id="btFAQ" label="%faqdoc.name" menubarPath="btDoc/btDocGroup" toolbarPath="btDocGroup" tooltip="%faqdoc.name"> </action> <action class="com.bingo.perspective.ui.actions.OnlineDocumentAction" icon="icons/icon/uidoc.png" id="btUIDoc" label="%uidoc.name" menubarPath="btDoc/btDocGroup" toolbarPath="btDocGroup" tooltip="%uidoc.name"> </action> <action class="com.bingo.perspective.ui.actions.OnlineDocumentAction" icon="icons/icon/apidoc.png" id="btApiDoc" label="%apidoc.name" menubarPath="btDoc/btDocGroup" toolbarPath="btDocGroup" tooltip="%apidoc.name"> </action> </actionSet> </extension>
里面menubarPath、toolbarPath操作按鈕放或不放,放哪。
常用的拓展就先介紹到這里,目的是希望大家知道有這東西,而不是具體怎么實現。
本文為原創文章,轉載請保留原出處,方便溯源,如有錯誤地方,謝謝指正。
本文地址 : http://www.cnblogs.com/lovesong/p/4693666.html
本文地址 : http://www.cnblogs.com/lovesong/p/4693666.html