Thanks, removed the onActivate() without params. 

Moreover, i didn't test fully and discovered that on a post onActivate is
called once with the context of the old page and once with the context of
the new page, so it's not always empty the first time. Probably saying the
obvious but anyway..  Only in the latter case should the onActivate result
in update of my lists. 

for that i have the following to track the current activation-context 

@Persist Object[] params;  

now i do: 

onActivate(Object[] list)
{
  if(params!=list) //actually a method doing a compare on the elements of
the list
 {
   //handle context
   params = list;
 }
} 

thanks for helping me in the right direction,
Geert-Jan



Nick Westgate wrote:
> 
> I'm not going to delve into the logic of your use case.
> Just put have one activate handler:
> 
> void onActivate(Object[] context)
> {
>      if (context.length == 0)
>      {
>          // handle no context
>      {
>      else
>      {
>          // handle context
>      {
> }
> 
> Cheers,
> Nick.
> 
> 
> Britske wrote:
>> for a page, I have two activation-methods:
>> 
>> onActivate()
>> onActivate(Object[] list);
>> 
>> when i provide an activation context to the page both methods are called
>> -onactivate() first-.
>> This seems correct behavior according to some forum-posts i've read. 
>> 
>> However, both methods call a method syncLists() which does a pretty
>> expensive operation (get search results  based on the activation context
>> or
>> default if no activation context exists). 
>> 
>> The problem is that now syncLists() is called twice when the page has an
>> activation-context (based on calling both of the onActivate()-methods).
>> Obviously this is unwanted. 
>> 
>> However, I can't remove syncLists() from onActivate() (without params),
>> because a page-access without activation-context should call syncLists()
>> as
>> well. 
>> 
>> so what i need to do is 
>> a. have onActivate() not called when an activatecontext exists
>> b. detect in onActivate() that an activationcontext exists and based on
>> that
>> not call syncLists(). 
>> c. don't have syncLists() updated on onActivate() but on a change of the
>> page (so before the "redirect-after-post") 
>> 
>> I can't find a way to do A. or B. while C. doesn't seem the best option,
>> because a lot of fields (on the page and in components) would need to be
>> tagged with @Persist to survive setting them on post and then
>> redirecting. 
>> 
>> Anyone?
>> 
>> Thanks,
>> Geert-Jan
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/-T5-%3A-how-to-prevent-onActivate%28%29-from-firing-with-activationcontext-tf4683298.html#a13384950
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to