2016-07-11 42 views
0

我有一個小問題與XWT,簡單地說,我有大約具有以下結構的foo.xwt文件:XWT:findElementByName返回null用於複合資源

<Composite 
    <Composite.Resources> 
     <r:MyDataProvider key ="myInstance" name="myInstance" ObjectId="myInstanceObjectId"/> 
    </Composite.Resources> 

    <Composite> 
     <w:SmartSpinner name="mySmartSpinner" .... /> 
    </Composite> 
</Composite> 

在foo中。 java類,我有以下方法:

@PostConstruct 
protected void init() { 
    SmartSpinner mySpinner = (SmartSpinner) XWT.findElementByName(parent,"mySmartSpinner"); 
    MyDataProvider myDataProvider = (MyDataProvider) XWT.findElementByName(parent,"myInstance") 
} 

找到了SmartSpinner,沒問題。 但是,MyClass實例返回null。

我找不到關於XWT的嚴重文檔,而且我基本上對它的工作方式,它給出的接口等方面一無所知......我確實印象深刻的是,之前的人實際上設法創建了一個工作接口。所以,如果你有任何想法,它將非常感激

+0

可能會嘗試修復XWT.findElementByName(parent,'myInstance')中的單引號 – avojak

+0

另外:「我找不到有關XWT的嚴重文檔」您是否嘗試過官方[XWT文檔](https:// wiki.eclipse.org/XWT_Documentation)?我看到一個「Hello World」的例子,並且看起來很好的介紹了XWT。 – avojak

+0

我修復了''問題,謝謝,但是這不在我的代碼中。 是的,我瞭解「hello world」文檔,但是我們的產品遠遠超出了本文檔中的內容。 此外,我找到了一個方法「XWT.findDataProvider」。由於MyDataProvider實現了IObjectDataProvider接口,我試圖用它來獲取DataProvider。到目前爲止,我設法獲得的唯一東西類似於對我所有類成員的完全訪問 - 即使是私有繼承 - ,但仍然沒有數據提供者。 – Zangdar

回答

0

資源不是一個元素,所以,請嘗試XWT.findResource(parent, "myInstance")來代替。

+0

謝謝,這種方法實際上給了我一個我的IDataProviders列表 但是,我選擇了另一種基於靜態字符串的解決方案,該字符串已經從一個動態字典中更新,該字典已經實現並用於java應用程序。 我唯一的問題是變量必須是公開的,但我發現這比XWT中的硬編碼字符串更好。即使這個字符串被重寫,它可能會鼓勵人們再次開始複製XWT,而我不希望這樣。 完美的解決方案是使用私人成員和吸氣劑,但我不知道這是否可能。 – Zangdar