E4 RCP TableViewerBuilder取值

来源:互联网 发布:手机淘宝店铺代码 编辑:程序博客网 时间:2024/05/01 06:25

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>>() {@Overridepublic 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>() {@Overridepublic Object get(User user) {return user.getName()!=null?user.getName():"";}});

好,就这样. 有什么疑问请留言

原创粉丝点击