Thomas Koren created ISIS-852:
---------------------------------
Summary: Derived property cannot be written properly
Key: ISIS-852
URL: https://issues.apache.org/jira/browse/ISIS-852
Project: Isis
Issue Type: Bug
Components: Core, Core: Objectstore: JDO
Affects Versions: core-1.5.0, objectstore-jdo-1.5.0
Reporter: Thomas Koren
Assignee: Dan Haywood
when using the proposed modifyXxx syntax to make a derived property writable,
it is rendered as "disabled" in wicket viewer.
{code:title=demo|borderStyle=solid}
public LocalDate getDerivedDate() { ... }
public void modifyDerivedDate(final LocalDate date) { ... }
{code}
when using the alternative setXxx syntax, the UI component is writable. but in
this case, the value of the derived property is not written to the persisted
property.
{code:title=demo|borderStyle=solid}
// {{ BeginAt (property)
@javax.jdo.annotations.Persistent
private DateTime beginAt;
@Disabled
@javax.jdo.annotations.Column(allowsNull = "false")
public DateTime getBeginAt() {
return beginAt;
}
public void setBeginAt(final DateTime beginAt) {
this.beginAt = beginAt;
}
// }}
// {{ DerivedDate (property)
@NotPersisted
@NotPersistent
public LocalDate getDerivedDate() {
return getBeginAt().toLocalDate();
}
public void setDerivedDate(final LocalDate beginDate) {
setBeginAt(getBeginAt().withDate(beginDate.getYear(),
beginDate.getMonthOfYear(), beginDate.getDayOfMonth()));
}
// }}
{code}
it seems like the value set by the derived property gets overwritten by the
original/old value of the persisted property that is displayed in the wicket
component.
therefore it might only be an issue, if original and derived properties are
members of the same entity and displayed via wicket viewer.
some background:
i try to use 3 ui components (= derived properties: date, hour, minute) to set
a single persisted DateTime property.
--
This message was sent by Atlassian JIRA
(v6.2#6252)