Miguel:

I often use lazy synchronization and I haven't typically needed any kind of 
component initialization to correct problems. Can you give us a code snippet 
for the lazy synchronization looks for your subcomponents?

Tim
UCLA GSE&IS


On Oct 26, 2012, at 4:16 PM, Miguel Torres <w...@toracom.net> wrote:

> Hi List,
> I recently begun using lazy synchronization. Chuck Hill solved some doubts 
> that I had.
> 
> It works fine in cases Component -- > subcomponent.
> 
> But in cases Component --> subcomponent --> subcomponent is not working 
> properly.
> 
> I have this scenario:
> 
> 1. A memberCatalog component. (A grid with the member's information).
> 2. An editMember sub component with a "member" binding.
> 3. An editAddress sub component inside editMenber with an "address" binding.
> 
> Sub components 2 and 3 use lazy synchronization.
> We have a navigation bar in editMember component with a Next Record button 
> that calls a function that gets the next member and sets it to the object 
> connected to the edit form.
> 
> This is the case where lazy synchronization is not working properly:
> I have 2 members in my catalog.
> I select the first one.
> 
> Both, editMember and editAddress loads properly. I see the correct 
> information of the member and its address.
> 
> I click on Next Record button and this sequence occurs:
> 
> 1.  The request begins. The awake method of editAddress is called and all 
> objects related to the bindings are set to null.
> 
> 2. The awake method of editMember is called and all objects related to the 
> bindings are set to null.
> 
> 3. The address() method of editAddress is called several times (I do not know 
> why) and because the address object was set to null previously, the address 
> object is pull from the parent component. The problem is that the address 
> that is set is the address of the actual member not the next member.
> 
> 4. The nextRecord method is called and it gets the new member.
> 
> 5. The request ends.
> 
> 6. The response  begins.
> 
> 7. The member() method is called several times and it returns the correct 
> member because it was set by the nextRecord method previously.
> 
> 8. The address() method is called several times. The problem is that the 
> address object is not null because of the call of the address() method (step 
> 3) after the call of the awake method (step 2).
> 
> 
> I solved it this way:
> 
> Each sub component has an initComponent object of the class Boolean that is 
> set via bindings.
> 
> Each sub component has an initialize() method that is called by the 
> appendToResponse method.
> 
> Inside the initialize() method we do task like filling NSArrays connected to 
> popUpButtons, etc. The basic structure of the method is as follows:
> 
> private void initialize(){
>    if(initComponent){
>         //// Do my stuff
>         initComponent = false;   // If the user submits the form but the 
> record does not change initialize does nothing.
>    }
> }
> 
> The change I made is that inside the initialize method I set to null the 
> objects related to the bindings. That way every time I go to the next record 
> I set the initComponent's objects to true and it forces the subcomponents to 
> reset the objects related to the bindings and next time the address() method 
> is called it pulls the correct address from the parent component.
> 
> I am not sure if I am solving a problem that was caused by a bad 
> implementation of lazy synchronization. I have reviewed serveral times the 
> documentation and my code and I can't find errors (But maybe I see what I 
> want to see, I am kind of tired). 
> 
> So, I will appreciated any comment.
> 
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/lists%40thetimmy.com
> 
> This email sent to li...@thetimmy.com


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to