I have started the rewrite/refactor. My src is available and is still in progress. The intent is to introduce an independent Table interface to be portable to other frameworks including a swing based JTable. Help yourself if it is helpful.
If you would like my involvement I am interested. http://www.tablelib.com Ben Simpson [EMAIL PROTECTED] ----- Original Message ----- From: "Jerome Jacobsen" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Thursday, January 23, 2003 11:07 AM Subject: RE: The <display:*> tag library > I think a complete rewrite is needed AND a new API (same tags but different > tag attributes). Thus I would say an entirely new tag library. I'll call > the new version display2 and the current one display1 for clarity below. > > - Follow JSTL conventions for attribute names and support JSTL-EL. > (Actually make use of the JSTL Tag support classes). This means JSP 1.2 is > baseline. Assuming JSTL-EL capable attributes allows us to make a simpler > tag API. Less attributes are needed. For example we don't need the > Struts-like bean-name and bean-property attributes. > > - Drop the sorting feature. The user can provide this functionality by > making their column names links to actions which resort their list. Or > their query form can have order by criteria. The display1 taglib only > provides resort of contents in current page which I think is confusing to > users if there are multiple pages. > > - The display2:table tag should work as an IterationTag. The display1 > doesn't therefore you cannot access a scripting variable for the current row > of the iteration. You are forced to use Decorators. This is non-standard > as per Struts or JSTL. I vote for removing the Decorator functionality. > > - The display2:column should allow optional body content. If present its > output is used in the table cell. > > A first stab at the API might look like this. > > Table > ----- > <display2:table [var="varName"] items="collection" > [varStatus="varStatusName"] > [begin="begin"] [end="end"] [step="step"] > [pageSize="pageSize"] [pageUrl="pageUrl"] > [cssClassPrefix="cssClassPrefix"]> > body content > </display2:table> > > Where var, items, varStatus, begin, end, and step have the same meaning as > JSTL's c:forEach tag. > And pageSize and pageUrl have same meaning as in display1 taglib. > The display1 taglib generates HTML tags using CSS class names. You can't > define what these names will be so in display2 the cssClassPrefix can be > used to prefix the auto generated CSS names. A div tag around the entire > table works too so maybe this attribute isn't necessary? > > Column > ------ > <display2:column title="title" [value="value"]> > body content > </display2:column> > > Title has the same meaning as in display1, except that it is mandatory. > Value is optional, but must be present if there is no body content. The > evaluation of value goes in the contents of the cell. The optional body > content is used in the cell if there is no value attribute or if the value > attribute results in null. > > That's a first stab and it probably is missing stuff. Maybe an escapeXml > attribute should be added to both tags? > > Any thoughts on this? > > > -----Original Message----- > > From: Charles Brault [mailto:[EMAIL PROTECTED]] > > Sent: Thursday, January 23, 2003 10:09 AM > > To: [EMAIL PROTECTED] > > Subject: Re: The <display:*> tag library > > > > > > +1 > > > > I've added support for Struts messages in column titles, glad to > > contribute it. Since I really depend on this library for a product I've > > developed, and need to fix some problems, make some additions, I'd be > > pleased to work with others on improving this great piece of code, > > perhaps be the "pumpkin keeper" if no one else will do it (although I'm > > reluctant to volunteer, as I haven't performed that role before, except > > as a gardner ;-) > > > > chaz > > -- > > Charles E Brault > > [EMAIL PROTECTED] > > "Where are we going, and why am I in this handbasket?" > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > > > > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

