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-tp20912706p20912706.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.

Reply via email to