Apache Isis:@Property(编辑= Editing.ENABLED)对ViewModel不起作用

时间:2017-06-15 13:50:18

标签: isis

我向ViewModel添加了一个属性,并使用Editing.ENABLED标记它。

@DomainObject(
        nature = Nature.VIEW_MODEL,
        objectType = "homepage.HomePageViewModel"
)
public class HomePageViewModel {

    @Setter @Getter
    @Property(editing = Editing.ENABLED)
    private String editableField;

}

但是此字段在UI上无法编辑: ViewModel property Editing.ENABLED

但它适用于SimpleObject: Simple DomainObj property Editing.Enabled

ViewModel是否正常运行? 也许ViewModel不应该有任何属性?

1 个答案:

答案 0 :(得分:0)

不,它对于视图模型不能正常工作......框架旨在支持这一点。

好消息是有一个解决方法。如果您注释该类以使用(更灵活的)JAXB样式的视图模型,那么它都可以按预期工作。

这是该课程的更新版本;寻找从@Xml开始的注释......:

@XmlRootElement(name = "compareCustomers")
@XmlType(
    propOrder = {
            "editableField"
    }
)
@XmlAccessorType(XmlAccessType.FIELD)
public class HomePageViewModel {

    @XmlElement(required = true)
    @Setter @Getter
    @Property(editing = Editing.ENABLED)
    private String editableField;

    public TranslatableString title() {
        return TranslatableString.tr("{num} objects", "num", getObjects().size());
    }

    public List<SimpleObject> getObjects() {
        return simpleObjectRepository.listAll();
    }

    @XmlTransient
    @javax.inject.Inject
    SimpleObjectRepository simpleObjectRepository;
}

有关JAXB视图模型的更多信息,请参阅user guide

与此同时,我为你发现的问题提出了JIRA ticket