TagLib for ActiveWidgets Grid
Guys, I'm working on TagLib for ActiveWidgets Grid. Basic functionalities are coded already and tested too. Wanting bit more feedback from the community before releasing the TagLib.
TLD:
JSP:
Result is very much similar to simple.htm example !!!
All of the above will produce same result (i.e. "Microsoft Corporation") :-D This makes it easily workable with JSTL even maintaining better code formatting and readability.
---
Sudhaker Raj
TLD:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>grid</short-name>
<uri>http://thej2ee.com/taglib/grid</uri>
<display-name>ActiveWidgets Grid Taglib</display-name>
<description>
This is JSP TagLib implementation of ActiveWidgets Grid
</description>
<tag>
<name>grid</name>
<tag-class>com.thej2ee.grid.GridTag</tag-class>
<body-content>empty</body-content>
<description>
This instantiates a ActiveWidgets Grid.
</description>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>columnCount</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>header</name>
<tag-class>com.thej2ee.grid.HeaderTag</tag-class>
<body-content>JSP</body-content>
<description>
This holds grid header.
</description>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>
Same id given in earlier grid declaration <grid:grid id="myGrid" columnCount="5" />
</description>
</attribute>
</tag>
<tag>
<name>data</name>
<tag-class>com.thej2ee.grid.DataTag</tag-class>
<body-content>JSP</body-content>
<description>
This holds grid data rows.
</description>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>
Same id given in earlier grid declaration <grid:grid id="myGrid" columnCount="5" />
</description>
</attribute>
</tag>
<tag>
<name>row</name>
<tag-class>com.thej2ee.grid.RowTag</tag-class>
<body-content>JSP</body-content>
<description>
This holds a data row.
</description>
</tag>
<tag>
<name>item</name>
<tag-class>com.thej2ee.grid.ItemTag</tag-class>
<body-content>JSP</body-content>
<description>
This holds a data cell.
</description>
<attribute>
<name>index</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
<description>
Sets the item index in a row.
Default value is one higher than highest used before.
</description>
</attribute>
<attribute>
<name>trim</name>
<description>
Trims the content and JS encode it.
Options are 'true' and 'false' - default is 'true'.
</description>
</attribute>
</tag>
<tag>
<name>write</name>
<tag-class>com.thej2ee.grid.WriteTag</tag-class>
<body-content>JSP</body-content>
<description>
This writes grid content in javascript array.
</description>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<description>
Same id given in earlier grid declaration <grid:grid id="myGrid" columnCount="5" />
</description>
</attribute>
<attribute>
<name>trim</name>
<description>
Compress the generated code (may not be readable).
Options are 'true' and 'false' - default is 'false'.
</description>
</attribute>
<attribute>
<name>writeLibrary</name>
<description>
Options are 'true' and 'false' - default is 'false'.
</description>
</attribute>
<attribute>
<name>writeHeader</name>
<description>
Options are 'true' and 'false' - default is 'true'.
</description>
</attribute>
<attribute>
<name>writeData</name>
<description>
Options are 'true' and 'false' - default is 'true'.
</description>
</attribute>
<attribute>
<name>writeGrid</name>
<description>
Options are 'true' and 'false' - default is 'true'.
</description>
</attribute>
</tag>
</taglib>
JSP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"
%><%@ taglib uri="http://thej2ee.com/taglib/grid" prefix="grid"
%><%@ page language="java" import="java.lang.*,java.util.*"
%>
<html>
<head>
<title> Grid Tag Test </title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="mytag,trim,thej2ee">
<meta http-equiv="description" content="This is my test page">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
This is my Grid Tag.
<grid:grid id="myGrid" columnCount="5" />
<grid:header name="myGrid">
<grid:item> Ticker </grid:item>
<grid:item> Company Name </grid:item>
<grid:item> Market Cap. </grid:item>
<grid:item> $ Sales </grid:item>
<grid:item> Employees </grid:item>
</grid:header>
<grid:data name="myGrid">
<grid:row>
<grid:item> MSFT </grid:item>
<grid:item> Microsoft Corporation </grid:item>
<grid:item> 314,571.156 </grid:item>
<grid:item> 32,187.000 </grid:item>
<grid:item> 55000 </grid:item>
</grid:row>
<grid:row>
<grid:item> ORCL </grid:item>
<grid:item> Oracle Corporation </grid:item>
<grid:item> 62,615.266 </grid:item>
<grid:item> 9,519.000 </grid:item>
<grid:item> 40650 </grid:item>
</grid:row>
<grid:row>
<grid:item> SAP </grid:item>
<grid:item> SAP AG (ADR) </grid:item>
<grid:item> 40,986.328 </grid:item>
<grid:item> 8,296.420 </grid:item>
<grid:item> 28961 </grid:item>
</grid:row>
<grid:row>
<grid:item> CA </grid:item>
<grid:item> Computer Associates Inter </grid:item>
<grid:item> 15,606.335 </grid:item>
<grid:item> 3,164.000 </grid:item>
<grid:item> 16000 </grid:item>
</grid:row>
<grid:row>
<grid:item> ERTS </grid:item>
<grid:item> Electronic Arts Inc. </grid:item>
<grid:item> 14,490.895 </grid:item>
<grid:item> 2,503.727 </grid:item>
<grid:item> 4000 </grid:item>
</grid:row>
<grid:row>
<grid:item> SFTBF </grid:item>
<grid:item> Softbank Corp. (ADR) </grid:item>
<grid:item> 14,485.840 </grid:item>
<grid:item> .000 </grid:item>
<grid:item> 6865 </grid:item>
</grid:row>
<grid:row>
<grid:item> VRTS </grid:item>
<grid:item> Veritas Software Corp. </grid:item>
<grid:item> 14,444.272 </grid:item>
<grid:item> 1,578.658 </grid:item>
<grid:item> 5647 </grid:item>
</grid:row>
<grid:row>
<grid:item> SYMC </grid:item>
<grid:item> Symantec Corporation </grid:item>
<grid:item> 9,932.483 </grid:item>
<grid:item> 1,482.029 </grid:item>
<grid:item> 4300 </grid:item>
</grid:row>
<grid:row>
<grid:item> INFY </grid:item>
<grid:item> Infosys Technologies Ltd. </grid:item>
<grid:item> 9,763.851 </grid:item>
<grid:item> 830.748 </grid:item>
<grid:item> 15400 </grid:item>
</grid:row>
<grid:row>
<grid:item> INTU </grid:item>
<grid:item> Intuit Inc. </grid:item>
<grid:item> 9,702.477 </grid:item>
<grid:item> 1,650.743 </grid:item>
<grid:item> 6700 </grid:item>
</grid:row>
<grid:row>
<grid:item> ADBE </grid:item>
<grid:item> Adobe Systems Incorporate </grid:item>
<grid:item> 9,533.050 </grid:item>
<grid:item> 1,230.817 </grid:item>
<grid:item> 3341 </grid:item>
</grid:row>
<grid:row>
<grid:item> PSFT </grid:item>
<grid:item> PeopleSoft, Inc. </grid:item>
<grid:item> 8,246.467 </grid:item>
<grid:item> 1,941.167 </grid:item>
<grid:item> 8180 </grid:item>
</grid:row>
<grid:row>
<grid:item> SEBL </grid:item>
<grid:item> Siebel Systems, Inc. </grid:item>
<grid:item> 5,434.649 </grid:item>
<grid:item> 1,417.952 </grid:item>
<grid:item> 5909 </grid:item>
</grid:row>
<grid:row>
<grid:item> BEAS </grid:item>
<grid:item> BEA Systems, Inc. </grid:item>
<grid:item> 5,111.813 </grid:item>
<grid:item> 965.694 </grid:item>
<grid:item> 3063 </grid:item>
</grid:row>
<grid:row>
<grid:item> SNPS </grid:item>
<grid:item> Synopsys, Inc. </grid:item>
<grid:item> 4,482.535 </grid:item>
<grid:item> 1,169.786 </grid:item>
<grid:item> 4254 </grid:item>
</grid:row>
<grid:row>
<grid:item> CHKP </grid:item>
<grid:item> Check Point Software Tech </grid:item>
<grid:item> 4,396.853 </grid:item>
<grid:item> 424.769 </grid:item>
<grid:item> 1203 </grid:item>
</grid:row>
<grid:row>
<grid:item> MERQ </grid:item>
<grid:item> Mercury Interactive Corp. </grid:item>
<grid:item> 4,325.488 </grid:item>
<grid:item> 444.063 </grid:item>
<grid:item> 1822 </grid:item>
</grid:row>
<grid:row>
<grid:item> DOX </grid:item>
<grid:item> Amdocs Limited </grid:item>
<grid:item> 4,288.017 </grid:item>
<grid:item> 1,427.088 </grid:item>
<grid:item> 9400 </grid:item>
</grid:row>
<grid:row>
<grid:item> CTXS </grid:item>
<grid:item> Citrix Systems, Inc. </grid:item>
<grid:item> 3,946.485 </grid:item>
<grid:item> 554.222 </grid:item>
<grid:item> 1670 </grid:item>
</grid:row>
<grid:row>
<grid:item> KNM </grid:item>
<grid:item> Konami Corporation (ADR) </grid:item>
<grid:item> 3,710.784 </grid:item>
<grid:item> .000 </grid:item>
<grid:item> 4313 </grid:item>
</grid:row>
</grid:data>
<grid:write name="myGrid" />
</body>
</html>
Result is very much similar to simple.htm example !!!
<grid:item>Microsoft Corporation</grid:item>
or
<grid:item> Microsoft Corporation </grid:item>
or
<grid:item> Microsoft
Corporation </grid:item>
or
<grid:item>
Microsoft Corporation
</grid:item>
or
<grid:item>
Microsoft
Corporation
</grid:item>
All of the above will produce same result (i.e. "Microsoft Corporation") :-D This makes it easily workable with JSTL even maintaining better code formatting and readability.
---
Sudhaker Raj
Sudhaker Raj
July 27,