Author: ekoneil
Date: Tue Aug 17 08:50:20 2004
New Revision: 36531

Removed:
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/LegacyStylePolicy.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/AttributeHelper.java
Modified:
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
   
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/impl/AnchorColumnModel.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultStylePolicy.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/ImageColumnModel.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/IllegalFilterException.java
   
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/AnchorColumn.java
   incubator/beehive/trunk/netui/test/webapps/drt/build.xml
Log:
Data grid work.

- switch to using the HTML tag state objects to replace private fields in all 
of the column classes
- general todo cleanup
- delete the now unused AttributeHelper

BB: self
DRT: NetUI pass
     datagrid pass



Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
     Tue Aug 17 08:50:20 2004
@@ -19,25 +19,15 @@
 package org.apache.beehive.netui.databinding.datagrid.model;
 
 import java.util.ArrayList;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.JspContext;
-
-import org.apache.beehive.netui.tags.html.FormatTag;
 
-import org.apache.beehive.netui.databinding.datagrid.util.AttributeHelper;
 import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
-import org.apache.beehive.netui.databinding.datagrid.services.FilterService;
-import org.apache.beehive.netui.databinding.datagrid.services.SortService;
-import org.apache.beehive.netui.pageflow.scoping.ScopedRequest;
-import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
-import org.apache.beehive.netui.pageflow.util.PageflowTagUtils;
+import org.apache.beehive.netui.tags.html.FormatTag;
 import org.apache.beehive.netui.util.logging.Logger;
 
 /**
- *
+ * todo: re-enable sorting / filtering in column headers
  */
 public class ColumnModel
 {
@@ -50,14 +40,7 @@
     public static final int ATTR_GENERAL = 0;
     public static final int ATTR_GENERAL_EXPRESSION = 1;
     
-    // todo: externalize these -- they need to be overridable from a JSP
     private static final String EMPTY_CELL = " ";
-    private static final String UNSORTED_IMAGE = 
"/resources/datagrid/arrow_off.png";
-    private static final String SORTED_ASCENDING_IMAGE = 
"/resources/datagrid/arrow_down.png";
-    private static final String SORTED_DESCENDING_IMAGE = 
"/resources/datagrid/arrow_up.png";
-    private static final String FILTERED_IMAGE = 
"/resources/datagrid/filter.gif";
-    private static final String UNFILTERED_IMAGE = 
"/resources/datagrid/noFilter.gif";
-    private static final String FILTER_JSP = "/resources/datagrid/filter.jsp";
 
     private DataGridModel _dataGridModel;
     private ArrayList _formatters = null;
@@ -77,8 +60,26 @@
 
     private int _renderState = NO_RENDER_STATE;
 
-    // todo: need to assert that the correct state shows up here
-    public void setRenderState(int renderState) {_renderState = renderState;}
+    // -----------------------------------------------------
+    //
+    // Render Releated Column State
+    //
+    // -----------------------------------------------------
+    public String getValue() {return _value;}
+    public void setValue(String value) {_value = value;}
+
+    // -----------------------------------------------------
+    //
+    // Model Related Column State
+    //
+    // -----------------------------------------------------
+    public void setRenderState(int renderState)
+    {
+        if(renderState == NO_RENDER_STATE || renderState == 
HEADER_RENDER_STATE || renderState == DATA_RENDER_STATE)
+            _renderState = renderState;
+        else throw new IllegalArgumentException("ColumnModel received an 
Invalid rendering state: " + renderState);
+    }
+
     public int getRenderState() {return _renderState;}
 
     public boolean isRenderingHeader() {return _renderState == 
HEADER_RENDER_STATE;}
@@ -87,9 +88,6 @@
     public void setDataGridModel(DataGridModel tableModel) {_dataGridModel = 
tableModel;}
     public DataGridModel getDataGridModel() {return _dataGridModel;}
 
-    public String getValue() {return _value;}
-    public void setValue(String value) {_value = value;}
-
     public String getSortExpression() {return _sortExpression;}
     public void setSortExpression(String sortExpression) {_sortExpression = 
sortExpression;}
 
@@ -115,15 +113,15 @@
     {
         if(_formatters == null)
             _formatters = new ArrayList();
-        
+
         _formatters.add(formatter);
     }
 
-    public void onBeginRow()
+    public void startCell()
     {
     }
 
-    public void onEndRow()
+    public void endCell()
     {
     }
 
@@ -135,29 +133,7 @@
         else
         {
             Object value = _headerText;
-            JspContext jspContext = _dataGridModel.getJspContext();
             buffer.append(value);
-            
-            // todo: there is an NPE in PageflowTagUtils.createActionURL a la
-            //         at 
org.apache.beehive.netui.pageflow.util.PageflowTagUtils.createActionURL(PageflowTagUtils.java:139)
-
-            // disable sorting
-//             SortService sortService = _dataGridModel.getSortService();
-//             String sort = _sortUri;
-//             if(sort != null)
-//                 sort = PageflowTagUtils.createActionURL(pageContext, sort);
-
-//             if(isSortable().booleanValue())
-//                 renderSortLink(buffer, _dataGridModel, sortService, sort, 
_sortExpression, value);
-//             else buffer.append(value);
-
-            // disable filtering
-//             String filter = _filterUri;
-//             if(filter != null)
-//                 filter = PageflowTagUtils.createActionURL(pageContext, 
filter);
-
-//             if(isFilterable().booleanValue())
-//                 renderFilterLink(buffer, _dataGridModel, _filterExpression, 
_headerText, filter, value);
         }
     }
 
@@ -169,13 +145,7 @@
 
     public void openHeaderCell(StringBuffer buf)
     {
-        int[] styles = null;
-/*
-        if(_dataGridModel.getSortService().isPrimarySort(getSortExpression()))
-            styles = new int[] {StylePolicy.HEADER_CELL_CLASS, 
StylePolicy.HEADER_CELL_SORTED_CLASS};
-        else
-*/        
-        styles = new int[] {StylePolicy.HEADER_CELL_CLASS};
+        int[] styles = new int[] {StylePolicy.HEADER_CELL_CLASS};
 
         _dataGridModel.getTableRenderer().openHeaderCell(buf, styles);
     }
@@ -200,11 +170,6 @@
         buffer.append(EMPTY_CELL);
     }
 
-    protected void renderAttribute(StringBuffer buffer, Object value, String 
name)
-    {
-        AttributeHelper.renderAttribute(buffer, value, name);
-    }
-
     protected String createResourceUri(String resourceName)
     {
         return createResourceUri(_dataGridModel, resourceName);
@@ -230,7 +195,8 @@
             }
             catch (JspException e)
             {
-                // todo: need a way to register errors
+                // todo: need a way to register errors in the datagridmodel so 
that they can be reported back to the
+                // rendering engine
                 if(_logger.isErrorEnabled()) _logger.error("A formatter of 
type \"" + currentFormatter.getClass().getName() + "\" threw an exception " + 
e, e);
             }
         }
@@ -238,94 +204,16 @@
         return text.toString();
     }
 
-    // todo: this should be done with cell decorators
-    private static final void renderSortLink(StringBuffer buffer, 
DataGridModel dataGridModel,
-                                             SortService sortService, String 
sortUri,
-                                             String sortExpression, Object 
value)
-    {
-        assert sortService != null;
-        assert sortExpression != null;
-        assert sortUri != null;
-
-        // todo: externalize configuration
-        buffer.append("<a href=\"");
-        buffer.append(sortUri);
-        buffer.append("?");
-        buffer.append(sortService.getSortParamsString(sortExpression));
-        buffer.append("\"");
-        buffer.append(" class=\"sortable\">");
-        buffer.append(value);
-        buffer.append("</a>");
-        buffer.append("&nbsp;&nbsp;");
-        switch(sortService.getSortDirection(sortExpression))
-        {
-        case ISort.NONE:
-            buffer.append("<img src=\"" + createResourceUri(dataGridModel, 
UNSORTED_IMAGE) + "\"/>"); break;
-        case ISort.ASCENDING:
-            buffer.append("<img src=\"" + createResourceUri(dataGridModel, 
SORTED_ASCENDING_IMAGE) + "\"/>"); break;
-        case ISort.DESCENDING:
-            buffer.append("<img src=\"" + createResourceUri(dataGridModel, 
SORTED_DESCENDING_IMAGE) + "\"/>"); break;
-        default: throw new RuntimeException("Sort direction out of range");
-        }
-        buffer.append("&nbsp;&nbsp;");
-    }
-
-    // todo: this needs to be abstracted into a utilty that takes a JspContext 
and can create links
-    private static final void renderFilterLink(StringBuffer buffer, 
DataGridModel dataGridModel,
-                                               String filterExpression, String 
headerText,
-                                               String filterUri, Object value)
-    {
-        assert dataGridModel != null;
-        assert dataGridModel.getJspContext() != null;
-        assert dataGridModel.getJspContext() instanceof PageContext &&
-               ((PageContext)dataGridModel.getJspContext()).getRequest() 
instanceof HttpServletRequest;
-
-        String gridName = dataGridModel.getName();
-
-        HttpServletRequest request = 
JspUtil.getRequest(dataGridModel.getJspContext());
-        String filterJsp = createResourceUri(dataGridModel, FILTER_JSP);
-
-        // split the destination URL into its URI and query parameters.  These 
are passed separately to the filter service.
-        String currentURL = request.getQueryString();
-
-        // in Portal, the parameters for the URL need to be scoped to a 
particular portlet.  This
-        // is accomplished using the ScopedRequest infrastructure in the JPF 
framework.  The prefix
-        // here is put in front of any filter that is added to the URL by the 
filter window.
-        String prefix = "";
-
-        ScopedRequest sr = ScopedServletUtils.unwrapRequest(request);
-        if(sr != null)
-            prefix = sr.getScopeKey().toString();
-
-        // todo: format needs to be read from a configurable property
-        buffer.append("\n<a href=\"filter: ");
-        buffer.append(headerText);
-        buffer.append("\" onClick=\"return ShowFilterWindow('");
-        buffer.append(filterExpression);
-        buffer.append("', this, '");
-        buffer.append(currentURL != null ? currentURL : "?");
-        buffer.append("', '");
-        buffer.append(gridName);
-        buffer.append("', '");
-        // filterWindowURL
-        buffer.append(filterJsp);
-        buffer.append("', '");
-        // jdbcTypeString
-        buffer.append(0);
-        buffer.append("', '");
-        // dest
-        buffer.append(filterUri);
-        buffer.append("', '");
-        // prefix
-        buffer.append(prefix);
-        buffer.append("', '");
-        buffer.append("');\">");
-        buffer.append("\n\t<img border=\"0\" title=\"Filter\" height=\"17\" 
width=\"17\" src=\"");
-        buffer.append(createResourceUri(dataGridModel, UNFILTERED_IMAGE));
-        buffer.append("\"></img>");
-        buffer.append("</a>\n");
-
-        if(_logger.isDebugEnabled()) _logger.debug("filter anchor: " + 
buffer.toString());
+    /**
+     * Filter out the empty string value and return either the value or null.  
When the value of
+     * <code>attrValue</code> is equal to the empty string this will return 
null, otherwise it will
+     * return the value of <code>attrValue</code>.
+     * @param attrValue This is the value we will check for the empty string.
+     * @return either the value of attrValue or null
+     */
+    protected final String setNonEmptyValueAttribute(String attrValue)
+    {
+        return ("".equals(attrValue)) ? null : attrValue;
     }
 
     private static final String createResourceUri(DataGridModel dataGridModel, 
String resourceName)

Modified: 
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/DataGridModel.java
   (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
   Tue Aug 17 08:50:20 2004
@@ -57,7 +57,6 @@
     private PagedDataSet _dataSet = null;
     private TableRenderer _tableRenderer = null;
 
-    // todo: would be great to not have a PageContext dependency here.  This 
should just be a smart JavaBean.
     public DataGridModel(JspContext jspContext, String name)
     {
         super();

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/AnchorColumnModel.java
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/AnchorColumnModel.java
  (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/AnchorColumnModel.java
  Tue Aug 17 08:50:20 2004
@@ -21,18 +21,12 @@
 import java.net.MalformedURLException;
 import java.util.HashMap;
 import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.JspContext;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
 import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
 import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
 
-import org.apache.beehive.netui.pageflow.scoping.ScopedServletUtils;
-import org.apache.beehive.netui.pageflow.util.URLRewriter;
-import org.apache.beehive.netui.pageflow.util.URLRewriterService;
-import org.apache.beehive.netui.pageflow.util.PageflowTagUtils;
-
 import org.apache.beehive.netui.util.ParamHelper;
 import org.apache.beehive.netui.util.logging.Logger;
 import org.apache.beehive.netui.tags.rendering.AnchorTag;
@@ -40,7 +34,7 @@
 import org.apache.beehive.netui.tags.rendering.SpanTag;
 
 /**
- * todo: significant JavaScript support
+ *
  */
 public class AnchorColumnModel
     extends ColumnModel
@@ -52,29 +46,35 @@
     private String _scopeId = null;
     private String _action = null;
 
-    public void setAction(String action) {_action = action;}
-    public void setScopeId(String scopeId) {_scopeId = scopeId;}
-    public void setHref(String href) {_href = href;}
+    private AnchorTag.State _anchorState = null;
 
-    public AnchorColumnModel()
+    public void startCell()
     {
-        super();
+        super.startCell();
+        _anchorState = new AnchorTag.State();
     }
 
-    public void removeAllParameters()
+    public void endCell()
     {
+        super.endCell();
         if(_params != null)
             _params.clear();
     }
 
+    public void setAction(String action) {_action = action;}
+    public void setScopeId(String scopeId) {_scopeId = scopeId;}
+    public void setHref(String href) {_href = href;}
+
+    public void setOnClick(String onClick)
+    {
+        _anchorState.onClick = setNonEmptyValueAttribute(onClick);
+    }
+
     public void addParameter(String name, Object value)
     {
         if(_params == null)
             _params = new HashMap();
 
-        if(_logger.isDebugEnabled()) 
-            _logger.debug("add parameter named \"" + name + "\"");
-
         ParamHelper.addParam(_params,name,value);
     }
 
@@ -96,20 +96,18 @@
                 _logger.error("Exception creating URL with href " + _href + " 
action " + _action, mue);
         }
 
-        if(_logger.isDebugEnabled()) _logger.debug("calculated URL: " + url);
+        _anchorState.href = url;
+        SpanTag.State spanState = new SpanTag.State();
 
-        StringBuilder sb = new StringBuilder();
-        AnchorTag.State state = new AnchorTag.State();
         HttpServletRequest request = 
(HttpServletRequest)pageContext.getRequest();
+
         TagRenderingBase trb = 
TagRenderingBase.Factory.getRendering(TagRenderingBase.ANCHOR_TAG, request);
-        state.href = url;
-        SpanTag.State spanState = new SpanTag.State();
         TagRenderingBase span = 
TagRenderingBase.Factory.getRendering(TagRenderingBase.SPAN_TAG, request);
 
-        trb.doStartTag(sb, state);
+        StringBuilder sb = new StringBuilder();
+        trb.doStartTag(sb, _anchorState);
         span.doStartTag(sb, spanState);
-        Object value = getValue();
-        sb.append(value);
+        sb.append(getValue());
         span.doEndTag(sb);
         trb.doEndTag(sb);
 

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultStylePolicy.java
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultStylePolicy.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultStylePolicy.java
 Tue Aug 17 08:50:20 2004
@@ -19,7 +19,6 @@
 package org.apache.beehive.netui.databinding.datagrid.model.impl;
 
 import org.apache.beehive.netui.databinding.datagrid.model.StylePolicy;
-import org.apache.beehive.netui.util.logging.Logger;
 
 /**
  *
@@ -27,8 +26,6 @@
 public class DefaultStylePolicy
     extends StylePolicy
 {
-    private static final Logger _logger = 
Logger.getInstance(DefaultStylePolicy.class);
-
     public DefaultStylePolicy()
     {
         this(null);

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/ImageColumnModel.java
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/ImageColumnModel.java
   (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/ImageColumnModel.java
   Tue Aug 17 08:50:20 2004
@@ -22,7 +22,6 @@
 import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
 import org.apache.beehive.netui.util.logging.Logger;
 import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
-import org.apache.beehive.netui.tags.rendering.AnchorTag;
 import org.apache.beehive.netui.tags.rendering.ImageTag;
 import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
 import org.apache.beehive.netui.tags.html.HtmlConstants;
@@ -38,71 +37,80 @@
 {
     private static final Logger _logger = 
Logger.getInstance(ImageColumnModel.class);
 
-    private String _imageStyle;
-    private String _valueStyle;
+    private ImageTag.State _imageState = null;
 
-    private String _src;
-    private String _align;
-    private String _hspace;
-    private String _vspace;
-    private String _border;
-    private String _height;
-    private String _width;
-    private String _imageStyleClass;
-
-    public String getAlign() {return _align;}
-    public void setAlign(String align) {_align = align;}
-
-    public String getHspace() {return _hspace;}
-    public void setHspace(String hspace) {_hspace = hspace;}
-
-    public String getVspace() {return _vspace;}
-    public void setVspace(String vspace) {_vspace = vspace;}
-
-    public String getBorder() {return _border;}
-    public void setBorder(String border) {_border = border;}
-
-    public String getHeight() {return _height;}
-    public void setHeight(String height) {_height = height;}
-
-    public String getWidth() {return _width;}
-    public void setWidth(String width) {_width = width;}
+    public void startCell()
+    {
+        super.startCell();
+        _imageState = new ImageTag.State();
+    }
 
-    public String getSrc() {return _src;}
-    public void setSrc(String src) {_src = src;}
+    public void endCell()
+    {
+        super.endCell();
+        _imageState = null;
+    }
+
+    public String getSrc()
+    {return _imageState.src;}
+    public void setSrc(String src)
+    {_imageState.src = src;}
+
+    public String getAlign()
+    {return (String)_imageState.getAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.ALIGN);}
+
+    public void setAlign(String align)
+    {_imageState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.ALIGN, align);}
+
+    public String getHspace()
+    {return (String)_imageState.getAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.HSPACE);}
+    public void setHspace(String hspace)
+    {_imageState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.ALIGN, hspace);}
+
+    public String getVspace()
+    {return _imageState.getAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.VSPACE);}
+    public void setVspace(String vspace)
+    {_imageState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.VSPACE, vspace);}
+
+    public String getBorder()
+    {return _imageState.getAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.BORDER);}
+    public void setBorder(String border)
+    {_imageState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.BORDER, border);}
+
+    public String getHeight()
+    {return _imageState.getAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.HEIGHT);}
+    public void setHeight(String height)
+    {_imageState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.HEIGHT, height);}
+
+    public String getWidth()
+    {return _imageState.getAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.WIDTH);}
+    public void setWidth(String width)
+    {_imageState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.WIDTH, width);}
+
+    public String getStyle()
+    {return _imageState.getAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.STYLE);}
+    public void setStyle(String style)
+    {_imageState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.STYLE, style);}
 
-    public String getImageStyle() {return _imageStyle;}
-    public void setImageStyle(String imageStyle) {_imageStyle = imageStyle;}
+    public String getImageStyleClass()
+    {return _imageState.getAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.CLASS);}
 
-    public String getImageStyleClass() {return _imageStyleClass;}
-    public void setImageStyleClass(String imageStyleClass) {_imageStyleClass = 
imageStyleClass;}
+    public void setImageStyleClass(String styleClass)
+    {_imageState.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.CLASS, styleClass);}
 
     public void renderDataCell(StringBuffer buffer)
     {
-        // render the value data from the super
-        // todo: right now, this goes on the left-side of the rendered image; 
need to make this configurable
+        // todo: need an image anchor column type
         if(getValue() != null)
             super.renderDataCell(buffer);
 
         StringBuilder sb = new StringBuilder();
-        ImageTag.State state = new ImageTag.State();
-        state.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.WIDTH, _width);
-        state.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.HEIGHT, _height);
-        state.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.BORDER, _border);
-        state.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.VSPACE, _hspace);
-        state.registerAttribute(AbstractHtmlState.ATTR_GENERAL, 
HtmlConstants.HSPACE, _vspace);
-
-        if(_imageStyle != "")
-            state.style = _imageStyle;
-        if(_imageStyleClass != "")
-            state.styleClass = _imageStyleClass;
-        state.src = _src;
 
         PageContext pageContext = 
JspUtil.getPageContext(getDataGridModel().getJspContext());
         HttpServletRequest request = 
(HttpServletRequest)pageContext.getRequest();
 
         TagRenderingBase br = 
TagRenderingBase.Factory.getRendering(TagRenderingBase.IMAGE_TAG, request);
-        br.doStartTag(sb, state);
+        br.doStartTag(sb, _imageState);
         br.doEndTag(sb);
 
         buffer.append(sb.toString());

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/IllegalFilterException.java
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/IllegalFilterException.java
       (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/IllegalFilterException.java
       Tue Aug 17 08:50:20 2004
@@ -24,7 +24,6 @@
 public class IllegalFilterException
     extends RuntimeException
 {
-
     /** 
      *  
      */ 

Modified: 
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/AbstractColumn.java
   (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java
   Tue Aug 17 08:50:20 2004
@@ -132,6 +132,7 @@
             assert cm != null : "The ColumnModel received by the grid column 
was null";
 
             setColumnModel(cm);
+            cm.startCell();
 
             cm.setValue(_value);
             cm.setHeaderText(_headerText);
@@ -207,6 +208,7 @@
             if (buf != null && buf.length() > 0)
                 getDataGridTag().appendContent(buf.toString());
 
+            cm.endCell();
             cm.setRenderState(ColumnModel.NO_RENDER_STATE);
         }
 
@@ -220,6 +222,7 @@
     public void localRelease()
     {
         super.localRelease();
+
         _parent = null;
         _dataGrid = null;
 

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java
     Tue Aug 17 08:50:20 2004
@@ -91,7 +91,6 @@
     public void localRelease()
     {
         super.localRelease();
-        _column.removeAllParameters();
         _column = null;
         _href = null;
         _scope = null;

Modified: incubator/beehive/trunk/netui/test/webapps/drt/build.xml
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/drt/build.xml    (original)
+++ incubator/beehive/trunk/netui/test/webapps/drt/build.xml    Tue Aug 17 
08:50:20 2004
@@ -140,6 +140,7 @@
             <property name="testRecorder.config.name" 
value="${testRecorder.config.name}"/>
             <property name="suite.name" value="${suite.name}"/>
             <property name="waitfor.url" value="${webapp.waitfor.url}"/>
+            <property name="playback.webapps" value="coreWeb"/>
         </ant>
     </target>
 

Reply via email to