Hi Ok, the spec issue is this one:
https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=782 regards, Leonardo Uribe 2010/3/31 Leonardo Uribe <[email protected]> > Hi > > On this link: > > https://issues.apache.org/jira/browse/MYFACES-2638 > > attachment: MYFACES-2638-3.patch > > I attached a proposal to fix this issue, based on myfaces code. The idea is > > create a event called javax.faces.event.PostBuildRefreshViewEvent. This > event > is quite different from the one proposed in: > > > [jsr-314-open] add component resources depending on the owner component > state > > because there is one case this one is not published: when partial state > saving is > enabled and there is no call to vdl.buildView for refresh. I also notice > that there is > no "inheritance" between events, that means, if I have two events and one > extends > from the other and there is a listener attached to the parent, when the > child event > is raised the listener is not notified. > > h:outputScript, h:outputStylesheet, cc:insertChildren, cc:insertFacet needs > to attach > its listeners to that event too, to give the chance to relocate their > related components > correctly. The listener that track changes on the component tree and mark > them to > be saved/restored fully does not need to listen this event. > > PostAddToViewEvent/PreRemoveFromViewEvent should continue working as > always, > the important here is disable event processing while we are refreshing the > view. The side > effect is components added to the component tree when view is refreshed > (c:if case) will > not receive that event. > > If we want to avoid that side effect, the proposal is change > PostBuildRefreshViewEvent > to PostBuildViewEvent, this one will be an event specific for relocation > and that one > should be published after the view is build, in other words, in the same > place as > we are doing PostBuildRefreshViewEvent but for all cases, but that one > requires remove > the register of the listeners to PostAddToViewEvent on h:outputScript and > related. Also, > it is necessary to indicate in some way when publish PostAddToViewEvent/ > PreRemoveFromViewEvent by facelets algorithm for build/refresh view, > because it is there > where we have the knowledge about when propagate it or not. > > I think at this point it is clear the problem and the possible direction to > solve it, so I'll create > an issue for this one on the spec issue tracker. > > regards, > > Leonardo Uribe > > 2010/3/30 Leonardo Uribe <[email protected]> > > Hi Martin >> >> In theory the secod event (PreRemoveFromViewEvent) should not be called >> when the view is "refreshed". >> >> The important for me at this point is make clear the problem, but in this >> point >> I think the better is do a prototype with myfaces. It will take some time, >> but as >> soon as I have something I'll publish the results, so we can discuss >> a more concrete proposal. I'll integrate also the solution for the problem >> >> "[jsr-314-open] add component resources depending on the owner component >> state" >> because it seems it is related. >> >> regards, >> >> Leonardo Uribe >> >> 2010/3/30 Martin Marinschek <[email protected]> >> >> Hi, >>> >>> > - Create a new event (let's call it PostBuildViewEvent for the moment), >>> that >>> > is >>> > propagated every time the view is build (when it is created, restored >>> or >>> > refreshed before render response). h:outputScript, h:outputStylesheet, >>> > cc:insertChildren and cc:insertFacet should add a listener for this >>> > event and handle all relocation code at response of this event. >>> > >>> > - Fix PostAddToViewEvent/PreRemoveFromViewEvent publishing conditions. >>> > In my opinion this ones should not be called when the view is >>> "refreshed". >>> > Martin suggestion about the publishing conditions are reasonable. >>> >>> yes, this sounds good. Leonardo, for the second event, how would you >>> suggest the publishing to happen (actual sourcecode)? >>> >>> best regards, >>> >>> Martin >>> -- >>> >>> http://www.irian.at >>> >>> Your JSF powerhouse - >>> JSF Consulting, Development and >>> Courses in English and German >>> >>> Professional Support for Apache MyFaces >>> >> >> >
