MAInternalEditor values not stored in memento cache

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

MAInternalEditor values not stored in memento cache

MaxBareis
Hi,

I have an Object Office with instVars and Magrittedescriptions for name and address, where address is a MAToOneReleationship to the Object address with inst vars street, city and country. The description of address in Office is:
addressDescription
        <magritteDescription>
        ^ MAToOneRelationDescription new
                accessor: #address;
                componentClass: MAInternalEditorComponent;
                classes: (Array with: CWDBAddress);
                beDescribedByReference ;
                reference:(CWDBAddress new magritteDescription copy kind: CWDBAddress);
                label: 'Adresse';
                priority: 200;
                yourself

The creation of the form is done in my own Component:
officeComponent

        object  ifNil: [ self object: Office new ].
        ^ officeComponent ifNil: [
                officeComponent := object asComponent
                        addValidatedForm: { ([:c| self save:c] -> 'Aktualisieren')};
                yourself]

I have added a breakpoint to OfficeComponent>>save:
Unfortunately the memento cache in the Component delivered to :c contains the new value for Office>>name but not the changed values for Office>>address.

Is this a misunderstanding of the concept behind MAInternalEditor? How can I assure, that the values of MAInternalEditor are stored in the Component>>memento>>cache?

Regards

Max_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: MAInternalEditor values not stored in memento cache

DiegoLont
Hi,

I am not sure. I also had troubles using the MAInternalEditor. I have tackled the problem, using a description flattener. This is part of QC Magritte. After installing QC Magritte:

        > You need to add a method to the office, that says you want to use the builder:
setContainerDefaults: aContainer
        <magritteContainer>
        ^aContainer
                componentClass: QCContainerComponent;
                descriptionBuilder: QCDescriptionFlattener;
                yourself

        > and you need to create an empty address as initialization.

Then you can remove the lines of componentClass and reference in the addressDescription, and it should work.

Regards,
Diego


On Oct 1, 2013, at 11:16 AM, Max Bareis wrote:

> Hi,
>
> I have an Object Office with instVars and Magrittedescriptions for name and address, where address is a MAToOneReleationship to the Object address with inst vars street, city and country. The description of address in Office is:
> addressDescription
> <magritteDescription>
> ^ MAToOneRelationDescription new
> accessor: #address;
> componentClass: MAInternalEditorComponent;
> classes: (Array with: CWDBAddress);
> beDescribedByReference ;
> reference:(CWDBAddress new magritteDescription copy kind: CWDBAddress);
> label: 'Adresse';
> priority: 200;
> yourself
>
> The creation of the form is done in my own Component:
> officeComponent
>
> object  ifNil: [ self object: Office new ].
> ^ officeComponent ifNil: [
> officeComponent := object asComponent
> addValidatedForm: { ([:c| self save:c] -> 'Aktualisieren')};
> yourself]
>
> I have added a breakpoint to OfficeComponent>>save:
> Unfortunately the memento cache in the Component delivered to :c contains the new value for Office>>name but not the changed values for Office>>address.
>
> Is this a misunderstanding of the concept behind MAInternalEditor? How can I assure, that the values of MAInternalEditor are stored in the Component>>memento>>cache?
>
> Regards
>
> Max_______________________________________________
> seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside