2011-11-13 46 views
3

我需要將一個導入嚮導添加到我的eclipse-rcp應用程序中。爲此,我想只用我的類別使用現有的嚮導。我在互聯網上找到了幾個例子,但他們沒有多大幫助。如何在Eclipse-RCP中從導入嚮導中刪除類別?

我的問題是,我不僅有我的類別,而且還有常規類別。如果可能,我想將其刪除。其實我找到了一個解決方案here,但它似乎沒有工作。我試圖在WorkbrenchWindowAdvisor和ActionBarAdvisor中提供代碼片段,甚至在我的嚮導創建之前執行它,但具有5個可能的嚮導的常規類別仍然存在。任何建議,如何刪除它或至少隱藏?

BR, AlexG。

回答

0

這聽起來像是與您的RCP運行配置和插件相關的。

org.eclipse.ui.ide插件貢獻了常規類別(帶有它的嚮導首選項,文件系統,現有項目,歸檔文件)。

您的RCP應用程序需要此插件嗎?

看看this question related to the Help Menu in an RCP,因爲它描述瞭如何檢查和更改所使用的插件。

+0

感謝您的回答,但不幸的是我無法刪除org.eclipse.ui.ide插件,因爲它是其他插件所必需的。 –

3

通過使用org.eclipse.ui.activities擴展點和適當的activityPatternBinding(儘管他們在您鏈接的頁面上說了什麼),您可以選擇哪些貢獻在您的RCP應用程序中可見。

使用此擴展點,您可以使用與除您自己的貢獻之外的任何內容匹配的模式定義一個活動(例如,pattern="[^\.]++\.(?!myplugin).*"匹配以ID-s不以com.myplugin開頭的貢獻)。此活動在未啓用時將排除除您自己之外的用戶界面的所有貢獻。

有了另一個靈活性,您將定義一個模式,其中包含您希望從其他插件中提供的貢獻(例如pattern=".*file\.import"與「文件」菜單中的「導入...」菜單項相匹配)。這是使用

PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(...); 

請注意,這個特殊的解決方案將禁用(幾乎)所有的文件,除了在Eclipse的捐款活動,你將在你的WorkbenchAdvisor啓用>導入...這將需要相當多的挖掘如果您希望啓用許多功能並且僅禁用小部件。但大多可能找出正確的模式來實現這一點。

+0

謝謝你的回答,我認爲這是唯一適當的解決方案,你出於某種原因,我不能使它工作。當我定義一項僅與我的貢獻相匹配的活動時,我仍然可以看到其他一些貢獻。 –

+0

@AlexanderGavrilov事實上,由於不同的原因,某些UI元素仍然可見,這取決於具體情況。例如,您不能禁用「Java Project」嚮導等主要嚮導。或者,如果您重複使用某些動作構建器,而不是那些可能忽略活動的動作構建器或者有時在Eclipse中有錯誤... –

+0

@MarttiKäärik:使用正則表達式的優秀解決方案! –

0

您指出的解決方案的問題是它使用NewWizardRegistry檢索嚮導的類別。相反,如果你想刪除導入嚮導,你應該輪詢工作臺的ImportWizardRegistry:

AbstractExtensionWizardRegistry importWizardRegistry =(AbstractExtensionWizardRegistry)PlatformUI.getWorkbench()。 getImportWizardRegistry();

其他都沒問題。

相關問題