Is it perhaps a problem of the current phase 'RESTORE_VIEW'?

Bruno Marti wrote:
> 
> I'm starting a dialog in a phase listener (PhaseId.RESTORE_VIEW) like:
> 
>   public void afterPhase(PhaseEvent event) {
>       ...  
>     FacesContext context = FacesContext.getCurrentInstance();
>       UIViewRoot view = context.getApplication().getViewHandler()
>                           .createView(context, "/myDialog.jsp");
>       // my dummy component   
>     CoreCommandLink commandLnk = (CoreCommandLink)
> context.getApplication().
>                                 
> createComponent(CoreCommandLink.COMPONENT_TYPE);
>     commandLnk.setId("lnkSearch");
>     commandLnk.setUseWindow(true);
>     commandLnk.setBlocking(true);
>     commandLnk.setPartialSubmit(false);
>     commandLnk.setWindowWidth(500);
>     commandLnk.setWindowHeight(350);
>    
> commandLnk.setAction(context.getApplication().createMethodBinding("#{myController.dialogAction}",
> null));
>    
> commandLnk.setReturnListener(context.getApplication().createMethodBinding("#{myController.handleReturn}",
> new Class[] {ReturnEvent.class}));
>     
>     requestContext.launchDialog(view, null, commandLnk, true, properties);
>     
>     ...
>   }
>   
> The dialog is launched properly and on the dialog site is a submit button,
> which closes dialog and returns:
>   myDialog.jsp:
>   -------------
>   ...
>    <tr:commandButton id="btnAccept" action="#{dialogBean.select}"/>
>   ...
> 
>   dialogBean:
>   -----------
>   public String select() {
>     RequestContext.getCurrentInstance().returnFromDialog(null, null);
>   }
> 
> Well, the dialog is closed as it should, but the return event
> "myController.handleReturn" as defined on components return listener is
> not executed.
> 
> If I start the dialog from an other site by a link:
>   myOther.jsp:
>   ------------
>   ...
>     <tr:commandLink
>       id="lnkSearch"
>       windowWidth="500"
>       windowHeight="350"
>       useWindow="true"
>       partialSubmit="false"
>       blocking="true"
>       action="#{myController.dialogAction}"
>       returnListener="#{myController.handleReturn}">
>     </tr:commandLink>
>   ...
> 
> Everything works fine. Dialog is started, dialog submit calls return
> listener method "myController.handleReturn".
> 
> Do I miss something in my phase listener or is this actually not possible
> to get return event fired after creation by phase listener?
> (myfaces 1.1.5, trinidad 1.0.10)
> 
> 

-- 
View this message in context: 
http://www.nabble.com/-Trinidad--close-of-manually-launched-dialog-does-not-fire-return-event-tp20912706p21191000.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.

Reply via email to