subTable, dataTabel and tooltip problems
mgenov1 Sep 24, 2007 2:09 PMHello guys, I have found some problems (in versiond 3.1.1-SNAPSHOT and 3.1.0 )
1. subTable problem.
When a subTable component is used ( 3.1.0 version ) all looks like a charm. After version is changed from 3.1.0 to 3.1.1-SNAPSHOT things looks different and the subtable borders aren't shown correctly.
2. toolTip with datatable.
When user enters the page for the first time and goes over a row which has a tooltip that looks like an empty box.
3. There is a problem with rendering of any of components. This is the error message which firefox is displaying when I'm trying to open the page.
XML Parsing Error: not well-formed
Location: http://localhost:8080/agreement-web/pages/agreementsView.jsf
Line Number 96, Column 123:<script type="text/javascript" language="Javascript">function dpf(f) {var adp = f.adp;if (adp != null) {for (var i = 0;i < adp.length;i++) {f.removeChild(adp);}}};function apf(f, pvp) {var adp = new Array();f.adp = adp;var ps = pvp.split(',');for (var i = 0,ii = 0;i < ps.length;i++,ii++) {var p = document.createElement("input");p.type = "hidden";p.name = ps;p.value = ps[i + 1];f.appendChild(p);adp[ii] = p;i += 1;}};function jsfcljs(f, pvp, t) {apf(f, pvp);var ft = f.target;if (t) {f.target = t;}f.submit();f.target = ft;dpf(f);};</script>
And also the full page source
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
xmlns:rich="http://richfaces.ajax4jsf.org/rich"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:agr="http://agreements.com/agr">
<ui:composition template="/templates/agreements.xhtml">
<ui:define name="mainPage">
<a4j:outputPanel id="errorsPanel">
<h:messages />
</a4j:outputPanel>
<h1>????????</h1>
<br />
<h:form id="agreementsForm">
<table width="100%">
<tr>
<td align="center"><a4j:outputPanel id="dataPanel">
<table>
<tr>
<td align="center">?????</td>
<td align="center">
<h:selectOneMenu id="nameChangeButton" value="#{agreementView.nameState}">
<f:selectItems value="#{agreementView.nameStates}" />
<a4j:support event="onchange" reRender="dataPanel,agreementList,agreementScroller" action="#{agreementView.change}"/>
</h:selectOneMenu>
</td>
<td align="center">?????</td>
<td align="center">?.K. #</td>
<td align="center">
<h:selectOneMenu id="personalChangeButton" value="#{agreementView.personalState}">
<f:selectItems value="#{agreementView.personalStates}" />
<a4j:support event="onchange" reRender="dataPanel,agreementList,agreementScroller" action="#{agreementView.change}"/>
</h:selectOneMenu>
</td>
<td align="center">???</td>
<td align="center">??? #</td>
<td align="center">
<h:selectOneMenu id="ipMacChangeButton" value="#{agreementView.accountState}">
<f:selectItems value="#{agreementView.accountStates}" />
<a4j:support event="onchange" reRender="dataPanel,agreementList,agreementScroller" action="#{agreementView.change}" />
</h:selectOneMenu></td>
</tr>
<tr>
<td><h:inputText id="searchIngoingNumber"
value="#{searchBean.ingoingNumber}" size="6">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText></td>
<td>
<h:inputText id="searchName" value="#{searchBean.name}" rendered="#{agreementView.nameState == 'FIRSTNAME'}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText>
<h:inputText id="searchCompanyName" value="#{searchBean.companyName}" rendered="#{agreementView.nameState == 'COMPANY'}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText>
<h:inputText id="searchLastName" value="#{searchBean.lastName}" rendered="#{agreementView.nameState == 'LASTNAME'}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText>
</td>
<td><h:inputText id="searchStreet"
value="#{searchBean.street}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText></td>
<td><h:inputText id="searchCardNumber"
value="#{searchBean.cardNumber}" size="6">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText></td>
<td>
<h:inputText id="searchEmail"
value="#{searchBean.email}" size="6" rendered="#{agreementView.personalState == 'EMAIL'}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText>
<h:inputText id="searchMobile"
value="#{searchBean.mobile}" size="6" rendered="#{agreementView.personalState == 'GSM'}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText>
<h:inputText id="searchTelephone"
value="#{searchBean.telephone}" size="6" rendered="#{agreementView.personalState == 'TELEPHONE'}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText>
</td>
<td><h:inputText id="searchVatId"
value="#{searchBean.vatId}" size="8">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText></td>
<td><h:inputText id="searchTaxId"
value="#{searchBean.taxId}" size="8">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="250" />
</h:inputText></td>
<td>
<h:inputText id="searchIp" value="#{searchBean.ip}"
size="13" rendered="#{agreementView.accountState == 'IP'}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="2500" />
</h:inputText>
<h:inputText id="searchMAC" value="#{searchBean.mac}"
size="13" rendered="#{agreementView.accountState == 'MAC'}">
<a4j:support event="onkeyup"
reRender="agreementList,agreementScroller"
action="#{agreementView.search}" requestDelay="2500" />
</h:inputText>
</td>
</tr>
</table>
</a4j:outputPanel></td>
</tr>
<tr>
<td colspan="5" align="center"><t:buffer into="#{table}">
<a4j:region id="agreementViewRegion">
<rich:dataTable width="80%" id="agreementList" rows="5"
value="#{agreementView.allAgreements}" var="agr">
<f:facet name="header">
<rich:columnGroup>
<rich:column styleClass="headerText" colspan="8">
<h:outputText value="????????" />
</rich:column>
<rich:column breakBefore="true">
<h:outputText styleClass="headerText" value="?????" />
</rich:column>
<rich:column>
<h:outputText styleClass="headerText" value="???" />
</rich:column>
<rich:column>
<h:outputText styleClass="headerText" value="???/?.?????" />
</rich:column>
<rich:column colspan="5">
<h:outputText styleClass="headerText" value="???????" />
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column>
<h:outputText value="#{agr.ingoingNumber}" />
</rich:column>
<rich:column>
<h:outputText rendered="#{agr.client.clientType == 0}"
value="#{agr.client.firstname} #{agr.client.family}" />
<h:outputText rendered="#{agr.client.clientType == 1}"
value="#{agr.client.firmtype.firmtype} #{agr.client.firmName}" />
</rich:column>
<rich:column>
<h:outputText rendered="#{agr.client.clientType == 0}"
value="#{agr.client.egn}" />
<h:outputText rendered="#{agr.client.clientType == 1}"
value="#{agr.client.taxid}" />
</rich:column>
<rich:column colspan="6" align="right">
<h:commandLink style="defaultLinkStyle"
action="#{agreementView.viewAppendixes}" rendered="#{agr:isActionAllowed('viewAppendixes')}">
<h:graphicImage value="/images/document.png" alt="???????????" />
</h:commandLink>
<h:commandLink style="defaultLinkStyle"
action="#{agreementView.editAgreement}" rendered="#{agr:isActionAllowed('editAgreement')}">
<h:graphicImage value="/images/edit.gif" alt="???????????" />
</h:commandLink>
<h:commandLink style="defaultLinkStyle"
action="#{agreementView.printAgreement}" rendered="#{agr:isActionAllowed('printAgreement')}">
<h:graphicImage value="/images/print.gif" alt="?????" />
</h:commandLink>
</rich:column>
<rich:subTable var="adr" value="#{agr.client.addressesAsList}">
<rich:column>
<f:facet name="header">
<rich:spacer />
</f:facet>
</rich:column>
<rich:column>
<h:outputText value="#{adr.account.username}"></h:outputText>
<f:facet name="header">
<h:outputText value="User" />
</f:facet>
</rich:column>
<rich:column>
<h:outputText value="#{adr.telephone}"></h:outputText>
<f:facet name="header">
<h:outputText value="???????" />
</f:facet>
</rich:column>
<rich:column>
<h:outputText value="#{adr.mobile}"></h:outputText>
<f:facet name="header">
<h:outputText value="???????" />
</f:facet>
</rich:column>
<rich:column>
<h:outputText
value="#{adr.street.streetname} ##{adr.streetnumber} #{adr.floor != '' ? '??:':''} #{adr.floor} #{adr.entrance != '' ? '??:':''} #{adr.entrance} #{adr.appartmentnumber != '' ? '??:':''} #{adr.appartmentnumber}"></h:outputText>
<f:facet name="header">
<h:outputText value="?????" />
</f:facet>
</rich:column>
<rich:column>
<h:outputText value="#{adr.account.ip}"></h:outputText>
<f:facet name="header">
<h:outputText value="IP" />
</f:facet>
</rich:column>
<rich:column>
<h:outputText value="#{adr.account.mac}"></h:outputText>
<f:facet name="header">
<h:outputText value="Mac" />
</f:facet>
</rich:column>
<rich:column>
<h:outputText value="#{adr.contactname}"></h:outputText>
<f:facet name="header">
<h:outputText value="???? ?? ???????" />
</f:facet>
</rich:column>
</rich:subTable>
</rich:dataTable>
</a4j:region>
</t:buffer> <rich:datascroller id="agreementScroller" for="agreementList"
maxPages="20" scrollerListener="#{agreementView.listen}"
stepControls="false" fastControls="hide" /> <h:outputText
value="#{table}" escape="false" /></td>
</tr>
</table>
</h:form>
<rich:modalPanel id="addScreen" minHeight="200" minWidth="250"
height="200" width="250" zindex="2000">
<f:facet name="header">
<h:outputText value="???????? ?? ??????????" />
</f:facet>
<f:facet name="controls">
<h:graphicImage value="/images/minus.gif" style="cursor:pointer"
onclick="Richfaces.hideModalPanel('mp')" />
</f:facet>
<h:form id="streetAddingForm">
<a4j:outputPanel id="streetPanel">
</a4j:outputPanel>
</h:form>
</rich:modalPanel>
</ui:define>
</ui:composition>
</html>
The screen shots of bugs #1 and #2 are at http://matrix.evo.bg/~matrix/screenshot/