2012-06-07 75 views
1

我一直在試圖弄清楚現在如何從正在開發的插件中調用Eclipse菜單項。說,爲了這篇文章,我想調用右鍵菜單中的eclipse「格式」菜單項來格式化一個源文件,我將如何通過調用該項目來完成此操作(即,不只是模仿該菜單項的效果,實際上調用它)?使用Eclipse JDT以編程方式調用菜單項目,插件開發

我不是在尋找如何格式化代碼,只是調用菜單項的想法。

我傾向於在IWorkbench,Shell,ToolBar,ToolItem等API信息,但我不知道。我一直無法在API或其他在線任何地方找到關於此主題的任何信息。有沒有更好的方法來做到這一點,而不是編程?

的Eclipse JDT - http://help.eclipse.org/indigo/index.jsp?nav=%2F3

編輯:

String commandId = "org.eclipse.jdt.ui.edit.text.java.format"; 
IHandlerService handlerService = (IHandlerService)(IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class); 
handlerService.executeCommand(commandId, null); 

這麼簡單。最難的部分是找到commandId,可以很容易地搜索,就像rlegendi提到的那樣。這正是我想要的。它通過ID訪問該插件,然後執行它。簡單而有效。感謝大家!

+0

「有更好的方法嗎」是的,根本不要這樣做! GUI元素不應該以編程方式觸發。相反,觸發底層功能。 –

+0

我想,但我該如何去尋找這個功能?有大量的功能提供,但我不知道如何訪問該信息。我不認爲我需要重新編寫經過嘗試,真實且清晰可用的代碼。 – HJM

+0

我知道,這不是你的錯。 Eclipse充滿了可怕的緊密耦合的代碼。希望其中一些在E4中會更好 –

回答

1

我不確定,但可能你想讀的是Command/Delegate框架。如果你安裝了Eclipse平臺SDK插件(默認選項)

順便說一句,你其實可以採取任何插件,是你當前的Eclipse產品的部分源代碼,看看(嘗試Ctrl+Shift+T和打字ISourceViewer例如,您可以找到FORMAT它,您可以使用Ctrl+Shift+G進行搜索),並且可以將任何這些插件項目導入到您自己的工作空間中進行檢查。

+0

太棒了!這是讓我在某個地方。我不知何故必須將多個命令綁定到一個項目,目前試圖找出答案,一旦解決就會發布答案。 – HJM

+0

感謝您指點我正確的方向!工作出色! – HJM

+0

不客氣,gl hf! – rlegendi

相關問題