2013-10-25 68 views
2

Google 是我最好的朋友,但我收到的信息太分散,並且很不清楚。沒有簡明的教程來描述我的需求。Eclipse Kepler RCP主要工具欄操作

我想將操作添加到我的RCP應用程序的主工具欄,但我需要對此進行徹底解釋的各種方式。但是因爲這是StackOverflow,所以我會把問題寫下來,並希望答案能夠解決。

  • 這是添加操作的方式?通過ActionBarAdvisor或通過plugin.xml

  • 可以將動作添加到主工具欄只有使用plugin.xml

  • 有多少步可以通過擴展添加操作? (handlers,commands, menuContribution等)

  • 哪一個是行動實施的最佳家長? org.eclipse.jface.action.Actionorg.eclipse.ui.menus.WorkbenchWindowControlContribution?甚至org.eclipse.ui.commands.AbstractHandler

  • 什麼具體的工作臺,行動(保存撤消重做等)?這些是如何添加的?

  • 在Eclipse Kepler IDE中,coolbar看起來很漂亮。你甚至可以移動工具欄。那實施得如何?即使插件間諜也找不到。

  • 因爲我有幾個Perspective s,每個都會在主工具欄上有自己的貢獻。這是否意味着我有義務在各處使用plugin.xml擴展?


TL; DR:工作臺CoolBar的行動,包括 保存和其他 Perspective的行爲。怎麼樣? ( actionSets擴展==不推薦)。

回答

2

真正新的方法是使用純粹的e4 RCP,它將新的應用程序模型與命令和處理程序一起使用! (但e4不支持很多現有的代碼)。在e4中,菜單和工具欄在應用程序模型中定義。命令和處理程序的使用方式與傳統代碼類似(但處理程序的實現方式不同)。

對於Eclipse 3風格,你已經發現有混亂或做事的方式。 Eclipse 4.3確實棄用了一些最舊的版本(現在在plugin.xml中標記)。

如果您正在編寫使用自己的ActionBarAdvisor的RCP,那麼您可以在那裏定義工具欄項目。或者您可以在plugin.xml中爲各個插件定義它們。這兩種方法都很好。 Eclipse本身在顧問程序中定義了核心操作,並在其plugin.xmls中定義了更多插件。

諸如的保存的操作應該在顧問程序中創建並使用RetargetAction需要由多個部分(如編輯者)處理。這允許每個單獨的部分利用全局定義的動作來掛鉤自己的動作。這也可以通過commands和多個handlers來完成,它們更接近於e4風格。

org.eclipse.ui.menus現在是對菜單和工具欄作出貢獻的主要擴展點(忽略所有棄用的部分)。這幾乎迫使你使用commandshandlers

Eclipse操作欄顧問程序是org.eclipse.ui.internal.ide.WorkbenchActionBuilder雖然它很大,但可能有所幫助。

我認爲開普勒的coolbar是使用新的e4應用程序模型構建的,樣式使用了一些棘手的CSS。

+1

將整個應用遷移到純e4並不值得,因爲這需要一點時間。目前它使用了不推薦使用的'actionSets','viewActions'和其他舊東西,因此在Windows上導致非常惱人的可視錯誤(特別是在OSX上少一點)。你對org.eclipse.ui.menus擴展有什麼看法?這是否是上述的方便替代品?鑑於你的e4體驗。 – GGrec

+1

如果使用任何'org.eclipse.ui.xx'插件或依賴'IWorkbench'的任何東西,遷移到純e4是很困難的。只對真正有用的新應用程序(或像我一樣,你有很多時間可用)。 –

+0

再次保存您。 :-) 謝謝。 – GGrec