2014-11-24 40 views
0

我正在使用Liststore將數據從DTO對象顯示到網格中。 大部分對象屬性都是字符串,並且可以很容易地顯示。但是其中的一個參數是一個字符串集合 的綜上所述,我的目標看起來如下:GXT 3使用ListStore來顯示每個值集合中的一行

public class MyObject{ 
    private String param1; // "val1" 
    private String param2; // "val2" 
    private Set<String> param3; // param3 contains "value3-1", "value3-2" and "value3-3" 
    ... 
} 

我想在我的網格在我的參數3各元素顯示一行。 類似的東西:

param1 | param2 | param3
val1 | val2 | value3-1
val1 | val2 | value3-2
val1 | val2 | value3-3

你知道一個簡單的方法來操作ListStore嗎?

謝謝

回答

1

在ListStore每個項目對應於網格中的行 - 這樣,你需要把數據在網格中。您應該能夠輕鬆遍歷M​​yObject實例列表並將它們轉換爲MyObjectRow實例 - 甚至可以包含對「真實」MyObject實例的引用,以便於編輯/更新。

但是,因爲它是Set,所以您需要小心 - 套件沒有訂單!這意味着你可能沒有獲得價值3-1,價值3-2價值3-3,但他們可以以任意順序到達。強烈考慮使用List而不是順序對你有所重要。

隨着List然後,你可以有MyObjectRow是這樣的:

public class MyObjectRow { 
    private MyObject wrapped; 
    private int index; 

    //... 
    public String getParam1() { 
     return wrapped.getParam1(); 
    } 
    public String getParam2() { 
     return wrapped.getParam2(); 
    } 
    public String getParam3() { 
     return wrapped.getParam3().get(index); 
    } 
} 

然後,對於每個MyObject來,從N MyObjectRow,其中N是參數3項數。

+0

我想過這樣的事情,但我希望能避免創建一個新的結構。我想這種情況下沒有解決方法。謝謝回覆。 – 2014-11-24 23:45:21

+0

如果它的情況是「我想讓這個中間對象爲我做思想」,那麼沒有。 ListStore的目的不是網格恰好相處的數據庫,而是網格行的*後備存儲。 – 2014-11-25 00:21:09

相關問題