dev@jsftemplating.java.net

Re: JSFTemplating: Seamsupport was Enhancement #10: Dynamic table

From: Padraig Byrne <padraigbyrne_at_yahoo.com>
Date: Sun, 12 Aug 2007 01:03:54 -0700 (PDT)

Imre, Thanks for reply. Current situation is I have seam, richfaces & facelets with entity beans generated by seamgen but I like functionality of woodstock table (& some other components), which uses dataprovider as backend for table as far as I can see. Woodstock lead me to investigate jsf templating which look very similar to facelets but has tight woodstock integration from what I can see seam gen generates beans which extend entityQuery beans & which I can directly connect woodstock table & perform sort functionailty out of the box but when I want o add filtering etc all the example use helper classes which are based on dataprovider ( eg filtercriteria ) I am trying to get a detailed understanding of this table & dataproviders & compatibility with entity beans On woodstock table, sorting etc is there any detailed document on how this works when filering sorting etc & what is the best forum to put these questions ? ( Seem this is same team ?) I wil be working with very large datasets so performance & response will be critical Thanks for pointer to look into query class in seam framework package & any assistance is greatly appreciated & I will also share my learning back to group Rgds, Padraig. ----- Original Message ---- From: Imre Oßwald <ioss_at_mx.jevelopers.com> To: dev_at_jsftemplating.dev.java.net Sent: Saturday, August 11, 2007 2:38:00 AM Subject: Re: JSFTemplating: Seamsupport was Enhancement #10: Dynamic table Hi Padraig, (i started to "move" the subject if you do not mind) Jsftemplating will not working "seamlessly" with seam (or seam will not work seamlessly with jsftemplating, either way) i am working on making seam work seamlesserly :D with jsft, the problem at the moment is, i have about 1-2h per month to do that right now, but i hope to spend more time in the near future. Afaik we havent implemented the cusomt tags of seam yet in jsftemplating, also seam "likes" richfaces and ajax4jsf (I have a early patch for jsftemplating to make it work at least somewhat with ajax4jsf, but its not in cvs yet, as i first wanted to check more frameworks, so we can come up with a change to the codebase that allows us to integrate most of them with acceptable effort and minimal changes to the codebase). If you still ;) want to try seam (which i barely got working stable without jsftemplating :D) with jsftemplating I would be pleased to help you and try to fix the issues that will come up (or even better we could fix them together). "OT": Concerning filtercriteria in seam, have you had a look at the documentation of the "framework" package, the class Query (iirc) supports paging, filtering and more quite well (its even possible to "create" the query objects, without writing any code (if you do not count xml-code as code ;) ). I guess if you use Query to get a list of entities this should not be any different then doing it without seam. Feel free to continue this thread, Regards Imre (qoob) On 10.08.2007, at 23:47, Padraig Byrne wrote: > Thanks for prompt reply. > > I'm tryiing to figure best way to connect to data. Examples refer > to dataprovider and give sample addition classes to add filtering , > selection etc all based on dataprovider > I have seam generated entity beans which I would like to use & > which work fine for providing basic data & sorting but don't > believe I can apply filtercriteria per examples & also trying to > figure if selection as provide by seam datamodel will work with this. > > Is this type of area you are looking in ? & also will jsftemplating > work "seamlessly" with seam ? > > Is this a facelets alternative ? > > Rgds, > Padraig. > > > ----- Original Message ---- > From: Karam Singh Badesha <Karam.Badesha_at_Sun.COM> > To: dev_at_jsftemplating.dev.java.net > Sent: Friday, August 10, 2007 10:30:35 PM > Subject: Re: JSFTemplating: Enhancement #10: Dynamic table > > > Padraig, > The sorting functionality is part of woodstock components. Multiple > column sorting is also default on the tables. JSFTemplating is not > doing > anything extra in that area. It does provide some additional ways of > providing data to the table, which in my opinion requires less coding. > > -Karam > > Padraig Byrne wrote: >> Not sure of etiquette here so apologoes if replying in this manner >> is not allowed >> >> I am currently evaluating woodstock fo ruse with seam & facelets >> but jsf templating look very interesting. >> >> Does this feature support muti column sorting in a datatable ? >> >> Rgds, >> Padraig. >> >> ----- Original Message ---- >> From: Ken Paulsen <Ken.Paulsen_at_Sun.COM> >> To: dev_at_jsftemplating.dev.java.net >> Sent: Friday, August 10, 2007 10:00:09 PM >> Subject: Re: JSFTemplating: Enhancement #10: Dynamic table >> >> >> Hi Karam, >> >> Yes, I believe it is part of JSFT now so you will not need that .jar >> file. JSFT has com.sun.jsftemplating.component.dataprovider.*. >> If you >> remove it and still have problems let me know. >> >> Thanks! >> >> Ken >> >> Karam Singh Badesha wrote: >> >>> Ken, >>> Remember some time you have sent me a jar file >>> "MultipleDataList.jar" >>> or something like that. Is that part of jsftemplating now? Just >>> asking >>> so that I can go ahead and remove it after I pick up latest >>> jsftemplating build. >>> >>> thanks >>> Karam >>> >>> Ken Paulsen wrote: >>> >>>> I forgot the attachment... here it is. >>>> >>>> ken >>>> >>>> Ken Paulsen wrote: >>>> >>>>> Hi Karam, >>>>> >>>>> I am very sorry for my slow response time lately. I had a >>>>> conference then vacation, then lots of email. :( >>>>> >>>>> I just spent some time implementing this feature. Attached is a >>>>> sample .jsf page which includes all the data in the page. You >>>>> (obviously) would want to retrieve this from your database, >>>>> backend >>>>> logic, or managed bean instead. However, I think it clearly shows >>>>> how to use the component. >>>>> >>>>> The table is the same. The table row group has a new name, the >>>>> same >>>>> old properties, and all the column properties. The column >>>>> properties are prefixed with "column". All properties >>>>> supported by >>>>> the Woodstock "tableColumn" component should work. Each column >>>>> property must be specified as a List (this is done in the .jsf >>>>> page >>>>> using {"list element #1", "list element #2", ...} -- however, you >>>>> can use a #{} expression to resolve to your data which must be a >>>>> List). There is 1 additional property called "columnValue". This >>>>> also must be a List which contains the content for each column. >>>>> Only staticText is supported. >>>>> >>>>> Let me know if you have any questions or problems! You will >>>>> need to >>>>> checkout/build JSFTemplating to get this feature... or wait until >>>>> tomorrow to get the nightly build. >>>>> >>>>> Thanks! >>>>> >>>>> Ken >>>>> >>>>> Karam Singh Badesha wrote: >>>>> >>>>>> Ken, >>>>>> Any status? >>>>>> >>>>>> thanks >>>>>> Karam >>>>>> >>>>>> Ken Paulsen wrote: >>>>>> >>>>>>> Hi Karam, >>>>>>> >>>>>>> I'm sorry I haven't made any progress. I will make an effort to >>>>>>> get something for you to look at this week. >>>>>>> >>>>>>> Ken >>>>>>> >>>>>>> Karam.Badesha_at_Sun.COM wrote: >>>>>>> >>>>>>>> Ken, >>>>>>>> Any updates? >>>>>>>> >>>>>>>> thanks >>>>>>>> -Karam >>>>>>>> >>>>>>>> Ken Paulsen wrote: >>>>>>>> >>>>>>>> >>>>>>>>> The foreach that I currently have is a component itself. So it >>>>>>>>> won't create multiple TableColumn components. Also the tree >>>>>>>>> doesn't allow non-tree UIComponents inside it. >>>>>>>>> >>>>>>>>> If we add a foreach that is executed during the creation time, >>>>>>>>> then yes... it would work. In JSFT, it wouldn't be too hard to >>>>>>>>> do this since the descriptors (LayoutElement) already exist >>>>>>>>> for >>>>>>>>> looping, they'd just have to be used during the tree >>>>>>>>> creation... >>>>>>>>> which amounts to 1 extra condition. We'd probably need a flag >>>>>>>>> indicating that it is intended for tree-creation time... or >>>>>>>>> perhaps a subclass of the existing while/foreach >>>>>>>>> layoutelements. >>>>>>>>> >>>>>>>>> Ken >>>>>>>>> >>>>>>>>> Imre Oßwald wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>>> Couldn't that be done with some kind of foreach? (I think i >>>>>>>>>> have done that in facelets that way) >>>>>>>>>> >>>>>>>>>> Imre >>>>>>>>>> >>>>>>>>>> On 04.07.2007, at 03:17, Karam Singh Badesha wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Ok great. >>>>>>>>>>> >>>>>>>>>>> thanks >>>>>>>>>>> Karam >>>>>>>>>>> >>>>>>>>>>> Ken Paulsen wrote: >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> I think I have enough to go on. I'm going to try to make >>>>>>>>>>>> this >>>>>>>>>>>> generic and put it in the JSFT code. Although when I get >>>>>>>>>>>> into >>>>>>>>>>>> it, I may change my mind. ;) >>>>>>>>>>>> >>>>>>>>>>>> Thanks! >>>>>>>>>>>> >>>>>>>>>>>> Ken >>>>>>>>>>>> >>>>>>>>>>>> Karam Singh Badesha wrote: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> Ken, >>>>>>>>>>>>> This should be fine. Let me know if you are going to >>>>>>>>>>>>> deliver >>>>>>>>>>>>> this directly to the jsftemplating repository or >>>>>>>>>>>>> release as >>>>>>>>>>>>> separate jar file. I am out of the office until July11 so >>>>>>>>>>>>> might not be able to respond any questions that you send >>>>>>>>>>>>> later. If there is anything else you want to know, please >>>>>>>>>>>>> let me know now. >>>>>>>>>>>>> >>>>>>>>>>>>> thanks >>>>>>>>>>>>> Karam >>>>>>>>>>>>> >>>>>>>>>>>>> Ken Paulsen wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Karam, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Supporting the attributes you need on the column could >>>>>>>>>>>>>> look >>>>>>>>>>>>>> something like this: >>>>>>>>>>>>>> >>>>>>>>>>>>>> <sun:table ...> >>>>>>>>>>>>>> <sun:dynamicColumnTableRowGroup data="#{dataOnly}" >>>>>>>>>>>>>> columnId="#{listOfIds}" >>>>>>>>>>>>>> columnHeaderText="#{listOfHeaderText}" >>>>>>>>>>>>>> columnFooterText="#{listOfFooterText}" >>>>>>>>>>>>>> columnRowHeader="#{listOf...}" >>>>>>>>>>>>>> columnSort="#{listOf...}" >>>>>>>>>>>>>> columnAlign="#{listOf...}" >>>>>>>>>>>>>> columnWidth="#{listOf...}" >>>>>>>>>>>>>> columnSpacerColumn="#{listOf...}" >>>>>>>>>>>>>> [TableRowGroup properties here] >>>>>>>>>>>>>> /> >>>>>>>>>>>>>> </sun:table> >>>>>>>>>>>>>> >>>>>>>>>>>>>> It is necessary to pass in a List of values because each >>>>>>>>>>>>>> column needs a value for each of these properties. >>>>>>>>>>>>>> >>>>>>>>>>>>>> There are other ways (including passing in a data >>>>>>>>>>>>>> structure >>>>>>>>>>>>>> that contains all the info in one EL expression), I'd >>>>>>>>>>>>>> like >>>>>>>>>>>>>> to know what you'd prefer. I'd also probably want to >>>>>>>>>>>>>> support all the other TRG properties to make it generally >>>>>>>>>>>>>> useful. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Ken >>>>>>>>>>>>>> >>>>>>>>>>>>>> Karam Singh Badesha wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Ken, >>>>>>>>>>>>>>> Actually TableRowGroup is ok to stay on the jsf page, >>>>>>>>>>>>>>> all >>>>>>>>>>>>>>> I need is a way to pass the various columns >>>>>>>>>>>>>>> (tableColumn) >>>>>>>>>>>>>>> to the page. Currently on tableColumn I only use >>>>>>>>>>>>>>> following >>>>>>>>>>>>>>> properties: >>>>>>>>>>>>>>> id headerText >>>>>>>>>>>>>>> footerText >>>>>>>>>>>>>>> rowHeader >>>>>>>>>>>>>>> sort >>>>>>>>>>>>>>> align >>>>>>>>>>>>>>> width >>>>>>>>>>>>>>> spacerColumn >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> In the following example: >>>>>>>>>>>>>>> <sun:table ...> >>>>>>>>>>>>>>> <sun:dynamicColumnTableRowGroup data="#{dataOnly}" >>>>>>>>>>>>>>> columnVisible="#{listOfVisibleValuesOneForEachColumn}" >>>>>>>>>>>>>>> columnSortIcon="#{listOfSortIconValuesOneForEachColumn}" >>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>> [TableRowGroup properties here] /> >>>>>>>>>>>>>>> </sun:table> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> What does columnVisible and columnSortIcon do? In this >>>>>>>>>>>>>>> approach where do I specify the columnHeaders? If this >>>>>>>>>>>>>>> approach is straight forward and I can get the column >>>>>>>>>>>>>>> headers etc from a resource file, its fine with me. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> thanks >>>>>>>>>>>>>>> Karam >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Ken Paulsen wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi Karam, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> We need to work out what tableData's data structure >>>>>>>>>>>>>>>> looks >>>>>>>>>>>>>>>> like. The table component could have all it's >>>>>>>>>>>>>>>> properties >>>>>>>>>>>>>>>> as as it normally does (no need to worry about them). >>>>>>>>>>>>>>>> However, you're hiding the tableRowGroup and >>>>>>>>>>>>>>>> tableColumn >>>>>>>>>>>>>>>> components... so they'll need to be created from the >>>>>>>>>>>>>>>> data. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> TableRowGroup supports the following properties: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> tableDataSorter >>>>>>>>>>>>>>>> onDblClick >>>>>>>>>>>>>>>> onKeyPress >>>>>>>>>>>>>>>> sourceData >>>>>>>>>>>>>>>> aboveColumnFooter >>>>>>>>>>>>>>>> extraFooterHtml >>>>>>>>>>>>>>>> onKeyUp >>>>>>>>>>>>>>>> onMouseUp >>>>>>>>>>>>>>>> extraHeaderHtml >>>>>>>>>>>>>>>> footerText >>>>>>>>>>>>>>>> align >>>>>>>>>>>>>>>> selectMultipleToggleButton >>>>>>>>>>>>>>>> onClick >>>>>>>>>>>>>>>> groupToggleButton >>>>>>>>>>>>>>>> toolTip >>>>>>>>>>>>>>>> onMouseDown >>>>>>>>>>>>>>>> tableDataFilter >>>>>>>>>>>>>>>> multipleColumnFooters >>>>>>>>>>>>>>>> rows >>>>>>>>>>>>>>>> sourceVar >>>>>>>>>>>>>>>> valign >>>>>>>>>>>>>>>> first >>>>>>>>>>>>>>>> onMouseOut >>>>>>>>>>>>>>>> multipleTableColumnFooters >>>>>>>>>>>>>>>> onMouseOver >>>>>>>>>>>>>>>> onMouseMove >>>>>>>>>>>>>>>> emptyDataMsg >>>>>>>>>>>>>>>> selected >>>>>>>>>>>>>>>> collapsed >>>>>>>>>>>>>>>> visible >>>>>>>>>>>>>>>> aboveColumnHeader >>>>>>>>>>>>>>>> onKeyDown >>>>>>>>>>>>>>>> headerText >>>>>>>>>>>>>>>> styleClasses >>>>>>>>>>>>>>>> aboveColumnHeader >>>>>>>>>>>>>>>> onKeyDown >>>>>>>>>>>>>>>> headerText >>>>>>>>>>>>>>>> styleClasses >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> TableRowGroup also supports these facets: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> header >>>>>>>>>>>>>>>> footer >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> TableColumn supports these properties: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> spacerColumn >>>>>>>>>>>>>>>> width >>>>>>>>>>>>>>>> onDblClick >>>>>>>>>>>>>>>> sort >>>>>>>>>>>>>>>> selectedId >>>>>>>>>>>>>>>> onKeyPress >>>>>>>>>>>>>>>> severity >>>>>>>>>>>>>>>> rendered >>>>>>>>>>>>>>>> rowHeader >>>>>>>>>>>>>>>> extraTableFooterHtml >>>>>>>>>>>>>>>> extraFooterHtml >>>>>>>>>>>>>>>> onKeyUp >>>>>>>>>>>>>>>> onMouseUp >>>>>>>>>>>>>>>> styleClass >>>>>>>>>>>>>>>> descending >>>>>>>>>>>>>>>> embeddedActions >>>>>>>>>>>>>>>> height >>>>>>>>>>>>>>>> extraHeaderHtml >>>>>>>>>>>>>>>> align >>>>>>>>>>>>>>>> footerText >>>>>>>>>>>>>>>> scope >>>>>>>>>>>>>>>> style >>>>>>>>>>>>>>>> sortImageURL >>>>>>>>>>>>>>>> onClick >>>>>>>>>>>>>>>> sortIcon >>>>>>>>>>>>>>>> toolTip >>>>>>>>>>>>>>>> onMouseDown >>>>>>>>>>>>>>>> alignKey >>>>>>>>>>>>>>>> tableFooterText >>>>>>>>>>>>>>>> valign >>>>>>>>>>>>>>>> noWrap >>>>>>>>>>>>>>>> onMouseOut >>>>>>>>>>>>>>>> onMouseOver >>>>>>>>>>>>>>>> emptyCell >>>>>>>>>>>>>>>> visible >>>>>>>>>>>>>>>> onMouseOut >>>>>>>>>>>>>>>> onMouseOver >>>>>>>>>>>>>>>> onMouseMove >>>>>>>>>>>>>>>> emptyCell >>>>>>>>>>>>>>>> visible >>>>>>>>>>>>>>>> onKeyDown >>>>>>>>>>>>>>>> headerText >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> TableColumn defines these facets: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> footer >>>>>>>>>>>>>>>> header >>>>>>>>>>>>>>>> tableFooter >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> So as you can see, the data structure is non-trivial. >>>>>>>>>>>>>>>> However, it may not be as bad as it seems either. If we >>>>>>>>>>>>>>>> can agree to not try to generate TableRowGroup, we can >>>>>>>>>>>>>>>> leave its definition in the .jsf file. I don't think it >>>>>>>>>>>>>>>> adds a lot of value to try to eliminate it. As for all >>>>>>>>>>>>>>>> the properties on TableColumn... we could decide to >>>>>>>>>>>>>>>> support only a subset. And/or we could create a naming >>>>>>>>>>>>>>>> pattern to cause the factory to apply the values >>>>>>>>>>>>>>>> correctly -- this is made more difficult, however, b/c >>>>>>>>>>>>>>>> there are multiple TableColumns and the values may vary >>>>>>>>>>>>>>>> between the TableColumns. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> So we need to know what properties will be supported >>>>>>>>>>>>>>>> directly by your proposed "data" property (if any), and >>>>>>>>>>>>>>>> which will require additional properties in the jsf >>>>>>>>>>>>>>>> file >>>>>>>>>>>>>>>> delegate. For example: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> <sun:table ...> >>>>>>>>>>>>>>>> <sun:dynamicColumnTableRowGroup >>>>>>>>>>>>>>>> data="#{dataPlusPropertiesForAllTableColumns}" >>>>>>>>>>>>>>>> [tableRowGroup properties here] /> >>>>>>>>>>>>>>>> </sun:table> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> OR: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> <sun:table ...> >>>>>>>>>>>>>>>> <sun:dynamicColumnTableRowGroup data="#{dataOnly}" >>>>>>>>>>>>>>>> columnVisible="#{listOfVisibleValuesOneForEachColumn}" >>>>>>>>>>>>>>>> columnSortIcon="# >>>>>>>>>>>>>>>> {listOfSortIconValuesOneForEachColumn}" >>>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>>> [TableRowGroup properties here] /> >>>>>>>>>>>>>>>> </sun:table> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> As you can see, the first approach requires a complex >>>>>>>>>>>>>>>> data structure that you must populate. The 2nd approach >>>>>>>>>>>>>>>> requires you to create the same order of complexity, >>>>>>>>>>>>>>>> however, it is distributed among multiple List objects >>>>>>>>>>>>>>>> which contain the properties to set for each column. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> What do you think? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> A 1-off solution wouldn't have to be so generic and >>>>>>>>>>>>>>>> could >>>>>>>>>>>>>>>> be more specific to your data and needs. You could use >>>>>>>>>>>>>>>> either the "binding" attribute, or a custom factory >>>>>>>>>>>>>>>> (like >>>>>>>>>>>>>>>> above), but it would allow to only do the work you need >>>>>>>>>>>>>>>> for your use case. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Ken >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Karam Singh Badesha wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Here is example of how it might look like in .jsf >>>>>>>>>>>>>>>>> file: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> <sun:table data="#{pageSession.tableData}" >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> .../> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> tableData will have all the column tag information and >>>>>>>>>>>>>>>>> in the .jsf page there will be no column tags. Please >>>>>>>>>>>>>>>>> suggest a way to take care of this. It is not >>>>>>>>>>>>>>>>> really my >>>>>>>>>>>>>>>>> app specific, it can be used by anyone. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> thanks >>>>>>>>>>>>>>>>> Karam >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Karam Singh Badesha wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Ken, >>>>>>>>>>>>>>>>>> Here is an example of what I am trying to do: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Right now in the .jsf page I have to list the column >>>>>>>>>>>>>>>>>> tag with header etc. I have the situation where I >>>>>>>>>>>>>>>>>> have >>>>>>>>>>>>>>>>>> drop down boxes and depending upon different >>>>>>>>>>>>>>>>>> selections, number of columns and column headers >>>>>>>>>>>>>>>>>> could >>>>>>>>>>>>>>>>>> change. And I want the control to be defined in the >>>>>>>>>>>>>>>>>> Resources file, etc number of columns, column headers >>>>>>>>>>>>>>>>>> etc. I am not sure how it will work myself, as the >>>>>>>>>>>>>>>>>> jsf >>>>>>>>>>>>>>>>>> code is changing (when number of columns change). I >>>>>>>>>>>>>>>>>> think when we talked last time, you suggested that I >>>>>>>>>>>>>>>>>> somehow create the table object in java code >>>>>>>>>>>>>>>>>> (handler) >>>>>>>>>>>>>>>>>> and pass it to the page. What do you suggest? Let me >>>>>>>>>>>>>>>>>> know if this is clear or not. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> thanks >>>>>>>>>>>>>>>>>> Karam >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Ken Paulsen wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Hi Karam, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I can look into doing this... however, after reading >>>>>>>>>>>>>>>>>>> the issue more closely, I need some more information >>>>>>>>>>>>>>>>>>> from you. How do you want to specify the table >>>>>>>>>>>>>>>>>>> columns >>>>>>>>>>>>>>>>>>> from the page? >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> TableColumns typically have children, so they'd also >>>>>>>>>>>>>>>>>>> have to be created. Do you want those to just be >>>>>>>>>>>>>>>>>>> staticText? Or do you want control over what type >>>>>>>>>>>>>>>>>>> they >>>>>>>>>>>>>>>>>>> are also? Which TableColumn attribute do you want >>>>>>>>>>>>>>>>>>> control over? Perhaps you can provide an example of >>>>>>>>>>>>>>>>>>> what you'd like it to look like in the .jsf file? >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> After looking at this more closely, I suspect >>>>>>>>>>>>>>>>>>> this may >>>>>>>>>>>>>>>>>>> end up being custom for your needs. However, if I >>>>>>>>>>>>>>>>>>> can >>>>>>>>>>>>>>>>>>> keep it generic and useful for others as well, I >>>>>>>>>>>>>>>>>>> will. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Ken >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Karam Singh Badesha wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi Ken, >>>>>>>>>>>>>>>>>>>> Is it possible to get a solution for issue #10 in >>>>>>>>>>>>>>>>>>>> jsftemplating? I really need some solution for this >>>>>>>>>>>>>>>>>>>> so that create dynamic tables. Please let me know. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> thanks >>>>>>>>>>>>>>>>>>>> Karam >>>>>>>>>>>>>>>>>>>> >>>> ------------------------------------------------------------------- >>>> ----- >>>> >>>> $attribute{row1}); mapPut(map="$attribute{row1}" key="a" >>>> value="Row1 >>>> Col A"); mapPut(map="$attribute{row1}" key="b" value="Row1 Col B"); >>>> mapPut(map="$attribute{row1}" key="c" value="Row1 Col C"); // Row 2 >>>> createMap(result=>$attribute{row2}); mapPut(map="$attribute{row2}" >>>> key="a" value="Row2 Col A"); mapPut(map="$attribute{row2}" key="b" >>>> value="Row2 Col B"); mapPut(map="$attribute{row2}" key="c" >>>> value="Row2 Col C"); // Row 3 createMap(result=>$attribute{row3}); >>>> mapPut(map="$attribute{row3}" key="a" value="Row3 Col A"); >>>> mapPut(map="$attribute{row3}" key="b" value="Row3 Col B"); >>>> mapPut(map="$attribute{row3}" key="c" value="Row3 Col C"); // >>>> Create >>>> List of Map (List of the rows) setAttribute(key='listOfRows' >>>> value={"$attribute{row1}" "${row2}" "${row3}"} ); // Row 1 (again, >>>> different obj.) createMap(result=>$attribute{rowA}); >>>> mapPut(map="$attribute{rowA}" key="foo" value="Other Obj: A - >>>> foo"); >>>> mapPut(map="$attribute{rowA}" key="bar" value="Other Obj: A - >>>> bar"); >>>> // Row 2 (again, different obj.) createMap(result=>$attribute >>>> {rowB}); >>>> mapPut(map="$attribute{rowB}" key="foo" value="Other Obj: B - >>>> foo"); >>>> mapPut(map="$attribute{rowB}" key="bar" value="Other Obj: B - >>>> bar"); >>>> // Row 3 (again, different obj.) createMap(result=>$attribute >>>> {rowC}); >>>> mapPut(map="$attribute{rowC}" key="foo" value="Other Obj: C - >>>> foo"); >>>> mapPut(map="$attribute{rowC}" key="bar" value="Other Obj: C - >>>> bar"); >>>> // Create List of Map (List of more rows) setAttribute >>>> (key='moreRows' >>>> value={"$attribute{rowA}" "${rowB}" "${rowC}"} ); /> >>>>