2012-12-13 53 views

回答

8

它沒有一個內置的,但它很容易建立自己的。看看這個博客文章的思考類似,特別是ValueProvider部分:http://www.sencha.com/blog/building-gxt-charts

ValueProvider的目的是一個簡單的類似於反射的機制來讀取和寫入某些對象的值。然後PropertyAccess<T>的目的是自動生成一些基於getter和setter的value/modelkey/label提供程序實例,這些實例在Java Bean(一種非常常見的用例)中找到。它沒有太多的複雜性,只是簡單地讓編譯器爲你做一些非常簡單的樣板代碼。

正如該博客文章所示,只需通過實現接口即可輕鬆構建ValueProvider。下面是一個快速示例,說明如何製作一個讀取Map<String, Object>的文章。當您創建的每個實例,你告訴它你工作過的哪個鍵,以及數據類型時,它所讀出該值應該發現:

public class MapValueProvider<T> implements 
      ValueProvider<Map<String, Object>, T> { 
    private final String key; 
    public MapValueProvider(String key) { 
     this.key = key; 
    } 

    public T getValue(Map<String, Object> object) { 
     return (T) object.get(key); 
    } 
    public void setValue(Map<String, Object> object, T value) { 
     object.put(key, value); 
    } 

    public String getPath() { 
     return key; 
    } 
} 

你再建下列內容之一,你希望每個關鍵讀出來,並且可以將它傳遞給ColumnConfig實例或任何可能期望它們的內容。

但主要的是,ValueProvider只是一個接口,可以任何你喜歡的方式實現。

+0

非常好!非常感謝 – Stevko