4 Replies Latest reply on Feb 27, 2009 8:11 AM by tomek_0021

    a4j:support event=

    tomek_0021

       

      <rich:fileUpload maxFilesQuantity="1"
       id="plik" listHeight="58px" listWidth="300px"
       addControlLabel="Dodaj plik..." clearAllControlLabel="Wyczyść wszystko"
       clearControlLabel="Wyczyść"
       stopEntryControlLabel="Stop" uploadControlLabel="Pobierz plik"
       autoclear="false"
       immediateUpload="false"
       fileUploadListener="#{licencjaBean.fileUploadListener}"
       rendered="#{licencjaBean.licencjaForm.fileEmpty}"
       immediate="true"
       uploadData="#{licencjaBean.licencjaForm.fileList}">
       <a4j:support actionListener="#{licencjaBean.licencjaForm.clearFiles}" immediate="true" event="onclear" reRender="plik" />
       </rich:fileUpload>


      After uploading file, when I click on ClearAll the file list on fileUpload component is cleraed but actionListener="#{licencjaBean.licencjaForm.clearFiles}" is not fired. When I use a4j:support with event="onuploadcomplete" it works (the listener`s code is running).
      I am using RichFaces 3.3.0 with JSF-RI and facelets1.2.
      Thanks for any help.

        • 1. Re: a4j:support event=

          Hi.

          Cannot reproduce your problem. I checked your code on 3.3.0 GA, facelets, JSF 1.2. ActionListener is called after 'Clear all' button clicked.

          Can you please post more info: full page or bean's code.

          • 2. Re: a4j:support event=
            tomek_0021

            template page in facelets:

            <?xml version='1.0' encoding='UTF-8' ?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml"
             xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:h="http://java.sun.com/jsf/html"
             xmlns:f="http://java.sun.com/jsf/core"
             xmlns:c="http://java.sun.com/jstl/core_rt"
             xmlns:a4j="http://richfaces.org/a4j"
             xmlns:rich="http://richfaces.org/rich">
            
             <head>
             <link rel="STYLESHEET" type="text/css" href="/inwentaryzacjaWebApp/css/common.css" />
             <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
             <title>ITeam SA - Inwentaryzacja sprzętu i oprogramowania</title>
            
             </head>
            
             <body>
             <div id="top">
             <f:view>
            
             <f:loadBundle basename="conf.global_message" var="globalMsg"/>
            
             <rich:panel id="mainPanel" style="padding: 0px; border: 1px solid #ababab; width: 1000px;"
             headerClass="outpanelHeader">
             <div id="NAGLOWEK">
             <h:form>
             <rich:toolBar itemSeparator="Line" width="100%;">
             <rich:toolBarGroup location="left" itemSeparator="None">
             <h:outputText value="ITeam SA - System do inwentaryzacji sprzętu i oprogramowania" />
             </rich:toolBarGroup>
            
             <rich:toolBarGroup rendered="#{inwentaryzacjaBean.zalogowanyUzytkownik != null}" location="right" itemSeparator="None">
             <h:outputText value="#{inwentaryzacjaBean.zalogowanyUzytkownik.imie} #{inwentaryzacjaBean.zalogowanyUzytkownik.nazwisko} "/>
             </rich:toolBarGroup>
            
             <rich:toolBarGroup location="right" itemSeparator="Line">
            
             <h:outputText value="#{inwentaryzacjaBean.currentDate}">
             <f:convertDateTime pattern="EEEE, dd MMMM yyyy" />
             </h:outputText>
            
             <h:commandLink rendered="#{inwentaryzacjaBean.zalogowanyUzytkownik != null}" value="Wyloguj" action="#{inwentaryzacjaBean.wyloguj}"
             immediate="true" />
            
             <h:commandLink rendered="#{inwentaryzacjaBean.zalogowanyUzytkownik == null}" value="Zaloguj" action="login"
             immediate="true" />
             </rich:toolBarGroup>
             </rich:toolBar>
             </h:form>
             <h:outputText styleClass="alarma" rendered="#{inwentaryzacjaBean.zalogowanyUzytkownik == null}" value="Nie masz uprawnień do korzystania z aplikacji, zaloguj się!" />
             <br />
             <h:panelGrid rendered="#{inwentaryzacjaBean.zalogowanyUzytkownik != null}" columns="1" columnClasses="do_gory" styleClass="menu">
             <h:form>
             <ul class="menu_poziome">
             <li class="menu_poziome">
             <h:commandLink action="#{inwentaryzacjaBean.toPracownicy}" rendered="#{inwentaryzacjaBean.pracownicy and inwentaryzacjaBean.aktualnaZakladka != 'pracownicy'}" >
             Pracownicy
             </h:commandLink>
             <h:commandLink styleClass="selected" action="#{inwentaryzacjaBean.toPracownicy}" rendered="#{inwentaryzacjaBean.pracownicy and inwentaryzacjaBean.aktualnaZakladka == 'pracownicy'}" >
             Pracownicy
             </h:commandLink>
             </li>
             <li class="menu_poziome">
             <h:commandLink action="#{inwentaryzacjaBean.toCzesci}" rendered="#{inwentaryzacjaBean.czesci and inwentaryzacjaBean.aktualnaZakladka != 'czesci'}" >
             Części
             </h:commandLink>
             <h:commandLink styleClass="selected" action="#{inwentaryzacjaBean.toCzesci}" rendered="#{inwentaryzacjaBean.czesci and inwentaryzacjaBean.aktualnaZakladka == 'czesci'}" >
             Części
             </h:commandLink>
             </li>
             <li class="menu_poziome">
             <h:commandLink action="#{inwentaryzacjaBean.toKomputery}" rendered="#{inwentaryzacjaBean.komputery and inwentaryzacjaBean.aktualnaZakladka != 'komputery'}" >
             Komputery
             </h:commandLink>
             <h:commandLink styleClass="selected" action="#{inwentaryzacjaBean.toKomputery}" rendered="#{inwentaryzacjaBean.komputery and inwentaryzacjaBean.aktualnaZakladka == 'komputery'}" >
             Komputery
             </h:commandLink>
             </li>
             <li class="menu_poziome">
             <h:commandLink action="#{inwentaryzacjaBean.toLicencje}" rendered="#{inwentaryzacjaBean.licencje and inwentaryzacjaBean.aktualnaZakladka != 'licencje'}">
             Licencje
             </h:commandLink>
             <h:commandLink styleClass="selected" action="#{inwentaryzacjaBean.toLicencje}" rendered="#{inwentaryzacjaBean.licencje and inwentaryzacjaBean.aktualnaZakladka == 'licencje'}">
             Licencje
             </h:commandLink>
             </li>
             <li class="menu_poziome">
             <h:commandLink action="#{inwentaryzacjaBean.toOprogramowanie}" rendered="#{inwentaryzacjaBean.oprogramowanie and inwentaryzacjaBean.aktualnaZakladka != 'oprogramowanie'}" >
             Oprogramowanie
             </h:commandLink>
             <h:commandLink styleClass="selected" action="#{inwentaryzacjaBean.toOprogramowanie}" rendered="#{inwentaryzacjaBean.oprogramowanie and inwentaryzacjaBean.aktualnaZakladka == 'oprogramowanie'}" >
             Oprogramowanie
             </h:commandLink>
             </li>
             <li class="menu_poziome">
             <h:commandLink action="#{inwentaryzacjaBean.toZasoby}" rendered="#{inwentaryzacjaBean.zasoby and inwentaryzacjaBean.aktualnaZakladka != 'zasoby'}" >
             Zasoby
             </h:commandLink>
             <h:commandLink styleClass="selected" action="#{inwentaryzacjaBean.toZasoby}" rendered="#{inwentaryzacjaBean.zasoby and inwentaryzacjaBean.aktualnaZakladka == 'zasoby'}" >
             Zasoby
             </h:commandLink>
             </li>
             <li class="menu_poziome">
             <h:commandLink action="#{inwentaryzacjaBean.toOsoby}" rendered="#{inwentaryzacjaBean.osoby and inwentaryzacjaBean.aktualnaZakladka != 'osoby'}" >
             Osoby zewnętrzne
             </h:commandLink>
             <h:commandLink styleClass="selected" action="#{inwentaryzacjaBean.toOsoby}" rendered="#{inwentaryzacjaBean.osoby and inwentaryzacjaBean.aktualnaZakladka == 'osoby'}" >
             Osoby zewnętrzne
             </h:commandLink>
             </li>
             <li class="menu_poziome">
             <h:commandLink action="#{inwentaryzacjaBean.toUprawnienia}" rendered="#{inwentaryzacjaBean.uprawnienia and inwentaryzacjaBean.aktualnaZakladka != 'uprawnienia'}">
             Uprawnienia
             </h:commandLink>
             <h:commandLink styleClass="selected" action="#{inwentaryzacjaBean.toUprawnienia}" rendered="#{inwentaryzacjaBean.uprawnienia and inwentaryzacjaBean.aktualnaZakladka == 'uprawnienia'}">
             Uprawnienia
             </h:commandLink>
             </li>
             </ul>
            
             </h:form>
            
             </h:panelGrid>
             </div>
            
             <div id="LEWA">
             <h:panelGrid rendered="#{inwentaryzacjaBean.zalogowanyUzytkownik != null}" columns="1" columnClasses="do_gory" styleClass="menu">
             <ui:insert name="leftBody">Default Body</ui:insert>
             </h:panelGrid>
             </div>
             <div id="SRODEK" />
             <div id="PRAWA">
             <h:panelGrid rendered="#{inwentaryzacjaBean.zalogowanyUzytkownik != null}" columns="1" columnClasses="do_gory" styleClass="menu">
             <ui:insert name="rightBody">Default Body</ui:insert>
             </h:panelGrid>
             </div>
            
             <div id="STOPKA"><span style="text-align:center"> </span></div>
            
             </rich:panel>
            
             </f:view>
             </div>
             </body>
            </html>
            


            page using template with file upload:

            <?xml version='1.0' encoding='UTF-8' ?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <ui:composition xmlns="http://www.w3.org/1999/xhtml"
             xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:h="http://java.sun.com/jsf/html"
             xmlns:f="http://java.sun.com/jsf/core"
             xmlns:c="http://java.sun.com/jstl/core_rt"
             xmlns:a4j="http://richfaces.org/a4j"
             xmlns:rich="http://richfaces.org/rich">
            
             <ui:composition template="/template.xhtml">
             <ui:define name="leftBody">
            
             <h:form id="licencjeListaPanel" rendered="#{inwentaryzacjaBean.licencje}">
             <h:panelGrid columns="2">
            
             <h:outputText styleClass="iLabel" value="Wybierz program" />
             <h:selectOneMenu styleClass="iSelect" value="#{licencjaBean.licencjaSearchForm.idOprogramowania}" >
             <f:selectItem itemLabel="-- Wszystkie --" itemValue="-1" />
             <f:selectItems value="#{licencjaBean.licencjaForm.programy}" />
             </h:selectOneMenu>
            
             <h:outputText styleClass="iLabel" value="Termin wygasania" />
             <rich:calendar value="#{licencjaBean.licencjaSearchForm.terminWygasania}"
             locale="US"
             popup="true"
             datePattern="yyyy-MM-dd"
             showApplyButton="false" cellWidth="24px" cellHeight="22px"
             />
            
             <h:outputText styleClass="iLabel" value="Info" />
             <h:inputText maxlength="64" styleClass="iText" label="Info" value="#{licencjaBean.licencjaSearchForm.info}" />
            
             <h:outputText styleClass="iLabel" value="Ilość licencji" />
             <h:inputText maxlength="8" styleClass="iText" label="IloscLicencji" value="#{licencjaBean.licencjaSearchForm.ilosc}" >
             <f:convertNumber type="number" maxIntegerDigits="4" integerOnly="true"/>
             </h:inputText>
            
             <f:facet name="footer">
             <a4j:commandButton reRender="listaLicencjiScroller,licencjeLista" styleClass="iBtn" actionListener="#{licencjaBean.wyszukajLicencje}" value="Szukaj" />
             </f:facet>
            
             </h:panelGrid>
            
             <rich:spacer styleClass="spacer"/>
            
             <rich:dataTable
             id="licencjeLista"
             onRowMouseOver="this.style.backgroundColor='#F8F8F8'"
             onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
             rowClasses="cur"
             rows="10"
             value="#{licencjaBean.listaLicencji}"
             var="licencja"
             styleClass="richTable">
            
             <rich:column sortBy="#{licencja.idLicencji}">
             <f:facet name="header">
             <h:outputText value="Id" />
             </f:facet>
             <h:outputText value="#{licencja.idLicencji}" />
             </rich:column>
            
             <rich:column sortBy="#{licencja.oprogramowanie.nazwa}" filterBy="#{licencja.oprogramowanie.nazwa}" filterEvent="onkeyup">
             <f:facet name="header">
             <h:outputText value="Nazwa programu" />
             </f:facet>
             <h:outputText value="#{licencja.oprogramowanie.nazwa}" />
             </rich:column>
            
             <rich:column sortBy="#{licencja.oprogramowanie.wersja}">
             <f:facet name="header">
             <h:outputText value="Wersja" />
             </f:facet>
             <h:outputText value="#{licencja.oprogramowanie.wersja}" />
             </rich:column>
            
             <rich:column sortBy="#{licencja.oprogramowanie.typLicencji}">
             <f:facet name="header">
             <h:outputText value="Typ licencji" />
             </f:facet>
             <h:outputText value="#{licencja.oprogramowanie.typLicencji}" >
             <f:converter converterId="kategoriaConverter"/>
             </h:outputText>
             </rich:column>
            
             <rich:column sortBy="#{licencja.terminWygasania}">
             <f:facet name="header">
             <h:outputText value="Wygasa" />
             </f:facet>
             <h:outputText value="#{licencja.terminWygasania}" >
             <f:convertDateTime type="date" dateStyle="medium" pattern="yyyy-MM-dd"/>
             </h:outputText>
             </rich:column>
            
             <rich:column sortBy="#{licencja.ilosc}" style="text-align:right">
             <f:facet name="header">
             <h:outputText value="Wolne" />
             </f:facet>
             <h:outputText value="#{licencja.ilosc}" >
             <f:converter converterId="pustyConverter"/>
             </h:outputText>
             </rich:column>
            
             <rich:column sortBy="#{licencja.iloscWykorzystanych}" style="text-align:right" >
             <f:facet name="header">
             <h:outputText value="Zajęte" />
             </f:facet>
             <h:outputText value="#{licencja.iloscWykorzystanych}" />
             </rich:column>
            
             <a4j:support reRender="licencjeSzczegolyPanel" event="onRowClick" >
             <a4j:actionparam name="id" assignTo="#{licencjaBean.licencjaForm.idLicencji}" value="#{licencja.idLicencji}"/>
             <a4j:actionparam name="ilosc" assignTo="#{licencjaBean.licencjaForm.ilosc}" value="#{licencja.ilosc}"/>
             <!--<a4j:actionparam name="termin" assignTo="#{licencjaBean.licencjaForm.terminWygasania}" value="#{licencja.terminWygasania}"/>-->
             <a4j:actionparam name="nrLicencji" assignTo="#{licencjaBean.licencjaForm.numerLicencji}" value="#{licencja.numerLicencji}"/>
             <a4j:actionparam name="kluczNapis" assignTo="#{licencjaBean.licencjaForm.kluczNapis}" value="#{licencja.kluczNapis}"/>
             <!--<a4j:actionparam name="kluczPlik" assignTo="#{licencjaBean.licencjaForm.kluczPlik}" value="#{licencja.kluczPlik}"/>-->
             <a4j:actionparam name="nazwaPliku" assignTo="#{licencjaBean.licencjaForm.nazwaPliku}" value="#{licencja.nazwaPliku}"/>
             <a4j:actionparam name="nrFaktury" assignTo="#{licencjaBean.licencjaForm.nrFaktury}" value="#{licencja.nrFaktury}"/>
             <a4j:actionparam name="info" assignTo="#{licencjaBean.licencjaForm.info}" value="#{licencja.info}"/>
             <a4j:actionparam name="idOprogramowania" assignTo="#{licencjaBean.licencjaForm.idOprogramowania}" value="#{licencja.idOprogramowania}"/>
            
             <a4j:actionparam name="stan" assignTo="#{licencjaBean.stanLicencji}" value="wybrano"/>
             </a4j:support>
            
             </rich:dataTable>
            
             <table width="100%">
             <tr>
             <td align="left">
             <a4j:commandButton reRender="licencjeListaPanel,licencjeSzczegolyPanel" styleClass="iBtn" actionListener="#{licencjaBean.dodajLicencje}" value="Dodaj" rendered="#{licencjaBean.stanLicencji != 'dodawanie' and inwentaryzacjaBean.licencjeZapis}"/>
             </td>
             <td align="right">
             <rich:datascroller id="listaLicencjiScroller" align="right" for="licencjeLista" maxPages="20" />
             </td>
             </tr>
             </table>
            
             </h:form>
            
             </ui:define>
             <ui:define name="rightBody">
             <h:panelGrid id="licencjeSzczegolyPanel" >
             <rich:panel header="Edycja danych licencji" rendered="#{licencjaBean.stanLicencji != 'zaden'}">
             <a4j:include viewId="/facets/soft/dodajLicencje.xhtml" />
             </rich:panel>
             </h:panelGrid>
             </ui:define>
             </ui:composition>
            </ui:composition>
            


            page "/facets/soft/dodajLicencje.xhtml":


            <?xml version='1.0' encoding='UTF-8' ?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <ui:composition xmlns="http://www.w3.org/1999/xhtml"
             xmlns:ui="http://java.sun.com/jsf/facelets"
             xmlns:h="http://java.sun.com/jsf/html"
             xmlns:f="http://java.sun.com/jsf/core"
             xmlns:c="http://java.sun.com/jstl/core_rt"
             xmlns:a4j="http://richfaces.org/a4j"
             xmlns:rich="http://richfaces.org/rich"
             xmlns:t="http://myfaces.apache.org/tomahawk">
            
             <!--<h:form id="dodajLicencjeForm" enctype="multipart/form-data">-->
             <a4j:form id="dodajLicencjeForm" enctype="multipart/form-data" ajaxSubmit="true" ajaxSingle="true" >
            
             <rich:messages styleClass="errorMessages"/>
             <h:dataTable rendered="#{licencjaBean.licencjaForm.komunikatyWalidacji != null and !empty licencjaBean.licencjaForm.komunikatyWalidacji}" value="#{licencjaBean.licencjaForm.komunikatyWalidacji}" var="komunikat">
             <h:column>
             <h:outputText styleClass="error" value="#{komunikat}" />
             </h:column>
             </h:dataTable>
             <div id="content">
             <h:panelGrid id="tabForm" columns="2">
            
             <h:outputText styleClass="iLabel" value="Wybierz program" />
             <h:selectOneMenu styleClass="iSelect" id="lista" value="#{licencjaBean.licencjaForm.idOprogramowania}" >
             <f:selectItems value="#{licencjaBean.licencjaForm.programy}" />
             </h:selectOneMenu>
            
             <h:outputText styleClass="iLabel" value="Termin wygasania" />
             <rich:calendar value="#{licencjaBean.licencjaForm.terminWygasania}" id="calendar"
             popup="true"
             datePattern="yyyy-MM-dd"
             showApplyButton="false" cellWidth="24px" cellHeight="22px"/>
            
             <h:outputText styleClass="iLabel" value="Numer licencji " />
             <h:inputText maxlength="64" styleClass="iText" label="NumerLicencji" id="numerLicencji" value="#{licencjaBean.licencjaForm.numerLicencji}"/>
            
             <h:outputText styleClass="iLabel" value="Nr faktury" />
             <h:inputText maxlength="64" styleClass="iText" label="NrFaktury" id="nrFaktury" value="#{licencjaBean.licencjaForm.nrFaktury}" />
            
             <h:outputText styleClass="iLabel" value="Info" />
             <h:inputTextarea styleClass="iTextArea" label="Info" id="info" value="#{licencjaBean.licencjaForm.info}" >
             <f:validateLength maximum="1024"/>
             </h:inputTextarea>
            
             <h:outputText styleClass="iLabel" value="Ilość licencji (<0 jeśli bez)" />
             <h:inputText maxlength="8" styleClass="iText" label="IloscLicencji" id="iloscLicencji" value="#{licencjaBean.licencjaForm.ilosc}" >
            
             </h:inputText>
            
             <h:outputText styleClass="iLabel" value="Klucz (napis)"/>
             <h:inputText maxlength="64" styleClass="iText" label="KluczNapis" id="kluczNapis" value="#{licencjaBean.licencjaForm.kluczNapis}"/>
            
             <h:outputText styleClass="iLabel" value="Plik z kluczem" rendered="#{licencjaBean.licencjaForm.fileEmpty}"/>
             <rich:fileUpload maxFilesQuantity="1"
             id="plik" listHeight="58px" listWidth="300px"
             addControlLabel="Dodaj plik..." clearAllControlLabel="Wyczyść wszystko"
             clearControlLabel="Wyczyść"
             stopEntryControlLabel="Stop" uploadControlLabel="Pobierz plik"
             autoclear="false"
             immediateUpload="false"
             fileUploadListener="#{licencjaBean.fileUploadListener}"
             rendered="#{licencjaBean.licencjaForm.fileEmpty}"
             immediate="true"
             uploadData="#{licencjaBean.licencjaForm.listaPlikow}">
             <a4j:support actionListener="#{licencjaBean.licencjaForm.usunPlik}" immediate="true" event="onclear" reRender="plik" >
             <a4j:actionparam name="plik" assignTo="#{licencjaBean.licencjaForm.kluczPlik}" value="null"/>
             </a4j:support>
             </rich:fileUpload>
            
             <h:outputText styleClass="iLabel" value="Pobierz plik" rendered="#{!licencjaBean.licencjaForm.fileEmpty}"/>
             <h:panelGrid columns="1" rendered="#{!licencjaBean.licencjaForm.fileEmpty}">
             <h:outputLink value="/inwentaryzacjaWebApp/plik.upload" rendered="#{!licencjaBean.licencjaForm.fileEmpty}">
             <h:outputText styleClass="iLabel" value="#{licencjaBean.licencjaForm.nazwaPliku}" />
             <f:param name="idLicencji" value="#{licencjaBean.licencjaForm.idLicencji}" />
             </h:outputLink>
             <a4j:commandLink actionListener="#{licencjaBean.licencjaForm.usunPlik}" rendered="#{!licencjaBean.licencjaForm.fileEmpty}"
             reRender="tabelkaZPlikiem" limitToList="true"
             eventsQueue="kolejkaDlaLicencji">
             <h:outputText value="(usuń)" />
             </a4j:commandLink>
             </h:panelGrid>
            
             <f:facet name="footer">
             <h:panelGrid rendered="#{inwentaryzacjaBean.licencjeZapis}" columns="3">
             <a4j:commandButton reRender="licencjeListaPanel,licencjeSzczegolyPanel" styleClass="iBtn" actionListener="#{licencjaBean.dodajLicencje}" value="Dodaj" rendered="#{licencjaBean.stanLicencji == 'dodawanie'}"/>
             <a4j:commandButton reRender="licencjeListaPanel,licencjeSzczegolyPanel" styleClass="iBtn" actionListener="#{licencjaBean.modyfikujLicencje}" value="Zapisz" rendered="#{licencjaBean.stanLicencji == 'wybrano'}"/>
             <h:commandButton styleClass="iBtn" immediate="true" type="reset" value="Usuń" rendered="#{licencjaBean.stanLicencji == 'wybrano'}" id="usunButton">
             <rich:componentControl for="panel" attachTo="usunButton" operation="show" event="onclick"/>
             </h:commandButton>
             <a4j:commandButton reRender="licencjeListaPanel,licencjeSzczegolyPanel" styleClass="iBtn" immediate="true" actionListener="#{licencjaBean.anulujLicencje}" value="Anuluj" rendered="#{licencjaBean.stanLicencji != 'zaden'}"/>
             </h:panelGrid>
             </f:facet>
            
             </h:panelGrid>
             </div>
             </a4j:form>
            
             <rich:modalPanel id="panel" autosized="true">
             <f:facet name="header">
             <h:panelGroup>
             <h:outputText value="Usuwanie licencji"></h:outputText>
             </h:panelGroup>
             </f:facet>
            
             <f:facet name="controls">
             <h:panelGroup>
             <h:outputLink value="#" id="hidelinkLicencja">Zamknij</h:outputLink>
             <rich:componentControl for="panel" attachTo="hidebuttonLicencja,hidelinkLicencja" operation="hide" event="onclick"/>
             </h:panelGroup>
             </f:facet>
             <h:outputText value="Czy na pewno chcesz usunąć licencje #{sprzetBean.czescKomputeraForm.nazwa}?"></h:outputText>
             <h:outputText rendered="#{!licencjaBean.listaKomputerowLicencjiPusta}">
             <br/>
             Następujące komputery zostaną pozbawione licencji:
             <br/>
             <br/>
             </h:outputText>
             <rich:dataTable
             id="komputeryLicencjiLista"
             rowClasses="cur"
             rows="20"
             value="#{licencjaBean.listaKomputerowLicencji}"
             var="komputer"
             rendered="#{!licencjaBean.listaKomputerowLicencjiPusta}">
            
             <rich:column>
             <f:facet name="header">
             <h:outputText value="Nazwa" />
             </f:facet>
             <h:outputText value="#{komputer.nazwa}" />
             </rich:column>
            
             <rich:column>
             <f:facet name="header">
             <h:outputText value="IP" />
             </f:facet>
             <h:outputText value="#{komputer.ip}" />
             </rich:column>
            
             </rich:dataTable>
            
             <h:form>
             <a4j:commandButton reRender="licencjeSzczegolyPanel,licencjeListaPanel" styleClass="iBtn" actionListener="#{licencjaBean.usunLicencje}" value="Usuń" />
             <a4j:commandButton styleClass="iBtn" type="reset" immediate="true" value="Anuluj" id="hidebuttonLicencja"/>
             </h:form>
             </rich:modalPanel>
            
            </ui:composition>
            


            and code of backBean:

            /*
             * To change this template, choose Tools | Templates
             * and open the template in the editor.
             */
            package pl.iteam.inwentaryzacja.beans;
            
            import java.io.IOException;
            import java.util.List;
            import javax.faces.event.ActionEvent;
            import org.apache.log4j.Logger;
            import pl.iteam.inwentaryzacja.forms.LicencjaForm;
            import pl.iteam.inwentaryzacja.forms.OprogramowanieForm;
            import pl.iteam.inwentaryzacjaconnector.beans.Licencja;
            import pl.iteam.inwentaryzacjaconnector.beans.Oprogramowanie;
            import pl.iteam.inwentaryzacjaconnector.client.OprogramowanieService;
            import pl.iteam.inwentaryzacjaconnector.client.ServiceException;
            import pl.iteam.inwentaryzacjaconnector.client.ServicesFactory;
            
            /**
             *
             * @author Tomasz
             */
            public class LicencjaBean {
            
             OprogramowanieForm oprogramowanieForm;
             OprogramowanieForm oprogramowanieSearchForm;
             LicencjaForm licencjaForm;
             LicencjaForm licencjaSearchForm;
             OprogramowanieService oprogramowanieService;
             List listaOprogramowania = null;
             List listaLicencji = null;
             List listaKomputerowLicencji = null;
             List listaLicencjiOprogramowania = null;
             String stanOprogramowania = "zaden";
             String stanLicencji = "zaden";
             private static Logger logger = Logger.getLogger(LicencjaBean.class);
            
             public LicencjaBean() {
             oprogramowanieForm = new OprogramowanieForm();
             oprogramowanieSearchForm = new OprogramowanieForm();
             licencjaForm = new LicencjaForm();
             licencjaSearchForm = new LicencjaForm();
            
             pobierzLicencje();
             pobierzOprogramowanie();
             }
            
             public List getListaLicencjiOprogramowania() {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
            
             try {
             listaLicencjiOprogramowania = oprogramowanieService.pobierzLicencjeDanegoOprogramowania(oprogramowanieForm.getIdOprogramowania());
             } catch (ServiceException ex) {
             logger.error("Błąd przy pobieraniu listy licencji danego oprogramowania", ex);
             ex.printStackTrace();
             }
             return listaLicencjiOprogramowania;
             }
            
             public boolean isListaLicencjiOprogramowaniaPusta() {
             getListaLicencjiOprogramowania();
             if (listaLicencjiOprogramowania == null) {
             return true;
             }
             return listaLicencjiOprogramowania.size() > 0 ? false : true;
             }
            
             public List getListaKomputerowLicencji() {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
            
             try {
             listaKomputerowLicencji = oprogramowanieService.pobierzKomputeryDanejLicencji(licencjaForm.getIdLicencji());
             } catch (ServiceException ex) {
             logger.error("Błąd przy pobieraniu listy komputerow danej licencji", ex);
             ex.printStackTrace();
             }
             return listaKomputerowLicencji;
             }
            
             public boolean isListaKomputerowLicencjiPusta() {
             getListaKomputerowLicencji();
             if (listaKomputerowLicencji == null) {
             return true;
             }
             return listaKomputerowLicencji.size() > 0 ? false : true;
             }
            
             public void wyszukajOprogramowanie(ActionEvent event) {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             Oprogramowanie oprogramowanie = oprogramowanieSearchForm.getOprogramowanie();
             if (oprogramowanie.getKategoria().contains("Wszystkie")) {
             oprogramowanie.setKategoria(null);
             }
             if (oprogramowanie.getPriorytet().contains("Wszystkie")) {
             oprogramowanie.setPriorytet(null);
             }
             if (oprogramowanie.getTypLicencji().contains("Wszystkie")) {
             oprogramowanie.setTypLicencji(null);
             }
             listaOprogramowania = oprogramowanieService.pobierzOprogramowanieZFiltrem(oprogramowanie.getNazwa(), oprogramowanie.getKategoria(), oprogramowanie.getOpis(), oprogramowanie.getPriorytet(), oprogramowanie.getTypLicencji());
             } catch (ServiceException ex) {
             System.out.println(" blad ");
             logger.error("Błąd przy pobieraniu listy oprogramowania", ex);
             ex.printStackTrace();
             }
             }
            
             public void pobierzOprogramowanie() {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             listaOprogramowania = oprogramowanieService.pobierzOprogramowanie();
             } catch (ServiceException ex) {
             logger.error("Błąd przy pobieraniu listy oprogramowania", ex);
             }
             }
            
             public void dodajOprogramowanie(ActionEvent event) {
             if (!stanOprogramowania.equals("dodawanie")) {
             stanOprogramowania = "dodawanie";
             wyczyscOprogramowanie();
            
             } else {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             oprogramowanieService.dodajOprogramowanie(oprogramowanieForm.getOprogramowanie());
             } catch (ServiceException ex) {
             ex.printStackTrace();
             logger.error("Błąd przy dodawaniu oprogramowania", ex);
             }
             //wymuszenie pobrania nowej listy oprogramowania w panelu z licencjami
             licencjaForm.setProgramy(null);
            
             pobierzOprogramowanie();
             anulujOprogramowanie(event);
             }
             }
            
             public void usunOprogramowanie(ActionEvent event) {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             oprogramowanieService.usunOprogramowanie(oprogramowanieForm.getIdOprogramowania());
             } catch (ServiceException ex) {
             ex.printStackTrace();
             logger.error("Błąd przy usuwaniu oprogramowania", ex);
             }
             pobierzOprogramowanie();
             anulujOprogramowanie(event);
             }
            
             public void modyfikujOprogramowanie(ActionEvent event) {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             oprogramowanieService.modyfikujOprogramowanie(oprogramowanieForm.getOprogramowanie());
             } catch (ServiceException ex) {
             ex.printStackTrace();
             logger.error("Błąd przy modyfikowaniu oprogramowania", ex);
             }
             pobierzOprogramowanie();
             anulujOprogramowanie(event);
             }
            
             public void anulujOprogramowanie(ActionEvent event) {
             stanOprogramowania = "zaden";
             wyczyscOprogramowanie();
             }
            
             public void wyczyscOprogramowanie() {
             oprogramowanieForm.setIdOprogramowania(-1);
             oprogramowanieForm.setKategoria("");
             oprogramowanieForm.setNazwa("");
             oprogramowanieForm.setOpis("");
             oprogramowanieForm.setPriorytet("");
             oprogramowanieForm.setTypLicencji("");
             oprogramowanieForm.setWersja("");
             }
            
             public void pobierzLicencje() {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             listaLicencji = oprogramowanieService.pobierzLicencje();
             } catch (ServiceException ex) {
             logger.error("Błąd przy pobieraniu listy licencji", ex);
             }
             }
            
             public void wyszukajLicencje(ActionEvent event) {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             Licencja licencja = licencjaSearchForm.getLicencja();
             listaLicencji = oprogramowanieService.pobierzLicencjeZFiltrem(licencja);
             } catch (ServiceException ex) {
             logger.error("Błąd przy pobieraniu listy licencji", ex);
             ex.printStackTrace();
             }
             }
            
             public void dodajLicencje(ActionEvent event) {
             if (!stanLicencji.equals("dodawanie")) {
             stanLicencji = "dodawanie";
             wyczyscLicencje();
            
             } else {
             boolean czy = licencjaForm.validatePuste();
             if (czy) {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             oprogramowanieService.dodajLicencje(licencjaForm.getLicencja());
             } catch (ServiceException ex) {
             ex.printStackTrace();
             logger.error("Błąd przy dodawaniu licencji", ex);
             }
             pobierzLicencje();
             anulujLicencje(event);
             }
             }
             }
            
             public void usunLicencje(ActionEvent event) {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             oprogramowanieService.usunLicencje(licencjaForm.getIdLicencji());
             } catch (ServiceException ex) {
             ex.printStackTrace();
             logger.error("Błąd przy usuwaniu licencji", ex);
             }
             pobierzLicencje();
             anulujLicencje(event);
             }
            
             public void modyfikujLicencje(ActionEvent event) {
             oprogramowanieService = ServicesFactory.getOprogramowanieService();
             try {
             oprogramowanieService.modyfikujLicencje(licencjaForm.getLicencja());
             } catch (ServiceException ex) {
             ex.printStackTrace();
             logger.error("Błąd przy modyfikowaniu licencji", ex);
             }
             pobierzLicencje();
             anulujLicencje(event);
             }
            
             public void anulujLicencje(ActionEvent event) {
             stanLicencji = "zaden";
             wyczyscLicencje();
             }
            
             public void wyczyscLicencje() {
             licencjaForm.setIdLicencji(-1);
             licencjaForm.setIdOprogramowania(-1);
             licencjaForm.setIlosc("");
             licencjaForm.setInfo("");
             licencjaForm.setKluczNapis("");
             licencjaForm.setKluczPlik(null);
             licencjaForm.setNazwaPliku("");
             licencjaForm.setNrFaktury("");
             licencjaForm.setNumerLicencji("");
             licencjaForm.setTerminWygasania(null);
             licencjaForm.setKomunikatyWalidacji(null);
             }
            
             public void fileUploadListener(org.richfaces.event.UploadEvent event) throws IOException {
             if (event == null) {
             logger.warn("fileUploadListener(): null upload event");
             return;
             }
            
             org.richfaces.model.UploadItem item = event.getUploadItem();
            
             String fileName = item.getFileName();
             int begin = fileName.lastIndexOf('\\');
             begin += 1;
             licencjaForm.setKluczPlik(item.getData());
             licencjaForm.setNazwaPliku(fileName.substring(begin));
            
             logger.info("pobrano plik.");
             }
            
             public LicencjaForm getLicencjaForm() {
             return licencjaForm;
             }
            
             public void setLicencjaForm(LicencjaForm licencjaForm) {
             this.licencjaForm = licencjaForm;
             }
            
             public List getListaLicencji() {
             return listaLicencji;
             }
            
             public void setListaLicencji(List listaLicencji) {
             this.listaLicencji = listaLicencji;
             }
            
             public List getListaOprogramowania() {
             return listaOprogramowania;
             }
            
             public void setListaOprogramowania(List listaOprogramowania) {
             this.listaOprogramowania = listaOprogramowania;
             }
            
             public OprogramowanieForm getOprogramowanieForm() {
             return oprogramowanieForm;
             }
            
             public void setOprogramowanieForm(OprogramowanieForm oprogramowanieForm) {
             this.oprogramowanieForm = oprogramowanieForm;
             }
            
             public OprogramowanieForm getOprogramowanieSearchForm() {
             return oprogramowanieSearchForm;
             }
            
             public void setOprogramowanieSearchForm(OprogramowanieForm oprogramowanieSearchForm) {
             this.oprogramowanieSearchForm = oprogramowanieSearchForm;
             }
            
             public String getStanLicencji() {
             return stanLicencji;
             }
            
             public void setStanLicencji(String stanLicencji) {
             this.stanLicencji = stanLicencji;
             }
            
             public String getStanOprogramowania() {
             return stanOprogramowania;
             }
            
             public void setStanOprogramowania(String stanOprogramowania) {
             this.stanOprogramowania = stanOprogramowania;
             }
            
             public LicencjaForm getLicencjaSearchForm() {
             return licencjaSearchForm;
             }
            
             public void setLicencjaSearchForm(LicencjaForm licencjaSearchForm) {
             this.licencjaSearchForm = licencjaSearchForm;
             }
            }
            


            and finally code of formBean:


            /*
             * To change this template, choose Tools | Templates
             * and open the template in the editor.
             */
            package pl.iteam.inwentaryzacja.forms;
            
            import java.util.ArrayList;
            import java.util.Collection;
            import java.util.Date;
            import java.util.Iterator;
            import java.util.List;
            import javax.faces.context.FacesContext;
            import javax.faces.event.ActionEvent;
            import javax.faces.model.SelectItem;
            import org.apache.log4j.Logger;
            import pl.iteam.inwentaryzacja.beans.LicencjaBean;
            import pl.iteam.inwentaryzacjaconnector.beans.Licencja;
            import pl.iteam.inwentaryzacjaconnector.beans.Oprogramowanie;
            import pl.iteam.inwentaryzacjaconnector.client.OprogramowanieService;
            import pl.iteam.inwentaryzacjaconnector.client.ServiceException;
            import pl.iteam.inwentaryzacjaconnector.client.ServicesFactory;
            
            /**
             *
             * @author Tomasz
             */
            public class LicencjaForm {
            
             int idLicencji;
             String ilosc;
             Date terminWygasania;
             String numerLicencji;
             String kluczNapis;
             byte[] kluczPlik;
             String nazwaPliku;
             String nrFaktury;
             String info;
             int idOprogramowania;
             List programy;
             Collection listaPlikow;
             List<String> komunikatyWalidacji = null;
            
             private static Logger logger = Logger.getLogger(LicencjaForm.class);
            
             public LicencjaForm() {
             listaPlikow = new ArrayList();
             }
            
             public void usunPlik(ActionEvent event) {
             nazwaPliku = null;
             kluczPlik = null;
             listaPlikow = new ArrayList();
             }
            
             public boolean validatePuste() {
             komunikatyWalidacji = new ArrayList<String>();
            
             if (ilosc == null || ilosc.isEmpty()) {
             komunikatyWalidacji.add(" Ilość jest pusta.");
             } else {
             try {
             Integer.parseInt(ilosc);
             } catch(Exception e) {
             komunikatyWalidacji.add(" Ilość musi być liczbą całkowitą.");
             }
             }
             if (numerLicencji == null || numerLicencji.isEmpty()) {
             komunikatyWalidacji.add(" Numer licencji jest pusty.");
             }
             if (nrFaktury == null || nrFaktury.isEmpty()) {
             komunikatyWalidacji.add(" Nr faktury jest pusty.");
             }
             if (info == null || info.isEmpty()) {
             komunikatyWalidacji.add(" Info jest pusty.");
             }
            
             if (komunikatyWalidacji.size() > 0) {
             return false;
             } else {
             return true;
             }
             }
            
             public void setProgramy(List programy) {
             this.programy = programy;
             }
            
             public Collection<SelectItem> getProgramy() {
             if (programy == null) {
             List listaProgramow = new ArrayList();
             programy = new ArrayList();
             OprogramowanieService pracownikService = ServicesFactory.getOprogramowanieService();
             try {
             listaProgramow = pracownikService.pobierzOprogramowanie();
             } catch (ServiceException ex) {
             logger.error("Błąd przy pobieraniu listy pracownikow", ex);
             ex.printStackTrace();
             }
             for (Iterator iter = listaProgramow.iterator(); iter.hasNext();) {
             Oprogramowanie program = (Oprogramowanie) iter.next();
             programy.add(new SelectItem(program.getIdOprogramowania(), program.getNazwa() + " " + program.getWersja()));
             }
             }
             return programy;
             }
            
             public Licencja getLicencja() {
             Licencja licencja = new Licencja();
             licencja.setIdLicencji(idLicencji);
             licencja.setIdOprogramowania(idOprogramowania);
            
             try {
             licencja.setIlosc(Integer.parseInt(ilosc));
             } catch (Exception e) {
             licencja.setIlosc(-1);
             }
             licencja.setInfo(info);
             licencja.setKluczNapis(kluczNapis);
             licencja.setKluczPlik(kluczPlik);
             licencja.setNazwaPliku(nazwaPliku);
             licencja.setNrFaktury(nrFaktury);
             licencja.setNumerLicencji(numerLicencji);
             licencja.setTerminWygasania(terminWygasania);
             return licencja;
             }
            
             public boolean isFileEmpty() {
             if (nazwaPliku != null && !nazwaPliku.equals("") && !nazwaPliku.equals("null")) {
             return false;
             } else {
             return true;
             }
             }
            
             public int getIdLicencji() {
             return idLicencji;
             }
            
             public void setIdLicencji(int idLicencji) {
             this.idLicencji = idLicencji;
             LicencjaBean licencjaBean = (LicencjaBean) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("licencjaBean");
             for (Iterator iter = licencjaBean.getListaLicencji().iterator(); iter.hasNext();) {
             Licencja licencja = (Licencja) iter.next();
             if (licencja.getIdLicencji() == idLicencji) {
             terminWygasania = licencja.getTerminWygasania();
             return;
             }
             }
             }
            
             public int getIdOprogramowania() {
             return idOprogramowania;
             }
            
             public void setIdOprogramowania(int idOprogramowania) {
             this.idOprogramowania = idOprogramowania;
             }
            
             public String getIlosc() {
             return ilosc;
             }
            
             public void setIlosc(String ilosc) {
             this.ilosc = ilosc;
             }
            
             public String getInfo() {
             return info;
             }
            
             public void setInfo(String info) {
             this.info = info;
             }
            
             public String getKluczNapis() {
             return kluczNapis;
             }
            
             public void setKluczNapis(String kluczNapis) {
             this.kluczNapis = kluczNapis;
             }
            
             public byte[] getKluczPlik() {
             return kluczPlik;
             }
            
             public void setKluczPlik(byte[] kluczPlik) {
             this.kluczPlik = kluczPlik;
             }
            
             public String getNrFaktury() {
             return nrFaktury;
             }
            
             public void setNrFaktury(String nrFaktury) {
             this.nrFaktury = nrFaktury;
             }
            
             public String getNumerLicencji() {
             return numerLicencji;
             }
            
             public void setNumerLicencji(String numerLicencji) {
             this.numerLicencji = numerLicencji;
             }
            
             public Date getTerminWygasania() {
             return terminWygasania;
             }
            
             public void setTerminWygasania(Date terminWygasania) {
             this.terminWygasania = terminWygasania;
             }
            
             public String getNazwaPliku() {
             return nazwaPliku;
             }
            
             public void setNazwaPliku(String nazwaPliku) {
             this.nazwaPliku = nazwaPliku;
             }
            
             public Collection getListaPlikow() {
             return listaPlikow;
             }
            
             public void setListaPlikow(Collection listaPlikow) {
             this.listaPlikow = listaPlikow;
             }
            
             public List<String> getKomunikatyWalidacji() {
             return komunikatyWalidacji;
             }
            
             public void setKomunikatyWalidacji(List<String> komunikatyWalidacji) {
             this.komunikatyWalidacji = komunikatyWalidacji;
             }
            
            }
            



            web.xml


            
            <?xml version="1.0" encoding="UTF-8"?>
            <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
             <context-param>
             <param-name>com.sun.faces.verifyObjects</param-name>
             <param-value>true</param-value>
             </context-param>
             <context-param>
             <param-name>com.sun.faces.validateXml</param-name>
             <param-value>true</param-value>
             </context-param>
             <context-param>
             <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
             <param-value>.xhtml</param-value>
             </context-param>
             <context-param>
             <param-name>facelets.DEVELOPMENT</param-name>
             <param-value>false</param-value>
             </context-param>
             <context-param>
             <param-name>facelets.SKIP_COMMENTS</param-name>
             <param-value>true</param-value>
             </context-param>
             <context-param>
             <param-name>org.richfaces.SKIN</param-name>
             <param-value>blueSky</param-value>
             </context-param>
             <context-param>
             <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
             <param-value>com.sun.facelets.FaceletViewHandler</param-value>
             </context-param>
             <filter>
             <display-name>RichFaces Filter</display-name>
             <filter-name>richfaces</filter-name>
             <filter-class>org.ajax4jsf.Filter</filter-class>
             <init-param>
             <param-name>createTempFiles</param-name>
             <param-value>false</param-value>
             </init-param>
             <init-param>
             <param-name>maxRequestSize</param-name>
             <param-value>10000000</param-value>
             </init-param>
             </filter>
             <filter-mapping>
             <filter-name>richfaces</filter-name>
             <servlet-name>Faces Servlet</servlet-name>
             <dispatcher>REQUEST</dispatcher>
             <dispatcher>FORWARD</dispatcher>
             <dispatcher>INCLUDE</dispatcher>
             </filter-mapping>
             <filter>
             <filter-name>facelets</filter-name>
             <filter-class>com.sun.facelets.webapp.FaceletFilter</filter-class>
             </filter>
             <filter-mapping>
             <filter-name>facelets</filter-name>
             <url-pattern>*.xhtml</url-pattern>
             </filter-mapping>
             <servlet>
             <servlet-name>Faces Servlet</servlet-name>
             <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
             <load-on-startup>1</load-on-startup>
             </servlet>
             <servlet-mapping>
             <servlet-name>Faces Servlet</servlet-name>
             <url-pattern>*.jsf</url-pattern>
             </servlet-mapping>
             <servlet>
             <servlet-name>Upload Servlet</servlet-name>
             <servlet-class>pl.iteam.inwentaryzacja.utils.UploadServlet</servlet-class>
             <load-on-startup>2</load-on-startup>
             </servlet>
             <servlet-mapping>
             <servlet-name>Upload Servlet</servlet-name>
             <url-pattern>*.upload</url-pattern>
             </servlet-mapping>
             <welcome-file-list>
             <welcome-file>
             index.html
             </welcome-file>
             </welcome-file-list>
            </web-app>
            


            thats all:)
            BIG thanks for so fast reply from you:)

            • 3. Re: a4j:support event=

              Great thanks to you for so much of code :)

              The problem caused by fileUpload becomes not-rendered after file was submitted.
              See isEmpty method of you code. If some name exists in the bean this method return false. So a4j:support cannot be processed inside not-rendered component.
              Dont change rendered attribute of fileupload inside fileUploadListener if you want to execute some event action with it.

              • 4. Re: a4j:support event=
                tomek_0021

                BIG, GREAT thanks for your help.
                It works! :-D