2009-08-02 81 views
2

我想在eclipse插件中以編程方式打開「Ctrl-Shift-T」對話框(查找類型)。 我試過FilteredItemsSelectionDialog和ResourceListSelectionDialog,但是如何獲取工作區中的所有類型?如何在eclipse中以編程方式打開查找類型對話框

謝謝, 伊多。

+0

你確實想打開對話框還是直接檢索所有結果? – 2009-08-02 12:28:54

+0

我想打開對話框,讓用戶選擇他想要的類型,並且在他選擇後,我想以完全限定名稱的字符串形式得到結果。看起來OpenTypeSelectionDialog完成了這項工作,但不鼓勵。 – Ido 2009-08-02 14:13:58

回答

3

請看org.eclipse.jdt.internal.ui.actions.OpenTypeAction瞭解Eclipse如何處理它。關鍵部分是這樣的:

SelectionDialog dialog= new OpenTypeSelectionDialog(parent, true, 
    PlatformUI.getWorkbench().getProgressService(), null, 
    IJavaSearchConstants.TYPE); 
dialog.setTitle(JavaUIMessages.OpenTypeAction_dialogTitle); 
dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage); 

int result= dialog.open(); 

其中parent是要打開對話框的組合。通常情況下,活動工作臺的外殼,獲得人:

Shell parent= JavaPlugin.getActiveWorkbenchShell(); 

OpenTypeSelectionDialog是在內部包,所以你會得到一個「望而卻步訪問」的警告。只要你意識到我推薦使用這種類型的風險。 「沮喪」是一個警告,不是一個錯誤,實際上Eclipse會引入一個OpenTypeSelectionDialog,而不是改變當前的簽名。 Eclipse平臺和主要產品儘可能保持兼容性以鼓勵創新(請參閱Wiki中的policy)。 一般來說,如果您不願意使用幫助程序,則可以通過使用幫助程序來屏蔽代碼的其餘部分,以避免API更改。這意味着如果引用類型發生更改,則必須更改單個點。

另一種方法是讓你自己實現對話框及其父類,但父類FilteredTypesSelectionDialog有超過20個內部引用,這會使問題變得更糟。

相關問題