no in detach... attach() -> set flag
detach -> reset flag one problem with this is that detach needs to test the flag and then call onDetach() or something :( or detach returns a boolean so that the method above knows that the component was detached already..? johan On 1/5/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
im fine with having the detached flag, but where do we reset it? in touch()? -igor On 1/5/07, Johan Compagner <[EMAIL PROTECTED]> wrote: > > we already do that > But the SecondLevelCache also calles detach! It has to do that.. > Or we have to change that that the touch of the page (that pushes the page > into the session) > doesn't happen before the detach of the RequestCycle. > But that is ugly > > Thats why we get double detach calls in normal page requests > > And then we still have ajax i guess where also loads of detach problems > where happening i believe? > > I don't mind double detach calls. we also can say that can happen. Then we > don't need the is attached flag > But there was a bug report for that... > > johan > > > On 1/5/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote: > > > > i think its simpler then that. we keep a stack of request targets used, > so > > at the end of the request cycle we just need to go through the stack and > > call detach on each request target. > > > > -igor > > > > > > > > On 1/5/07, Johan Compagner <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > this should be enough (IMHO): > > > > > > > > >> 1) resolve link component > > > > >> 2) invoke onclick (internal methods of the component) > > > > >> 3) invoke onbeforerender > > > > >> 4) invoke render > > > > >> 5) invoke onafterrender > > > > > > > > > > > > this doesn't work > > > > > > >> 1) resolve link component (page1) > > > >> 2) invoke onclick (page1) (internal methods of the component) > > > >setResponsePage(Page2) > > > >> 3) invoke onbeforerender (Pag2) > > > >> 4) invoke render (Page2) > > > >> 5) invoke onafterrender (Page2) > > > > > > > > > Aaarghh Page1 will still be in a attached state!!...... > > > > > > > > > the complete picture can be this: > > > > > > > >> 1) resolve link component (page1) > > > > >> 2) invoke onattach (Page1) > > > > >> 3) invoke onclick (Page1) > > > > >> 2) invoke onattach (Page2) > > > > >> 4) invoke onbeforerender (Page2) > > > > >> 5) invoke render (Page2) > > > > >> 6) invoke onafterrender (Page2) > > > > >> 7) invoke ondetach (Page2) > > > > >> 7) invoke ondetach (Page1) > > > > > > thats the complete picture that has to be taken into account. > > > > > > But onAttach can be just an attach method that is public or maybe > > > protected > > > final > > > And is only used to set the IS_ATTACHED_FLAG to true on the complete > > > component hierarchy. > > > > > > johan > > > > > > > > > > > >
