You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2017/06/16 06:00:00 UTC
[jira] [Created] (ISIS-1637) Non-JAXB view models do not support
editable properties
Dan Haywood created ISIS-1637:
---------------------------------
Summary: Non-JAXB view models do not support editable properties
Key: ISIS-1637
URL: https://issues.apache.org/jira/browse/ISIS-1637
Project: Isis
Issue Type: Bug
Affects Versions: 1.14.0
Reporter: Dan Haywood
Priority: Minor
Fix For: 1.17.0
this is the case irrespective of whether editing is disabled globally using the isis.objects.editing=false)
background:
see https://stackoverflow.com/questions/44569302/apache-isis-propertyediting-editing-enabled-doesnt-work-for-viewmodels
analysis:
@Property(editing=ENABLED)
this installs:
DisabledFacetForPropertyAnnotationInvertedSemantics[interaction=Disabling,type=DisabledFacet,when=Always; where =Everywhere]
then see @DomainObject(nature=VIEW_MODEL)
DisabledFacetOnPropertyDerivedFromRecreatableObject[interaction=Disabling,type=DisabledFacet,when=Always; where =Anywhere]
this overwrites:
final Facet existingFacet = getFacet(facetType);
if (existingFacet == null || existingFacet.isNoop()) {
facetsByClass.put(facetType, facet);
return;
}
if (!facet.alwaysReplace()) {
return;
}
if (facet.isDerived() && !existingFacet.isDerived()) { << doesn't return here, for example
return;
}
facet.setUnderlyingFacet(existingFacet);
facetsByClass.put(facetType, facet);
then at the class level earlier would also have installed ImmutableFacet because of configuration property (if global property to disable editing)
because of that, see:
DisabledFacetOnPropertyDerivedFromImmutable[interaction=Disabling,type=DisabledFacet,when=Always; where =Anywhere]
this overwrites once more.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)