5 Replies Latest reply on Dec 11, 2011 8:25 AM by Christian Peter

    Fileupload in popupPanel?!?

    Sebastian Götz Newbie

      Hi there,

       

      I tried to use a fileupload component inside a popupPanel with no success. My fileupload listener method in the backing bean gets never called. If I move the fileupload component out of the popupPanel into the default visible page area, it works smooth. Since I am not very familiar with richfaces I may have missed something I guess. But what??

       

      Here are the major parts of the code:

       

      <ui:define name="content">
                      <h:form>
                          <rich:toolbar style="width:100%;">
                              <rich:toolbarGroup>
                                  <h:commandButton value="#{messageSource['lbl_doNew']}" action="#{projectCardParameterBean.doNew}"/>
                                  <h:commandButton value="#{messageSource['lbl_doEdit']}" action="#{projectCardParameterBean.doEdit}"
                                      rendered="#{not empty projectCardParameterBean.projectCardParameter and not projectCardParameterBean.projectCardParameter.transient}"/>
                                  <h:commandButton value="#{messageSource['lbl_doImport']}">
                                      <rich:componentControl target="popup" operation="show" />
                                  </h:commandButton>
                                  <rich:popupPanel id="popup" modal="true" style="text-align:center;"
                                      onmaskclick="#{rich:component('popup')}.hide()" width="500" height="180" minHeight="180">
                                      <f:facet name="header">
                                          <h:outputText value="#{messageSource['lbl_selectImportFile']}" />
                                      </f:facet>
                                      <f:facet name="controls">
                                          <h:outputLink value="#" onclick="#{rich:component('popup')}.hide(); return false;">#{messageSource['lbl_doClose']}</h:outputLink>
                                      </f:facet>
                                      <h:panelGrid columns="1" style="width:100%; height:120px;">
                                          <rich:fileUpload id="ParameterUpload"
                                              addLabel="#{messageSource['lbl_doSelect']}"
                                              clearAllLabel="#{messageSource['lbl_doClearAll']}"
                                              clearLabel="#{messageSource['lbl_doClear']}"
                                              deleteLabel="#{messageSource['lbl_doDelete']}"
                                              doneLabel="#{messageSource['lbl_done']}"
                                              serverErrorLabel="#{messageSource['lbl_serverError']}"
                                              sizeExceededLabel="#{messageSource['lbl_sizeExceeded']}"
                                              uploadLabel="#{messageSource['lbl_doStart']}"
                                              fileUploadListener="#{projectCardParameterBean.processFileUpload}"
                                              acceptedTypes="xml"
                                              style="width:100%; height:90px;">
                                              <a4j:ajax event="uploadcomplete" execute="@none" render="import" />
                                          </rich:fileUpload>
                                          
                                          <rich:message for="ParameterUpload" id="ParameterUploadMsg" showDetail="true" ajaxRendered="true"/>
                                          
                                          <h:commandButton id="import" value="#{messageSource['lbl_doImport']}"
                                              onclick="#{rich:component('popup')}.hide();"
                                              action="#{projectCardParameterBean.doImport}"
                                              rendered="#{not empty projectCardParameterBean.importFile}"/>
                                      </h:panelGrid>
                                  </rich:popupPanel>
                              </rich:toolbarGroup>
                              <rich:toolbarGroup style="width:100%">
                                  <outputText value=""/>
                              </rich:toolbarGroup>
                              <rich:toolbarGroup location="right">
                                  <rich:autocomplete id="ajaxSearch" mode="cachedAjax" minChars="1"
                                      autocompleteMethod="#{projectCardParameterBean.autocomplete}" autofill="true"
                                      var="pcp" fetchValue="#{pcp.name}" immediate="true"
                                      layout="grid" value="#{projectCardParameterBean.searchPhrase}" onkeypress="return event.keyCode != 13;"
                                      onselectitem="#{rich:element('ajaxSearchButton')}.focus();">
                                      <h:outputText value="#{pcp.name} #{prm:enclose(pcp.projectType, '(', ')')}" />
                                      <rich:tooltip mode="client" followMouse="false" showDelay="700" layout="block">
                                          <h:outputText value="#{messageSource['tip_ajaxSearch']}"/>
                                      </rich:tooltip>
                                  </rich:autocomplete>
                                  <h:commandButton id="ajaxSearchButton" value="#{messageSource['lbl_doShow']}" action="#{projectCardParameterBean.doSearch}"/>
                              </rich:toolbarGroup>
                          </rich:toolbar>
      
      ...
      

       

      Regards,

       

      Sebastian