2013-04-04 51 views
0

我有一個MyModel形式的BaseModelData的簡單擴展,我可以調用新的MyModel()。getObj1()。getObj2()獲得obj2的字符串值。我有一些MyModel實例,所以我想用每個MyModel實例的obj2值填充一個ComboBox實例。首先,我調用了ComboBox.setDisplayField(「obj1.obj2」),因爲使用這種分層屬性方法適用於TextField.setName()情況。然後,我帶了一個包含所有MyModel實例的商店,並通過setStore()將其設置爲ComboBox。但是,組合框是空的。它看起來像通過ComboBox.setDisplayField()設置上述屬性的方式與TextField.setName()不同。我嘗試使用我自己的ListModelPropertyEditor實例,但沒有成功。所以我有什麼選擇?設置GXT的ComboBox.setDisplayField的分層屬性

謝謝你的時間!

回答

0

我不知道從​​方法訪問分層數據,但你可以通過添加一種新的方法實現它說getObj2()MyModel類,這將從根本上代表obj1.obj2。現在

public Obj2 getObj2() { 
    return getObj1().getObj2(); //with possible null checks 
} 

你可以打電話ComboBox.setDisplayField("obj2")並完成這項工作。

+0

謝謝你的回覆,sanbhat。我已經考慮過了,這可能是我最後的選擇。問題是我的所有BaseModelData實例都是通過JAXB生成的,所以我想保持它們的層次結構不變。我非常滿意Field.setName()以這種分層方式接受值的事實,但對ComboBox沒有這樣做感到失望。所以我希望GXT方面的解決方案 – user1056027 2013-04-04 21:49:54

+0

你可以讓類Obj1(它在MyModel中引用)使擴展BaseModelData? – sanbhat 2013-04-05 09:14:32