PropertyAcess:在PropertyAcess中定义标签的条件值

时间:2013-08-08 21:16:57

标签: gwt gxt

我有一个名为Field的模型,它有id和label。

我已经定义了PropertyAcess,如下所示。我想以这样的方式更改它,即我可以根据条件显示标签,即如果field.getLabel()为null,则使用field.getId()作为标签。我该如何实现

interface FieldProperties extends PropertyAccess<Field> {
  ModelKeyProvider<Field> id();

  LabelProvider<Field> label();

  @Path("label")
  ValueProvider<Field, String> labelProp(); 
}

由于

1 个答案:

答案 0 :(得分:0)

PropertyAccess工具旨在让您轻松快速构建基于bean上特定getter / setter的ValueProviderModelKeyProviderLabelProvider个实例像对象。如果您不希望访问单个属性,请直接实现该接口。

在您的情况下,因为您希望LabelProvider返回getLabel(),除非它为null,然后是getId(),您可能会执行以下操作:

public LabelOrIdLabelProvider implements LabelProvider<Field> {
    @Override
    public String getLabel(Object item) {
        return item.getLabel() == null ? item.getId() : item.getLabel();
    }
}

如果您想要自定义行为,请自行构建以完成您所需的操作。如果您只是想要阅读单个getter的简单行为,PropertyAccess可以帮助您节省几行代码。