possible Scrollabledatatable JIRA issue - need confirmation
x490812 Nov 23, 2007 12:50 PMI am attempting to bind a scrollabledatatable component to an HtmlScrollableDataTable in my backing bean. Without the binding="#{CASLISTFORM.tbl}" attribute on the component, the view renders fine. When I add the binding attribute, I get the folowing in debug.seam:
An Error Occurred: Component casetableform:casetable not instance of org.richfaces.component.UIScrollableDataTable +- Stack Trace java.lang.IllegalArgumentException: Component casetableform:casetable not instance of org.richfaces.component.UIScrollableDataTable +- Component Tree <AjaxViewRoot id="_viewRoot" immediate="false" locale="en" renderKitId="HTML_BASIC" renderRegionOnly="false" rendered="true" selfRendered="false" submitted="false" transient="false" viewId="/caselist.xhtml"> <!DOCTYPE composition 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"> <link href="stylesheet/fraud.css" rel="stylesheet" type="text/css"/> <style> .col { padding-left: 5px; } </style> <body> <div id="caselistdiv" style="padding: 10px;"> <HtmlForm enctype="application/x-www-form-urlencoded" id="casetableform" prependId="true" rendered="true" style="width:802px;margin:auto;border:solid 1px" submitted="false" transient="false"> <HtmlScrollableDataTable ajaxSingle="false" bypassUpdates="false" columnClasses="col" componentState="org.richfaces.component.UIScrollableDataTable$1@2d0850" first="0" frozenColCount="0" height="600px" hideWhenScrolling="false" id="casetable" ignoreDupResponses="false" limitToList="false" onRowDblClick="A4J.AJAX.Submit('_viewRoot','casetableform',event,{'parameters':{'casetableform:casetable:j_id3':'casetableform:casetable:j_id3'} ,'actionUrl':'/fraud/caselist.seam'} )" onselectionchange="A4J.AJAX.Submit('_viewRoot','casetableform',event,{'parameters':{'casetableform:casetable:j_id4':'casetableform:casetable:j_id4'} ,'actionUrl':'/fraud/caselist.seam'} )" rendered="true" requestDelay="-2147483648" rowIndex="-1" rows="50" sortListener="org.richfaces.event.sort.SingleColumnSortListener@184df1d" sortMode="single" timeout="-2147483648" transient="false" var="case" width="800px" binding="#{CASELISTFORM.tbl}">
Both my view and the rendered component tree show I have an instance of HtmlScrollableDatatable - which isa UIScrollableDataTable
here is backing bean:
@Stateful @Name("CASELISTFORM") public class CaseListFormBean implements ICaseListForm { //private Selection rowSelected; private UIScrollableDataTable tbl; . . @Factory public UIScrollableDataTable getTbl() { if (tbl == null) tbl = new HtmlScrollableDataTable(); return tbl; } public void setTbl(UIScrollableDataTable tbl) { this.tbl = tbl; } .
here is view:
. . <div id="caselistdiv" style="padding: 10px;"> <h:form id="casetableform" style="width:802px;margin:auto;border:solid 1px"> <a4j:commandButton value="call del" action="#{CASELISTFORM.delRow}" /> <rich:scrollableDataTable id="casetable" rows="50" columnClasses="col" value="#{caseList}" var="case" sortMode="single" width="800px" height="600px" binding="#{CASELISTFORM.tbl}"> . .
I have changed build.xml to include richfaces-impl and ui in the /lib dir of the EAR file
My env is
jboss 4.2.0
Richfaces 3.1.2.GA
Seam 2.0.0.GA
My Questions are
1) If this is not a bug, then how to I get a binding to the scrollabledatatable - I want to be able to select rows, and delete them and have the scrollabledatatable update itself (remove the rows) without having to requery the DB
2) I am second guessing myself here - but is this the right EAR structure - to have impl and ui in /lib dir of the EAR instead of the lib dir of the WAR - I have tried it both ways (in both ear and war, and just ear) but the results are the same?