E4 RCP TableViewerBuilder取值

TableViewerBuilder的取值的方式有兩種.

一、bindToProperty(propertyName)

二、bindToValue(valueHandler)


根據TableViewerBuilder.setInput()方法注入的值類型,選擇使用哪個取值方式.

public class User{
   private Integer id;
   private String name;
}

/**-------省略get(),set()方法--------------*/
如果注入的值是一個實體類集合的話,我們就可以用第一種方法

userName.bindToproperty("name");

TableViewerBuilder.setInput(List<User> users);

如果注入的值是一個HashMap集合或者其他集合的話,用第一種方法就不太合適了.

而且第一種方法不靈活,中間無法操控它顯示的值.如果值是null的話,它就會顯示出null,這顯然不是我們想要的.

接下來看bindToValue(valueHandler)是如果處理這些問題的

userName.bindToValue(new BaseValue<HashMap<String,Object>>() {
	@Override
	public Object get(HashMap<String,Object> oneMap) {
	Object object = oneMap.get("name");
	if(null==object)
		return "";
	return (String)object;
	}
});


這是讀取HashMap中的值的做法,另外還有一個問題,就是對象集合null值得問題.

userName.bindToValue(new BaseValue<User>() {
	@Override
	public Object get(User user) {
		return user.getName()!=null?user.getName():"";
	}
});


好,就這樣. 有什麼疑問請留言

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章