2016-09-27 75 views
1

我們在3.x上有一個Eclipse IDE應用程序,它使用各種newWizards來允許用戶創建不同的文件。儘管這些文件在內容上略有不同,但嚮導的結構非常相似。因此,一個合理的面向對象的方法就是從同一個類中實例化不同的嚮導並用不同的數據初始化它們。如何區分Eclipse RCP中的嚮導?

問題:

要什麼嚮導的數據,我們需要一種方法來區分不同的已實例嚮導的需求(例如調用嚮導的init()方法中)決定。

有沒有辦法做到這一點?它會例如如果有人知道如何從實例化嚮導中獲取在擴展點中定義的嚮導ID,可以提供幫助。

回答

2

如果您的嚮導執行IExecutableExtension,它將傳遞表示其創建的擴展的配置元素。

您還可以使用擴展工廠,因爲您可以指定實現IExecutableExtensionFactory的類型。

該接口允許您控制如何創建提供給擴展點(您的案例中的嚮導)的實例。

擴展示例:

<extension point="org.eclipse.ui.wizards"> 
<newWizard 
    name="..." 
    class="com.example.WizardFactory"> 
</newWizard> 

注意,延伸工廠也可以實現IExecutableExtension來訪問擴展創建擴展的可執行類屬性之前。

+0

謝謝。這正是我所期待的 – lwi