You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ek...@apache.org on 2005/02/09 18:07:48 UTC

svn commit: r153087 - in incubator/beehive/trunk/netui: ant/ src/javascript/tags-datagrid/ src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/ src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/ src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/ test/webapps/drt/coreWeb/databinding/datagrid/misc/ test/webapps/drt/testRecorder/config/ test/webapps/drt/testRecorder/tests/

Author: ekoneil
Date: Wed Feb  9 09:07:42 2005
New Revision: 153087

URL: http://svn.apache.org/viewcvs?view=rev&rev=153087
Log:
Data grid cleanup.

- add netui-datagrid.js to the webapp template
- rename the "header*" properties on HeaderCell to "cell*".  This is a consistency fix for the TLD APIs so that the data cells and header cells are similar.
- add decorator support for adding a decorator to the HeaderCells.  Doesn't yet support replacing the existing decorators -- only adding.
  - add tests for this
- internally rename the AbstractColumn to AbstractCell and AbstractHtmlColumn to AbstractHtmlTableCell.  Makes more sense this way.

BB: self
DRT: NetUI pass
BVT: NetUI pass


Added:
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java
      - copied, changed from r151824, incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
      - copied, changed from r151824, incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/FooDecorator.java   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/HelloWorldDecorator.java   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/helloHeaderDecorator.jsp   (with props)
    incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridHeaderCellDecorator.xml   (with props)
Removed:
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java
Modified:
    incubator/beehive/trunk/netui/ant/webappTemplate.xml
    incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorCell.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageAnchorCell.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageCell.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java
    incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java
    incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/customHeaderStyle.jsp
    incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml

Modified: incubator/beehive/trunk/netui/ant/webappTemplate.xml
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/ant/webappTemplate.xml?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/ant/webappTemplate.xml (original)
+++ incubator/beehive/trunk/netui/ant/webappTemplate.xml Wed Feb  9 09:07:42 2005
@@ -70,6 +70,8 @@
 
         <!-- copy JavaScript and resources -->
         <copy file="${src.dir}/javascript/tagshtml/netui-tree.js" todir="${javascript.dir}"/>
+        <copy file="${src.dir}/javascript/tags-datagrid/netui-datagrid.js" todir="${javascript.dir}"/>
+
         <copy todir="${webapp.dir}">
             <fileset dir="${template.root.dir}/default">
                 <include name="**/*"/>

Modified: incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js (original)
+++ incubator/beehive/trunk/netui/src/javascript/tags-datagrid/netui-datagrid.js Wed Feb  9 09:07:42 2005
@@ -39,7 +39,7 @@
     var value = paramsArray[i].substring(eIndex+1);
    
     if(key == NetUIFilterList.FILTER_KEY) {
-      alert('add filter: ' + value);
+      //alert('add filter: ' + value);
       var filter = NetUIFilterList.parse(value);
       this._filters[this._filters.length] = filter;
     }
@@ -137,7 +137,7 @@
   return this._value;
 }
 
-NetUIParam.prototype.setValue = function(value) {
+NetUIUrlParam.prototype.setValue = function(value) {
   this._value = value;
 }
 

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java Wed Feb  9 09:07:42 2005
@@ -27,6 +27,7 @@
 import org.apache.beehive.netui.databinding.datagrid.model.style.StylePolicy;
 import org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
 import org.apache.beehive.netui.databinding.datagrid.model.sort.SortModel;
+import org.apache.beehive.netui.databinding.datagrid.model.filter.FilterModel;
 import org.apache.beehive.netui.databinding.datagrid.rendering.table.TableRenderer;
 import org.apache.beehive.netui.databinding.datagrid.rendering.pager.PagerRenderer;
 import org.apache.beehive.netui.databinding.datagrid.rendering.pager.PreviousNextPagerRenderer;
@@ -204,6 +205,10 @@
 
     public SortModel getSortModel() {
         return _dgss.getSortModel(_name);
+    }
+
+    public FilterModel getFilterModel() {
+        return _dgss.getFilterModel(_name);
     }
 
     public PagerModel getPagerModel() {

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java Wed Feb  9 09:07:42 2005
@@ -69,7 +69,7 @@
     }
 
     public String getOperationString() {
-        return _filterOperation.getAbbreviation();
+        return _filterOperation != null ? _filterOperation.getAbbreviation() : "";
     }
 
     private static final FilterOperation mapStringToInt(String operation) {

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java Wed Feb  9 09:07:42 2005
@@ -27,6 +27,24 @@
  */
 public abstract class CellDecorator {
 
+    private CellDecorator _cellDecorator = null;
+
+    public CellDecorator() {
+    }
+
+    public CellDecorator(CellDecorator cellDecorator) {
+        this();
+        _cellDecorator = cellDecorator;
+    }
+
+    public CellDecorator getNestedDecorator() {
+        return _cellDecorator;
+    }
+
+    public void setNestedDecorator(CellDecorator cellDecorator) {
+        _cellDecorator = cellDecorator;
+    }
+
     public abstract void decorate(JspContext jspContext,
                                   AbstractRenderAppender appender,
                                   CellModel cellModel)

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java Wed Feb  9 09:07:42 2005
@@ -45,10 +45,8 @@
 
     private static final Logger LOGGER = Logger.getInstance(SortedCellDecorator.class);
 
-    private CellDecorator _decorator;
-
     public SortedCellDecorator(CellDecorator decorator) {
-        _decorator = decorator;
+        super(decorator);
     }
 
     public void decorate(JspContext jspContext, AbstractRenderAppender appender, CellModel cellModel)
@@ -57,7 +55,9 @@
         assert cellModel instanceof HeaderCellModel;
         HeaderCellModel headerCellModel = (HeaderCellModel)cellModel;
 
-        _decorator.decorate(jspContext, appender, cellModel);
+        assert getNestedDecorator() != null : "SortedCellDecorator did not find a nested decorator and requires one";
+        
+        getNestedDecorator().decorate(jspContext, appender, cellModel);
 
         if(headerCellModel.isSortable()) {
             String sortLink = buildSortLink(jspContext, headerCellModel);

Copied: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java (from r151824, incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java)
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java?view=diff&rev=153087&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java&r1=151824&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java Wed Feb  9 09:07:42 2005
@@ -34,7 +34,7 @@
 /**
  *
  */
-public abstract class AbstractColumn
+public abstract class AbstractCell
     extends AbstractSimpleTag
     implements IFormattable {
 

Copied: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java (from r151824, incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java)
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java?view=diff&rev=153087&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r1=151824&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java Wed Feb  9 09:07:42 2005
@@ -36,8 +36,8 @@
 /**
  *
  */
-public abstract class AbstractHtmlColumn
-    extends AbstractColumn
+public abstract class AbstractHtmlTableCell
+    extends AbstractCell
     implements IAttributeConsumer {
 
     private String _sortExpression = null;

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorCell.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorCell.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorCell.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorCell.java Wed Feb  9 09:07:42 2005
@@ -38,7 +38,7 @@
  * renderer="workshop.netui.jspdesigner.tldx.AnchorColumnRenderer"
  */
 public class AnchorCell
-    extends AbstractHtmlColumn
+    extends AbstractHtmlTableCell
     implements IUrlParams {
 
     private static final AnchorCellDecorator DECORATOR = new AnchorCellDecorator();

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java Wed Feb  9 09:07:42 2005
@@ -235,7 +235,8 @@
         throws IOException, JspException {
 
         DataGridModel dgm = DataGridUtil.getDataGridModel(getJspContext());
-        assert dgm != null;
+        if(dgm == null)
+            throw new JspException("Unable to find a dataGridModel in the JspContext");
 
         if(dgm.getRenderState() == DataGridModel.CAPTION_RENDER_STATE) {
             JspFragment fragment = getJspBody();

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java Wed Feb  9 09:07:42 2005
@@ -81,7 +81,8 @@
      * @throws DataGridExtensionException when an error occurs creating an instance of the class
      */
     static final Object instantiateClass(String className, Class assignableFrom) {
-        assert className != null;
+        if(className == null)
+            throw new IllegalArgumentException("Can not create an instance of a null class for the type \"" + assignableFrom + "\"");
 
         try {
             Class clazz = Class.forName(className, true, Thread.currentThread().getContextClassLoader());

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java Wed Feb  9 09:07:42 2005
@@ -240,7 +240,8 @@
         throws IOException, JspException {
 
         DataGridModel dgm = DataGridUtil.getDataGridModel(getJspContext());
-        assert dgm != null;
+        if(dgm == null)
+            throw new JspException("Unable to find a dataGridModel in the JspContext");
 
         if(dgm.getRenderState() == DataGridModel.FOOTER_RENDER_STATE) {
             JspFragment fragment = getJspBody();

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java Wed Feb  9 09:07:42 2005
@@ -239,7 +239,8 @@
 
         JspContext jspContext = getJspContext();
         DataGridModel dataGridModel = DataGridUtil.getDataGridModel(jspContext);
-        assert dataGridModel != null;
+        if(dataGridModel == null)
+            throw new JspException("Unable to find a dataGridModel in the JspContext");
 
         int gridRenderState = dataGridModel.getRenderState();
         if(gridRenderState == DataGridModel.GRID_RENDER_STATE) {

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java Wed Feb  9 09:07:42 2005
@@ -44,10 +44,13 @@
  * @netui.tldx:tag whitespace="indent"
  */
 public class HeaderCell
-    extends AbstractColumn
+    extends AbstractCell
     implements IAttributeConsumer {
 
-    private static final String HEADER_FACET_NAME = "header";
+    private static final String FACET_HEADER_NAME = "header";
+    private static final String FACET_RENDERER_NAME = "renderer";
+    private static final String FACET_RENDERER_NAME_NEW = "extends";
+
     private static final CellDecorator DEFAULT_HEADER_RENDERER;
     private static final CellDecorator SORTED_HEADER_RENDERER;
 
@@ -59,13 +62,15 @@
     private String _headerText = null;
     private ThTag.State _thState = new ThTag.State();
     private HeaderCellModel _headerCellModel = new HeaderCellModel();
-
+    private CellDecorator _cellDecorator = null;
 
     public String getTagName() {
         return "HeaderCell";
     }
 
     /**
+     * Sets the scopeId for any anchors rendered by this header cell.
+     *
      * @netui:attribute required="false" rtexprvalue="true" description="Optional String scopeId that qualifies URL parameters into a particular scope"
      */
     public void setScopeId(String scopeId) {
@@ -145,7 +150,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onClick JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnClick(String onClick) {
+    public void setCellOnClick(String onClick) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONCLICK, onClick);
     }
 
@@ -159,7 +164,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onDblClick JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnDblClick(String onDblClick) {
+    public void setCellOnDblClick(String onDblClick) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONDBLCLICK, onDblClick);
     }
 
@@ -173,7 +178,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onKeyDown JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnKeyDown(String onKeyDown) {
+    public void setCellOnKeyDown(String onKeyDown) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONKEYDOWN, onKeyDown);
     }
 
@@ -187,7 +192,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onKeyUp JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnKeyUp(String onKeyUp) {
+    public void setCellOnKeyUp(String onKeyUp) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONKEYUP, onKeyUp);
     }
 
@@ -201,7 +206,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onKeyPress JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnKeyPress(String onKeyPress) {
+    public void setCellOnKeyPress(String onKeyPress) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONKEYPRESS, onKeyPress);
     }
 
@@ -215,7 +220,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onMouseDown JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnMouseDown(String onMouseDown) {
+    public void setCellOnMouseDown(String onMouseDown) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEDOWN, onMouseDown);
     }
 
@@ -229,7 +234,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onMouseUp JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnMouseUp(String onMouseUp) {
+    public void setCellOnMouseUp(String onMouseUp) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEDOWN, onMouseUp);
     }
 
@@ -243,7 +248,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onMouseMove JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnMouseMove(String onMouseMove) {
+    public void setCellOnMouseMove(String onMouseMove) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEMOVE, onMouseMove);
     }
 
@@ -257,7 +262,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onMouseOut JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnMouseOut(String onMouseOut) {
+    public void setCellOnMouseOut(String onMouseOut) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEOUT, onMouseOut);
     }
 
@@ -271,7 +276,7 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The onMouseOver JavaScript event."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
      */
-    public void setHeaderOnMouseOver(String onMouseOver) {
+    public void setCellOnMouseOver(String onMouseOver) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEOVER, onMouseOver);
     }
 
@@ -285,7 +290,7 @@
      * @netui:attribute required="false"  rtexprvalue="true" description="The style."
      * @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.JspStyleProperty" category="format"
      */
-    public void setHeaderStyle(String style) {
+    public void setCellStyle(String style) {
         if("".equals(style)) return;
 
         _thState.style = style;
@@ -301,7 +306,7 @@
      * @netui:attribute required="false"  rtexprvalue="true" description="The style class."
      * @netui.tldx:attribute category="Format"
      */
-    public void setHeaderStyleClass(String styleClass) {
+    public void setCellStyleClass(String styleClass) {
         if("".equals(styleClass)) return;
 
         _thState.styleClass = styleClass;
@@ -317,21 +322,20 @@
      * @netui:attribute required="false" rtexprvalue="true" description="The title. "
      * @netui.tldx:attribute category="misc"
      */
-    public void setHeaderTitle(String title) {
+    public void setCellTitle(String title) {
         _thState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.TITLE, title);
     }
 
     /**
+     * Sets the text to render for this table header cell.
+     *
+     * @param headerText The text to render.
      * @netui:attribute required="false" rtexprvalue="true"
      */
     public void setHeaderText(String headerText) {
         _headerText = headerText;
     }
 
-    public String getHeaderText() {
-        return _headerText;
-    }
-
     /**
      * Base support for the <code>attribute</code> tag.  This requires that the tag buffer their body and
      * write attribute in the end tag.  For the HTML tags it is not legal to set
@@ -346,12 +350,23 @@
     public void setAttribute(String name, String value, String facet)
         throws JspException {
 
-        if(facet != null && facet.equals(HEADER_FACET_NAME))
+        if(facet != null && facet.equals(FACET_HEADER_NAME)) {
             super.addStateAttribute(_thState, name, value);
-        else {
-            String s = Bundle.getString("Tags_AttributeFacetNotSupported", new Object[]{facet});
-            throw new JspException(s);
+            return;
         }
+        else if(facet != null && facet.equals(FACET_RENDERER_NAME)) {
+            /* provides a way to extend the existing decorators */
+            if(name.equals(FACET_RENDERER_NAME_NEW)) {
+                CellDecorator cellDecorator = (CellDecorator)DataGridUtil.instantiateClass(value, CellDecorator.class);
+                cellDecorator.setNestedDecorator(getCellDecorator());
+                _cellDecorator = cellDecorator;
+                return;
+            }
+            /* todo: provide a way to override the existing decorators (core/sorted/etc) */
+        }
+
+        String s = Bundle.getString("Tags_AttributeFacetNotSupported", new Object[]{facet});
+        throw new JspException(s);
     }
 
     protected CellModel internalGetCellModel() {
@@ -400,9 +415,9 @@
 
         _headerCellModel.setDataGridModel(DataGridUtil.getDataGridModel(getJspContext()));
         _headerCellModel.setBodyContent(bodyContent);
-        _headerCellModel.setHeaderText(getHeaderText());
+        _headerCellModel.setHeaderText(_headerText);
 
-        SORTED_HEADER_RENDERER.decorate(getJspContext(), appender, _headerCellModel);
+        getCellDecorator().decorate(getJspContext(), appender, _headerCellModel);
     }
 
     protected void applyAttributes()
@@ -431,6 +446,15 @@
             /* set an intelligent default for the filtering HREF */
             if(_headerCellModel.getFilterHref() == null && _headerCellModel.getFilterAction() == null)
                 _headerCellModel.setFilterHref(JspUtil.getRequest(getJspContext()).getRequestURI());
+        }
+    }
+
+    private CellDecorator getCellDecorator() {
+        if(_cellDecorator != null)
+            return _cellDecorator;
+        else {
+            assert SORTED_HEADER_RENDERER != null;
+            return SORTED_HEADER_RENDERER;
         }
     }
 }

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageAnchorCell.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageAnchorCell.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageAnchorCell.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageAnchorCell.java Wed Feb  9 09:07:42 2005
@@ -36,7 +36,7 @@
  * @netui.tldx:tag whitespace="indent"
  */
 public class ImageAnchorCell
-    extends AbstractHtmlColumn
+    extends AbstractHtmlTableCell
     implements IFormattable, IUrlParams {
 
     /*

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageCell.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageCell.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageCell.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageCell.java Wed Feb  9 09:07:42 2005
@@ -32,7 +32,7 @@
  * @netui.tldx:tag renderer="workshop.netui.jspdesigner.tldx.ImageColumnRenderer" whitespace="indent"
  */
 public class ImageCell
-    extends AbstractHtmlColumn {
+    extends AbstractHtmlTableCell {
 
     private static final ImageCellDecorator DECORATOR = new ImageCellDecorator();
 

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java Wed Feb  9 09:07:42 2005
@@ -48,7 +48,9 @@
         throws IOException, JspException {
         JspContext jspContext = getJspContext();
         DataGridModel dataGridModel = DataGridUtil.getDataGridModel(jspContext);
-        assert dataGridModel != null;
+
+        if(dataGridModel == null)
+            throw new JspException("Unable to find a dataGridModel in the JspContext");
 
         if(dataGridModel.getRenderState() == DataGridModel.GRID_RENDER_STATE) {
             StylePolicy stylePolicy = dataGridModel.getStylePolicy();

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java Wed Feb  9 09:07:42 2005
@@ -32,7 +32,7 @@
  * @netui.tldx:tag whitespace="indent"
  */
 public class SpanCell
-    extends AbstractHtmlColumn {
+    extends AbstractHtmlTableCell {
 
     private static final SpanCellDecorator DECORATOR = new SpanCellDecorator();
 

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java Wed Feb  9 09:07:42 2005
@@ -30,7 +30,7 @@
  * @netui.tldx:tag whitespace="indent"
  */
 public class TemplateCell
-    extends AbstractHtmlColumn {
+    extends AbstractHtmlTableCell {
 
     public String getTagName() {
         return "TemplateCell";

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/FooDecorator.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/FooDecorator.java?view=auto&rev=153087
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/FooDecorator.java (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/FooDecorator.java Wed Feb  9 09:07:42 2005
@@ -0,0 +1,23 @@
+package databinding.datagrid.decorator;
+
+import javax.servlet.jsp.JspContext;
+
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecorator;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecoratorException;
+import org.apache.beehive.netui.databinding.datagrid.model.CellModel;
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+
+/**
+ *
+ */
+public class FooDecorator
+    extends CellDecorator {
+
+    public void decorate(JspContext jspContext, AbstractRenderAppender appender, CellModel cellModel)
+        throws CellDecoratorException {
+
+        appender.append("&lt;foo&gt;");
+        getNestedDecorator().decorate(jspContext, appender, cellModel);
+        appender.append("&lt;/foo&gt;");
+    }
+}

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/FooDecorator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/HelloWorldDecorator.java
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/HelloWorldDecorator.java?view=auto&rev=153087
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/HelloWorldDecorator.java (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/HelloWorldDecorator.java Wed Feb  9 09:07:42 2005
@@ -0,0 +1,23 @@
+package databinding.datagrid.decorator;
+
+import javax.servlet.jsp.JspContext;
+
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecorator;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecoratorException;
+import org.apache.beehive.netui.databinding.datagrid.model.CellModel;
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+
+/**
+ *
+ */
+public class HelloWorldDecorator
+    extends CellDecorator {
+
+    public void decorate(JspContext jspContext, AbstractRenderAppender appender, CellModel cellModel)
+        throws CellDecoratorException {
+
+        appender.append("hello...");
+        getNestedDecorator().decorate(jspContext, appender, cellModel);
+        appender.append("...goodbye");
+    }
+}

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/src/databinding/datagrid/decorator/HelloWorldDecorator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/customHeaderStyle.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/customHeaderStyle.jsp?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/customHeaderStyle.jsp (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/customHeaderStyle.jsp Wed Feb  9 09:07:42 2005
@@ -28,7 +28,7 @@
     <br/>
     <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio" cssClassPrefix="foo" >
     <netui-data:header>
-        <netui-data:headerCell headerText="Symbol" headerStyleClass="custom-header"/>
+        <netui-data:headerCell headerText="Symbol" cellStyleClass="custom-header"/>
         <netui-data:headerCell headerText="Price"/>
         <netui-data:headerCell headerText="Web"/>
     </netui-data:header>

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/helloHeaderDecorator.jsp
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/helloHeaderDecorator.jsp?view=auto&rev=153087
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/helloHeaderDecorator.jsp (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/helloHeaderDecorator.jsp Wed Feb  9 09:07:42 2005
@@ -0,0 +1,54 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0" prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0" prefix="netui-template"%>
+<%@ taglib prefix="datagrid" tagdir="/WEB-INF/tags/org/apache/beehive/netui/test/databinding/tagfiles" %>
+
+<netui:html>
+  <head>
+    <title>CSS Prefix Test</title>
+        <style type="text/css">
+        .foo-header {
+            background-color: #5f7797;
+        }
+        .foo-even {
+            background-color: #ffffff;
+        }
+        .foo-odd {
+            background-color: #bfc4cb;
+        }
+        .custom-header {
+            background-color: #770011;
+        }
+        </style>
+  </head>
+  <netui:body>
+    <p>
+    <datagrid:portfolioXmlBean/>
+    <br/>
+    <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio" cssClassPrefix="foo" >
+    <netui-data:header>
+        <netui-data:headerCell headerText="Symbol">
+            <netui:attribute facet="renderer" name="extends" value="databinding.datagrid.decorator.HelloWorldDecorator"/>
+        </netui-data:headerCell>
+        <netui-data:headerCell headerText="Price">
+            <netui:attribute facet="renderer" name="extends" value="databinding.datagrid.decorator.HelloWorldDecorator"/>
+            <netui:attribute facet="renderer" name="extends" value="databinding.datagrid.decorator.FooDecorator"/>
+        </netui-data:headerCell>
+        <netui-data:headerCell headerText="Web">
+            <netui:attribute facet="renderer" name="extends" value="databinding.datagrid.decorator.FooDecorator"/>
+            <netui:attribute facet="renderer" name="extends" value="databinding.datagrid.decorator.HelloWorldDecorator"/>
+        </netui-data:headerCell>
+    </netui-data:header>
+        <netui-data:rows>
+            <netui-data:spanCell value="${container.item.symbol}"/>
+            <netui-data:spanCell value="${container.item.price}"/>
+            <netui-data:anchorCell href="${container.item.web}" value="${container.item.name}">
+                <netui:parameter name="rowid" value="${container.index}"/>
+                <netui:parameter name="symbol" value="${container.item.symbol}"/>
+            </netui-data:anchorCell>
+        </netui-data:rows>
+    </netui-data:dataGrid>
+    </p>
+  </netui:body>
+</netui:html>

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/helloHeaderDecorator.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?view=diff&r1=153086&r2=153087
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml Wed Feb  9 09:07:42 2005
@@ -2690,6 +2690,21 @@
          </features>
       </test>
       <test>
+         <name>DataGridHeaderCellDecorator</name>
+         <description>DataGridHeaderCellDecorator</description>
+         <webapp>coreWeb</webapp>
+         <categories>
+            <category>bvt</category>
+            <category>bvt.struts11</category>
+            <category>databinding</category>
+            <category>datagrid</category>
+         </categories>
+         <features>
+            <feature>Databinding</feature>
+            <feature>Data Grid</feature>
+         </features>
+      </test>
+      <test>
          <name>DataGridHeaderTest</name>
          <description>DataGridHeaderTest</description>
          <webapp>coreWeb</webapp>

Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridHeaderCellDecorator.xml
URL: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridHeaderCellDecorator.xml?view=auto&rev=153087
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridHeaderCellDecorator.xml (added)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridHeaderCellDecorator.xml Wed Feb  9 09:07:42 2005
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+   <ses:sessionName>DataGridHeaderCellDecorator</ses:sessionName>
+   <ses:tester>ekoneil</ses:tester>
+   <ses:startDate>09 Feb 2005, 09:29:31.246 AM MST</ses:startDate>
+   <ses:description>Test of using header cell decorators to add content to a header cell.</ses:description>
+   <ses:tests>
+      <ses:test>
+         <ses:testNumber>1</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/databinding/datagrid/misc/helloHeaderDecorator.jsp</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>75EF4134B0A8E423BCA5F75CBF50DB21</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=75EF4134B0A8E423BCA5F75CBF50DB21</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+	"http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+  <head>
+    <title>CSS Prefix Test</title>
+        <style type="text/css">
+        .foo-header {
+            background-color: #5f7797;
+        }
+        .foo-even {
+            background-color: #ffffff;
+        }
+        .foo-odd {
+            background-color: #bfc4cb;
+        }
+        .custom-header {
+            background-color: #770011;
+        }
+        </style>
+  </head>
+  <body>
+    <p>
+    
+
+
+
+
+
+
+    <br/>
+    Page 1 of 1&nbsp;&nbsp;&nbsp;
+<table class="foo">
+
+    
+<thead class="foo">
+<tr class="foo-header">
+        <th class="foo">hello...Symbol...goodbye</th>
+
+
+        <th class="foo">&lt;foo&gt;hello...Price...goodbye&lt;/foo&gt;</th>
+
+
+        <th class="foo">hello...&lt;foo&gt;Web&lt;/foo&gt;...goodbye</th>
+
+
+    
+</tr></thead>
+
+        
+<tr class="foo-even">
+            <td class="foo"><span>BEAS</span></td>
+
+            <td class="foo"><span>14.35</span></td>
+
+            <td class="foo"><a href="http://www.bea.com?rowid=1&amp;symbol=BEAS"><span>BEA Systems</span></a></td>
+
+        
+</tr>
+<tr class="foo-odd">
+            <td class="foo"><span>CSCO</span></td>
+
+            <td class="foo"><span>19.42</span></td>
+
+            <td class="foo"><a href="http://www.cisco.com?rowid=2&amp;symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+        
+</tr>
+<tr class="foo-even">
+            <td class="foo"><span>GE</span></td>
+
+            <td class="foo"><span>59.42</span></td>
+
+            <td class="foo"><a href="http://www.ge.com?rowid=3&amp;symbol=GE"><span>General Electric</span></a></td>
+
+        
+</tr>
+<tr class="foo-odd">
+            <td class="foo"><span>RHAT</span></td>
+
+            <td class="foo"><span>18.2</span></td>
+
+            <td class="foo"><a href="http://www.redhat.com?rowid=4&amp;symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+        
+</tr>
+<tr class="foo-even">
+            <td class="foo"><span>YHOO</span></td>
+
+            <td class="foo"><span>48.16</span></td>
+
+            <td class="foo"><a href="http://www.yahoo.com?rowid=5&amp;symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+        
+</tr>
+    </table>
+
+
+    </p>
+  </body>
+
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+   </ses:tests>
+   <ses:endDate>09 Feb 2005, 09:29:38.847 AM MST</ses:endDate>
+   <ses:testCount>1</ses:testCount>
+</ses:recorderSession>
\ No newline at end of file

Propchange: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridHeaderCellDecorator.xml
------------------------------------------------------------------------------
    svn:eol-style = native