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)