You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mb...@apache.org on 2005/08/01 13:26:59 UTC

svn commit: r226773 - in /myfaces/tomahawk/trunk: conf/ src/java/org/apache/myfaces/custom/column/ src/java/org/apache/myfaces/renderkit/html/ext/ tld/

Author: mbr
Date: Mon Aug  1 04:26:52 2005
New Revision: 226773

URL: http://svn.apache.org/viewcvs?rev=226773&view=rev
Log:
MYFACES-379

new x:column component allows to define common html attributes 
and events for each header, footer and cell

Added:
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumn.java
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumnTag.java
Modified:
    myfaces/tomahawk/trunk/conf/faces-config.xml
    myfaces/tomahawk/trunk/src/java/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java
    myfaces/tomahawk/trunk/tld/myfaces_ext.tld

Modified: myfaces/tomahawk/trunk/conf/faces-config.xml
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/conf/faces-config.xml?rev=226773&r1=226772&r2=226773&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/conf/faces-config.xml (original)
+++ myfaces/tomahawk/trunk/conf/faces-config.xml Mon Aug  1 04:26:52 2005
@@ -334,6 +334,11 @@
 		<component-class>org.apache.myfaces.custom.crosstable.UIColumns</component-class>
 	</component>
 
+  <component>
+    <component-type>org.apache.myfaces.HtmlColumn</component-type>
+    <component-class>org.apache.myfaces.custom.column.HtmlColumn</component-class>
+  </component>
+
     <!-- additional "by type" converters -->
 
     <converter>

Added: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumn.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumn.java?rev=226773&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumn.java (added)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumn.java Mon Aug  1 04:26:52 2005
@@ -0,0 +1,690 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.myfaces.custom.column;
+
+import javax.faces.component.UIColumn;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+
+import org.apache.myfaces.renderkit.html.HTML;
+
+/**
+ * @author Mathias Broekelmann (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+public class HtmlColumn extends UIColumn
+{
+    //HTML universal attributes for header
+    private String _headerdir;
+    private String _headerlang;
+    private String _headerstyle;
+    private String _headerstyleClass;
+    private String _headertitle;
+
+    //HTML event handler attributes for header
+    private String _headeronclick;
+    private String _headerondblclick;
+    private String _headeronkeydown;
+    private String _headeronkeypress;
+    private String _headeronkeyup;
+    private String _headeronmousedown;
+    private String _headeronmousemove;
+    private String _headeronmouseout;
+    private String _headeronmouseover;
+    private String _headeronmouseup;
+
+    //HTML universal attributes for footer
+    private String _footerdir;
+    private String _footerlang;
+    private String _footerstyle;
+    private String _footerstyleClass;
+    private String _footertitle;
+
+    //HTML event handler attributes for footer
+    private String _footeronclick;
+    private String _footerondblclick;
+    private String _footeronkeydown;
+    private String _footeronkeypress;
+    private String _footeronkeyup;
+    private String _footeronmousedown;
+    private String _footeronmousemove;
+    private String _footeronmouseout;
+    private String _footeronmouseover;
+    private String _footeronmouseup;
+
+    //HTML universal attributes for row
+    private String _dir;
+    private String _lang;
+    private String _style;
+    private String _styleClass;
+    private String _title;
+
+    //HTML event handler attributes for 
+    private String _onclick;
+    private String _ondblclick;
+    private String _onkeydown;
+    private String _onkeypress;
+    private String _onkeyup;
+    private String _onmousedown;
+    private String _onmousemove;
+    private String _onmouseout;
+    private String _onmouseover;
+    private String _onmouseup;
+    
+    public static final String COMPONENT_TYPE = "org.apache.myfaces.HtmlColumn";
+
+    /**
+     * @param localValue
+     * @param valueBindingName
+     * @return
+     */
+    private Object getLocalOrValueBindingValue(Object localValue,
+                    String valueBindingName)
+    {
+        if (localValue != null)
+            return localValue;
+        ValueBinding vb = getValueBinding(valueBindingName);
+        return vb != null ? vb.getValue(getFacesContext()) : null;
+    }
+
+    public String getFooterdir()
+    {
+        return (String) getLocalOrValueBindingValue(_footerdir, "footerdir");
+    }
+
+    public void setFooterdir(String footerdir)
+    {
+        _footerdir = footerdir;
+    }
+
+    public String getFooterlang()
+    {
+        return (String) getLocalOrValueBindingValue(_footerlang, "footerlang");
+    }
+
+    public void setFooterlang(String footerlang)
+    {
+        _footerlang = footerlang;
+    }
+
+    public String getFooteronclick()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronclick,
+                        "footeronclick");
+    }
+
+    public void setFooteronclick(String footeronclick)
+    {
+        _footeronclick = footeronclick;
+    }
+
+    public String getFooterondblclick()
+    {
+        return (String) getLocalOrValueBindingValue(_footerondblclick,
+                        "footerondblclick");
+    }
+
+    public void setFooterondblclick(String footerondblclick)
+    {
+        _footerondblclick = footerondblclick;
+    }
+
+    public String getFooteronkeydown()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronkeydown,
+                        "footeronkeydown");
+    }
+
+    public void setFooteronkeydown(String footeronkeydown)
+    {
+        _footeronkeydown = footeronkeydown;
+    }
+
+    public String getFooteronkeypress()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronkeypress,
+                        "footeronkeypress");
+    }
+
+    public void setFooteronkeypress(String footeronkeypress)
+    {
+        _footeronkeypress = footeronkeypress;
+    }
+
+    public String getFooteronkeyup()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronkeyup,
+                        "footeronkeyup");
+    }
+
+    public void setFooteronkeyup(String footeronkeyup)
+    {
+        _footeronkeyup = footeronkeyup;
+    }
+
+    public String getFooteronmousedown()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronmousedown,
+                        "footeronmousedown");
+    }
+
+    public void setFooteronmousedown(String footeronmousedown)
+    {
+        _footeronmousedown = footeronmousedown;
+    }
+
+    public String getFooteronmousemove()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronmousemove,
+                        "footeronmousemove");
+    }
+
+    public void setFooteronmousemove(String footeronmousemove)
+    {
+        _footeronmousemove = footeronmousemove;
+    }
+
+    public String getFooteronmouseout()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronmouseout,
+                        "footeronmouseout");
+    }
+
+    public void setFooteronmouseout(String footeronmouseout)
+    {
+        _footeronmouseout = footeronmouseout;
+    }
+
+    public String getFooteronmouseover()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronmouseover,
+                        "footeronmouseover");
+    }
+
+    public void setFooteronmouseover(String footeronmouseover)
+    {
+        _footeronmouseover = footeronmouseover;
+    }
+
+    public String getFooteronmouseup()
+    {
+        return (String) getLocalOrValueBindingValue(_footeronmouseup,
+                        "footeronmouseup");
+    }
+
+    public void setFooteronmouseup(String footeronmouseup)
+    {
+        _footeronmouseup = footeronmouseup;
+    }
+
+    public String getFooterstyle()
+    {
+        return (String) getLocalOrValueBindingValue(_footerstyle, "footerstyle");
+    }
+
+    public void setFooterstyle(String footerstyle)
+    {
+        _footerstyle = footerstyle;
+    }
+
+    public String getFooterstyleClass()
+    {
+        return (String) getLocalOrValueBindingValue(_footerstyleClass,
+                        "footerstyleClass");
+    }
+
+    public void setFooterstyleClass(String footerstyleClass)
+    {
+        _footerstyleClass = footerstyleClass;
+    }
+
+    public String getFootertitle()
+    {
+        return (String) getLocalOrValueBindingValue(_footertitle, "footertitle");
+    }
+
+    public void setFootertitle(String footertitle)
+    {
+        _footertitle = footertitle;
+    }
+
+    public String getHeaderdir()
+    {
+        return (String) getLocalOrValueBindingValue(_headerdir, "headerdir");
+    }
+
+    public void setHeaderdir(String headerdir)
+    {
+        _headerdir = headerdir;
+    }
+
+    public String getHeaderlang()
+    {
+        return (String) getLocalOrValueBindingValue(_headerlang, "headerlang");
+    }
+
+    public void setHeaderlang(String headerlang)
+    {
+        _headerlang = headerlang;
+    }
+
+    public String getHeaderonclick()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronclick,
+                        "headeronclick");
+    }
+
+    public void setHeaderonclick(String headeronclick)
+    {
+        _headeronclick = headeronclick;
+    }
+
+    public String getHeaderondblclick()
+    {
+        return (String) getLocalOrValueBindingValue(_headerondblclick,
+                        "headerondblclick");
+    }
+
+    public void setHeaderondblclick(String headerondblclick)
+    {
+        _headerondblclick = headerondblclick;
+    }
+
+    public String getHeaderonkeydown()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronkeydown,
+                        "headeronkeydown");
+    }
+
+    public void setHeaderonkeydown(String headeronkeydown)
+    {
+        _headeronkeydown = headeronkeydown;
+    }
+
+    public String getHeaderonkeypress()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronkeypress,
+                        "headeronkeypress");
+    }
+
+    public void setHeaderonkeypress(String headeronkeypress)
+    {
+        _headeronkeypress = headeronkeypress;
+    }
+
+    public String getHeaderonkeyup()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronkeyup,
+                        "headeronkeyup");
+    }
+
+    public void setHeaderonkeyup(String headeronkeyup)
+    {
+        _headeronkeyup = headeronkeyup;
+    }
+
+    public String getHeaderonmousedown()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronmousedown,
+                        "headeronmousedown");
+    }
+
+    public void setHeaderonmousedown(String headeronmousedown)
+    {
+        _headeronmousedown = headeronmousedown;
+    }
+
+    public String getHeaderonmousemove()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronmousemove,
+                        "headeronmousemove");
+    }
+
+    public void setHeaderonmousemove(String headeronmousemove)
+    {
+        _headeronmousemove = headeronmousemove;
+    }
+
+    public String getHeaderonmouseout()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronmouseout,
+                        "headeronmouseout");
+    }
+
+    public void setHeaderonmouseout(String headeronmouseout)
+    {
+        _headeronmouseout = headeronmouseout;
+    }
+
+    public String getHeaderonmouseover()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronmouseover,
+                        "headeronmouseover");
+    }
+
+    public void setHeaderonmouseover(String headeronmouseover)
+    {
+        _headeronmouseover = headeronmouseover;
+    }
+
+    public String getHeaderonmouseup()
+    {
+        return (String) getLocalOrValueBindingValue(_headeronmouseup,
+                        "headeronmouseup");
+    }
+
+    public void setHeaderonmouseup(String headeronmouseup)
+    {
+        _headeronmouseup = headeronmouseup;
+    }
+
+    public String getHeaderstyle()
+    {
+        return (String) getLocalOrValueBindingValue(_headerstyle, "headerstyle");
+    }
+
+    public void setHeaderstyle(String headerstyle)
+    {
+        _headerstyle = headerstyle;
+    }
+
+    public String getHeaderstyleClass()
+    {
+        return (String) getLocalOrValueBindingValue(_headerstyleClass,
+                        "headerstyleClass");
+    }
+
+    public void setHeaderstyleClass(String headerstyleClass)
+    {
+        _headerstyleClass = headerstyleClass;
+    }
+
+    public String getHeadertitle()
+    {
+        return (String) getLocalOrValueBindingValue(_headertitle, "headertitle");
+    }
+
+    public void setHeadertitle(String headertitle)
+    {
+        _headertitle = headertitle;
+    }
+
+    public String getDir()
+    {
+        return (String) getLocalOrValueBindingValue(_dir, "dir");
+    }
+
+    public void setDir(String dir)
+    {
+        _dir = dir;
+    }
+
+    public String getLang()
+    {
+        return (String) getLocalOrValueBindingValue(_lang, "lang");
+    }
+
+    public void setLang(String lang)
+    {
+        _lang = lang;
+    }
+
+    public String getOnclick()
+    {
+        return (String) getLocalOrValueBindingValue(_onclick, "onclick");
+    }
+
+    public void setOnclick(String onclick)
+    {
+        _onclick = onclick;
+    }
+
+    public String getOndblclick()
+    {
+        return (String) getLocalOrValueBindingValue(_ondblclick, "ondblclick");
+    }
+
+    public void setOndblclick(String ondblclick)
+    {
+        _ondblclick = ondblclick;
+    }
+
+    public String getOnkeydown()
+    {
+        return (String) getLocalOrValueBindingValue(_onkeydown, "onkeydown");
+    }
+
+    public void setOnkeydown(String onkeydown)
+    {
+        _onkeydown = onkeydown;
+    }
+
+    public String getOnkeypress()
+    {
+        return (String) getLocalOrValueBindingValue(_onkeypress, "onkeypress");
+    }
+
+    public void setOnkeypress(String onkeypress)
+    {
+        _onkeypress = onkeypress;
+    }
+
+    public String getOnkeyup()
+    {
+        return (String) getLocalOrValueBindingValue(_onkeyup, "onkeyup");
+    }
+
+    public void setOnkeyup(String onkeyup)
+    {
+        _onkeyup = onkeyup;
+    }
+
+    public String getOnmousedown()
+    {
+        return (String) getLocalOrValueBindingValue(_onmousedown, "onmousedown");
+    }
+
+    public void setOnmousedown(String onmousedown)
+    {
+        _onmousedown = onmousedown;
+    }
+
+    public String getOnmousemove()
+    {
+        return (String) getLocalOrValueBindingValue(_onmousemove, "onmousemove");
+    }
+
+    public void setOnmousemove(String onmousemove)
+    {
+        _onmousemove = onmousemove;
+    }
+
+    public String getOnmouseout()
+    {
+        return (String) getLocalOrValueBindingValue(_onmouseout, "onmouseout");
+    }
+
+    public void setOnmouseout(String onmouseout)
+    {
+        _onmouseout = onmouseout;
+    }
+
+    public String getOnmouseover()
+    {
+        return (String) getLocalOrValueBindingValue(_onmouseover, "onmouseover");
+    }
+
+    public void setOnmouseover(String onmouseover)
+    {
+        _onmouseover = onmouseover;
+    }
+
+    public String getOnmouseup()
+    {
+        return (String) getLocalOrValueBindingValue(_onmouseup, "onmouseup");
+    }
+
+    public void setOnmouseup(String onmouseup)
+    {
+        _onmouseup = onmouseup;
+    }
+
+    public String getStyle()
+    {
+        return (String) getLocalOrValueBindingValue(_style, "style");
+    }
+
+    public void setStyle(String style)
+    {
+        _style = style;
+    }
+
+    public String getStyleClass()
+    {
+        return (String) getLocalOrValueBindingValue(_styleClass, "styleClass");
+    }
+
+    public void setStyleClass(String styleClass)
+    {
+        _styleClass = styleClass;
+    }
+
+    public String getTitle()
+    {
+        return (String) getLocalOrValueBindingValue(_title, "title");
+    }
+
+    public void setTitle(String title)
+    {
+        _title = title;
+    }
+
+    /**
+     * @see javax.faces.component.UIComponentBase#saveState(javax.faces.context.FacesContext)
+     */
+    public Object saveState(FacesContext context)
+    {
+        Object[] values = new Object[46];
+        values[0] = super.saveState(context);
+
+        values[1] = _headerdir;
+        values[2] = _headerlang;
+        values[3] = _headerstyle;
+        values[4] = _headerstyleClass;
+        values[5] = _headertitle;
+        values[6] = _headeronclick;
+        values[7] = _headerondblclick;
+        values[8] = _headeronkeydown;
+        values[9] = _headeronkeypress;
+        values[10] = _headeronkeyup;
+        values[11] = _headeronmousedown;
+        values[12] = _headeronmousemove;
+        values[13] = _headeronmouseout;
+        values[14] = _headeronmouseover;
+        values[15] = _headeronmouseup;
+
+        values[16] = _footerdir;
+        values[17] = _footerlang;
+        values[18] = _footerstyle;
+        values[19] = _footerstyleClass;
+        values[20] = _footertitle;
+        values[21] = _footeronclick;
+        values[22] = _footerondblclick;
+        values[23] = _footeronkeydown;
+        values[24] = _footeronkeypress;
+        values[25] = _footeronkeyup;
+        values[26] = _footeronmousedown;
+        values[27] = _footeronmousemove;
+        values[28] = _footeronmouseout;
+        values[29] = _footeronmouseover;
+        values[30] = _footeronmouseup;
+
+        values[31] = _dir;
+        values[32] = _lang;
+        values[33] = _style;
+        values[34] = _styleClass;
+        values[35] = _title;
+        values[36] = _onclick;
+        values[37] = _ondblclick;
+        values[38] = _onkeydown;
+        values[39] = _onkeypress;
+        values[40] = _onkeyup;
+        values[41] = _onmousedown;
+        values[42] = _onmousemove;
+        values[43] = _onmouseout;
+        values[44] = _onmouseover;
+        values[45] = _onmouseup;
+
+        return values;
+    }
+
+    /**
+     * @see javax.faces.component.UIComponentBase#restoreState(javax.faces.context.FacesContext, java.lang.Object)
+     */
+    public void restoreState(FacesContext context, Object state)
+    {
+        Object[] values = (Object[]) state;
+        super.restoreState(context, values[0]);
+
+        _headerdir = (String) values[1];
+        _headerlang = (String) values[2];
+        _headerstyle = (String) values[3];
+        _headerstyleClass = (String) values[4];
+        _headertitle = (String) values[5];
+        _headeronclick = (String) values[6];
+        _headerondblclick = (String) values[7];
+        _headeronkeydown = (String) values[8];
+        _headeronkeypress = (String) values[9];
+        _headeronkeyup = (String) values[10];
+        _headeronmousedown = (String) values[11];
+        _headeronmousemove = (String) values[12];
+        _headeronmouseout = (String) values[13];
+        _headeronmouseover = (String) values[14];
+        _headeronmouseup = (String) values[15];
+
+        _footerdir = (String) values[16];
+        _footerlang = (String) values[17];
+        _footerstyle = (String) values[18];
+        _footerstyleClass = (String) values[19];
+        _footertitle = (String) values[20];
+        _footeronclick = (String) values[21];
+        _footerondblclick = (String) values[22];
+        _footeronkeydown = (String) values[23];
+        _footeronkeypress = (String) values[24];
+        _footeronkeyup = (String) values[25];
+        _footeronmousedown = (String) values[26];
+        _footeronmousemove = (String) values[27];
+        _footeronmouseout = (String) values[28];
+        _footeronmouseover = (String) values[29];
+        _footeronmouseup = (String) values[30];
+
+        _dir = (String) values[31];
+        _lang = (String) values[32];
+        _style = (String) values[33];
+        _styleClass = (String) values[34];
+        _title = (String) values[35];
+        _onclick = (String) values[36];
+        _ondblclick = (String) values[37];
+        _onkeydown = (String) values[38];
+        _onkeypress = (String) values[39];
+        _onkeyup = (String) values[40];
+        _onmousedown = (String) values[41];
+        _onmousemove = (String) values[42];
+        _onmouseout = (String) values[43];
+        _onmouseover = (String) values[44];
+        _onmouseup = (String) values[45];
+    }
+}

Added: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumnTag.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumnTag.java?rev=226773&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumnTag.java (added)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/column/HtmlColumnTag.java Mon Aug  1 04:26:52 2005
@@ -0,0 +1,290 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.myfaces.custom.column;
+
+import javax.faces.component.UIComponent;
+
+/**
+ * @author Mathias Broekelmann (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+public class HtmlColumnTag extends org.apache.myfaces.taglib.html.HtmlColumnTag
+{
+    //HTML universal attributes for header
+    private String _headerdir;
+    private String _headerlang;
+    private String _headerstyle;
+    private String _headerstyleClass;
+    private String _headertitle;
+
+    //HTML event handler attributes for header
+    private String _headeronclick;
+    private String _headerondblclick;
+    private String _headeronkeydown;
+    private String _headeronkeypress;
+    private String _headeronkeyup;
+    private String _headeronmousedown;
+    private String _headeronmousemove;
+    private String _headeronmouseout;
+    private String _headeronmouseover;
+    private String _headeronmouseup;
+
+    //HTML universal attributes for footer
+    private String _footerdir;
+    private String _footerlang;
+    private String _footerstyle;
+    private String _footerstyleClass;
+    private String _footertitle;
+
+    //HTML event handler attributes for footer
+    private String _footeronclick;
+    private String _footerondblclick;
+    private String _footeronkeydown;
+    private String _footeronkeypress;
+    private String _footeronkeyup;
+    private String _footeronmousedown;
+    private String _footeronmousemove;
+    private String _footeronmouseout;
+    private String _footeronmouseover;
+    private String _footeronmouseup;
+
+    public String getComponentType()
+    {
+        return HtmlColumn.COMPONENT_TYPE;
+    }
+
+    public void release()
+    {
+        super.release();
+        _headerdir = null;
+        _headerlang = null;
+        _headerstyle = null;
+        _headerstyleClass = null;
+        _headertitle = null;
+        _headeronclick = null;
+        _headerondblclick = null;
+        _headeronkeydown = null;
+        _headeronkeypress = null;
+        _headeronkeyup = null;
+        _headeronmousedown = null;
+        _headeronmousemove = null;
+        _headeronmouseout = null;
+        _headeronmouseover = null;
+        _headeronmouseup = null;
+
+        _footerdir = null;
+        _footerlang = null;
+        _footerstyle = null;
+        _footerstyleClass = null;
+        _footertitle = null;
+        _footeronclick = null;
+        _footerondblclick = null;
+        _footeronkeydown = null;
+        _footeronkeypress = null;
+        _footeronkeyup = null;
+        _footeronmousedown = null;
+        _footeronmousemove = null;
+        _footeronmouseout = null;
+        _footeronmouseover = null;
+        _footeronmouseup = null;
+    }
+
+    protected void setProperties(UIComponent component)
+    {
+        super.setProperties(component);
+        setStringProperty(component, "headerdir", _headerdir);
+        setStringProperty(component, "headerlang", _headerlang);
+        setStringProperty(component, "headerstyle", _headerstyle);
+        setStringProperty(component, "headertitle", _headertitle);
+        setStringProperty(component, "headerstyleClass", _headerstyleClass);
+        setStringProperty(component, "headeronclick", _headeronclick);
+        setStringProperty(component, "headerondblclick", _headerondblclick);
+        setStringProperty(component, "headeronmousedown", _headeronmousedown);
+        setStringProperty(component, "headeronmouseup", _headeronmouseup);
+        setStringProperty(component, "headeronmouseover", _headeronmouseover);
+        setStringProperty(component, "headeronmousemove", _headeronmousemove);
+        setStringProperty(component, "headeronmouseout", _headeronmouseout);
+        setStringProperty(component, "headeronkeypress", _headeronkeypress);
+        setStringProperty(component, "headeronkeydown", _headeronkeydown);
+        setStringProperty(component, "headeronkeyup", _headeronkeyup);
+
+        setStringProperty(component, "footerdir", _footerdir);
+        setStringProperty(component, "footerlang", _footerlang);
+        setStringProperty(component, "footerstyle", _footerstyle);
+        setStringProperty(component, "footertitle", _footertitle);
+        setStringProperty(component, "footerstyleClass", _footerstyleClass);
+        setStringProperty(component, "footeronclick", _footeronclick);
+        setStringProperty(component, "footerondblclick", _footerondblclick);
+        setStringProperty(component, "footeronmousedown", _footeronmousedown);
+        setStringProperty(component, "footeronmouseup", _footeronmouseup);
+        setStringProperty(component, "footeronmouseover", _footeronmouseover);
+        setStringProperty(component, "footeronmousemove", _footeronmousemove);
+        setStringProperty(component, "footeronmouseout", _footeronmouseout);
+        setStringProperty(component, "footeronkeypress", _footeronkeypress);
+        setStringProperty(component, "footeronkeydown", _footeronkeydown);
+        setStringProperty(component, "footeronkeyup", _footeronkeyup);
+    }
+
+    public void setFooterdir(String footerdir)
+    {
+        _footerdir = footerdir;
+    }
+
+    public void setFooterlang(String footerlang)
+    {
+        _footerlang = footerlang;
+    }
+
+    public void setFooteronclick(String footeronclick)
+    {
+        _footeronclick = footeronclick;
+    }
+
+    public void setFooterondblclick(String footerondblclick)
+    {
+        _footerondblclick = footerondblclick;
+    }
+
+    public void setFooteronkeydown(String footeronkeydown)
+    {
+        _footeronkeydown = footeronkeydown;
+    }
+
+    public void setFooteronkeypress(String footeronkeypress)
+    {
+        _footeronkeypress = footeronkeypress;
+    }
+
+    public void setFooteronkeyup(String footeronkeyup)
+    {
+        _footeronkeyup = footeronkeyup;
+    }
+
+    public void setFooteronmousedown(String footeronmousedown)
+    {
+        _footeronmousedown = footeronmousedown;
+    }
+
+    public void setFooteronmousemove(String footeronmousemove)
+    {
+        _footeronmousemove = footeronmousemove;
+    }
+
+    public void setFooteronmouseout(String footeronmouseout)
+    {
+        _footeronmouseout = footeronmouseout;
+    }
+
+    public void setFooteronmouseover(String footeronmouseover)
+    {
+        _footeronmouseover = footeronmouseover;
+    }
+
+    public void setFooteronmouseup(String footeronmouseup)
+    {
+        _footeronmouseup = footeronmouseup;
+    }
+
+    public void setFooterstyle(String footerstyle)
+    {
+        _footerstyle = footerstyle;
+    }
+
+    public void setFooterstyleclass(String footerstyleclass)
+    {
+        _footerstyleClass = footerstyleclass;
+    }
+
+    public void setFootertitle(String footertitle)
+    {
+        _footertitle = footertitle;
+    }
+
+    public void setHeaderdir(String headerdir)
+    {
+        _headerdir = headerdir;
+    }
+
+    public void setHeaderlang(String headerlang)
+    {
+        _headerlang = headerlang;
+    }
+
+    public void setHeaderonclick(String headeronclick)
+    {
+        _headeronclick = headeronclick;
+    }
+
+    public void setHeaderondblclick(String headerondblclick)
+    {
+        _headerondblclick = headerondblclick;
+    }
+
+    public void setHeaderonkeydown(String headeronkeydown)
+    {
+        _headeronkeydown = headeronkeydown;
+    }
+
+    public void setHeaderonkeypress(String headeronkeypress)
+    {
+        _headeronkeypress = headeronkeypress;
+    }
+
+    public void setHeaderonkeyup(String headeronkeyup)
+    {
+        _headeronkeyup = headeronkeyup;
+    }
+
+    public void setHeaderonmousedown(String headeronmousedown)
+    {
+        _headeronmousedown = headeronmousedown;
+    }
+
+    public void setHeaderonmousemove(String headeronmousemove)
+    {
+        _headeronmousemove = headeronmousemove;
+    }
+
+    public void setHeaderonmouseout(String headeronmouseout)
+    {
+        _headeronmouseout = headeronmouseout;
+    }
+
+    public void setHeaderonmouseover(String headeronmouseover)
+    {
+        _headeronmouseover = headeronmouseover;
+    }
+
+    public void setHeaderonmouseup(String headeronmouseup)
+    {
+        _headeronmouseup = headeronmouseup;
+    }
+
+    public void setHeaderstyle(String headerstyle)
+    {
+        _headerstyle = headerstyle;
+    }
+
+    public void setHeaderstyleclass(String headerstyleclass)
+    {
+        _headerstyleClass = headerstyleclass;
+    }
+
+    public void setHeadertitle(String headertitle)
+    {
+        _headertitle = headertitle;
+    }
+}

Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java?rev=226773&r1=226772&r2=226773&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java Mon Aug  1 04:26:52 2005
@@ -5,26 +5,28 @@
  * @version $Revision$ $Date$
  */
 
-import org.apache.myfaces.renderkit.html.HtmlTableRendererBase;
-import javax.faces.context.ResponseWriter;
 import java.io.IOException;
-import javax.faces.context.FacesContext;
+
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIData;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+
 import org.apache.myfaces.component.html.ext.HtmlDataTable;
+import org.apache.myfaces.custom.column.HtmlColumn;
 import org.apache.myfaces.custom.crosstable.UIColumns;
+import org.apache.myfaces.renderkit.RendererUtils;
 import org.apache.myfaces.renderkit.html.HTML;
+import org.apache.myfaces.renderkit.html.HtmlRendererUtils;
+import org.apache.myfaces.renderkit.html.HtmlTableRendererBase;
 
-public class HtmlTableRenderer
-        extends HtmlTableRendererBase
+public class HtmlTableRenderer extends HtmlTableRendererBase
 {
     //private static final Log log = LogFactory.getLog(HtmlTableRenderer.class);
 
-    protected void renderRowStart(
-            FacesContext facesContext,
-            ResponseWriter writer,
-            UIData uiData,
-            String rowStyleClass) throws IOException
+    protected void renderRowStart(FacesContext facesContext,
+                    ResponseWriter writer, UIData uiData, String rowStyleClass)
+                    throws IOException
     {
         super.renderRowStart(facesContext, writer, uiData, rowStyleClass);
 
@@ -43,44 +45,82 @@
         renderRowAttribute(writer, HTML.ONMOUSEUP_ATTR, table.getRowOnMouseUp());
     }
 
-    protected void renderRowAttribute(ResponseWriter writer, String htmlAttribute, Object value) throws IOException
+    protected void renderRowAttribute(ResponseWriter writer,
+                    String htmlAttribute, Object value) throws IOException
     {
-      if(value != null)
-      {
-        writer.writeAttribute(htmlAttribute, value, null);
-      }
+        if (value != null)
+        {
+            writer.writeAttribute(htmlAttribute, value, null);
+        }
     }
 
     /**
      * handles uicolumns component
      * @see org.apache.myfaces.renderkit.html.HtmlTableRendererBase#encodeColumnChild(javax.faces.context.FacesContext, javax.faces.context.ResponseWriter, javax.faces.component.UIData, javax.faces.component.UIComponent, java.lang.String)
      */
-    protected void encodeColumnChild(FacesContext facesContext, ResponseWriter writer,
-                    UIData uiData, UIComponent component, String columnStyle) throws IOException
+    protected void encodeColumnChild(FacesContext facesContext,
+                    ResponseWriter writer, UIData uiData,
+                    UIComponent component, String columnStyle)
+                    throws IOException
     {
-        super.encodeColumnChild(facesContext, writer, uiData, component, columnStyle);
+        super.encodeColumnChild(facesContext, writer, uiData, component,
+                        columnStyle);
         if (component instanceof UIColumns)
         {
             UIColumns columns = (UIColumns) component;
             for (int k = 0, colSize = columns.getRowCount(); k < colSize; k++)
             {
                 columns.setRowIndex(k);
-                renderColumnBody(facesContext, writer, uiData, component, columnStyle);
+                renderColumnBody(facesContext, writer, uiData, component,
+                                columnStyle);
             }
             columns.setRowIndex(-1);
         }
     }
 
     /**
+     * @see org.apache.myfaces.renderkit.html.HtmlTableRendererBase#renderColumnBody(javax.faces.context.FacesContext, javax.faces.context.ResponseWriter, javax.faces.component.UIData, javax.faces.component.UIComponent, java.lang.String)
+     */
+    protected void renderColumnBody(FacesContext facesContext,
+                    ResponseWriter writer, UIData uiData,
+                    UIComponent component, String columnStyleClass)
+                    throws IOException
+    {
+        if (component instanceof HtmlColumn)
+        {
+            writer.startElement(HTML.TD_ELEM, uiData);
+            String styleClass = ((HtmlColumn) component).getStyleClass();
+            if (styleClass == null)
+            {
+                styleClass = columnStyleClass;
+            }
+            if (styleClass != null)
+            {
+                writer.writeAttribute(HTML.CLASS_ATTR, styleClass, null);
+            }
+            renderHtmlColumnAttributes(writer, component, null);
+
+            RendererUtils.renderChild(facesContext, component);
+            writer.endElement(HTML.TD_ELEM);
+        }
+        else
+        {
+            super.renderColumnBody(facesContext, writer, uiData, component,
+                            columnStyleClass);
+        }
+    }
+
+    /**
      * handles uicolumns component
      * @see org.apache.myfaces.renderkit.html.HtmlTableRendererBase#renderColumnChildHeaderOrFooterRow(javax.faces.context.FacesContext, javax.faces.context.ResponseWriter, javax.faces.component.UIComponent, java.lang.String, boolean)
      */
-    protected void renderColumnChildHeaderOrFooterRow(FacesContext facesContext,
-                    ResponseWriter writer, UIComponent uiComponent, String styleClass,
-                    boolean header) throws IOException
+    protected void renderColumnChildHeaderOrFooterRow(
+                    FacesContext facesContext, ResponseWriter writer,
+                    UIComponent uiComponent, String styleClass, boolean header)
+                    throws IOException
     {
-        super.renderColumnChildHeaderOrFooterRow(facesContext, writer, uiComponent, styleClass,
-                        header);
+        super.renderColumnChildHeaderOrFooterRow(facesContext, writer,
+                        uiComponent, styleClass, header);
         if (uiComponent instanceof UIColumns)
         {
             UIColumns columns = (UIColumns) uiComponent;
@@ -89,17 +129,120 @@
                 columns.setRowIndex(i);
                 if (header)
                 {
-                    renderColumnHeaderCell(facesContext, writer, columns, columns.getHeader(),
-                                    styleClass, 0);
+                    renderColumnHeaderCell(facesContext, writer, columns,
+                                    columns.getHeader(), styleClass, 0);
                 }
                 else
                 {
-                    renderColumnFooterCell(facesContext, writer, columns, columns.getFooter(),
-                                    styleClass, 0);
+                    renderColumnFooterCell(facesContext, writer, columns,
+                                    columns.getFooter(), styleClass, 0);
                 }
             }
             columns.setRowIndex(-1);
         }
+    }
+
+    /**
+     * @see org.apache.myfaces.renderkit.html.HtmlTableRendererBase#renderColumnHeaderCell(javax.faces.context.FacesContext, javax.faces.context.ResponseWriter, javax.faces.component.UIComponent, javax.faces.component.UIComponent, java.lang.String, int)
+     */
+    protected void renderColumnHeaderCell(FacesContext facesContext,
+                    ResponseWriter writer, UIComponent uiComponent,
+                    UIComponent facet, String headerStyleClass, int colspan)
+                    throws IOException
+    {
+        if (uiComponent instanceof HtmlColumn)
+        {
+            writer.startElement(HTML.TH_ELEM, uiComponent);
+            if (colspan > 1)
+            {
+                writer.writeAttribute(HTML.COLSPAN_ATTR, new Integer(colspan),
+                                null);
+            }
+            String styleClass = ((HtmlColumn) uiComponent)
+                            .getHeaderstyleClass();
+            if (styleClass == null)
+            {
+                styleClass = headerStyleClass;
+            }
+            if (styleClass != null)
+            {
+                writer.writeAttribute(HTML.CLASS_ATTR, styleClass, null);
+            }
+            renderHtmlColumnAttributes(writer, uiComponent, "header");
+            if (facet != null)
+            {
+                RendererUtils.renderChild(facesContext, facet);
+            }
+            writer.endElement(HTML.TH_ELEM);
+        }
+        else
+        {
+            super.renderColumnHeaderCell(facesContext, writer, uiComponent,
+                            facet, headerStyleClass, colspan);
+        }
+    }
+
+    /**
+     * @see org.apache.myfaces.renderkit.html.HtmlTableRendererBase#renderColumnFooterCell(javax.faces.context.FacesContext, javax.faces.context.ResponseWriter, javax.faces.component.UIComponent, javax.faces.component.UIComponent, java.lang.String, int)
+     */
+    protected void renderColumnFooterCell(FacesContext facesContext,
+                    ResponseWriter writer, UIComponent uiComponent,
+                    UIComponent facet, String footerStyleClass, int colspan)
+                    throws IOException
+    {
+        if (uiComponent instanceof HtmlColumn)
+        {
+            writer.startElement(HTML.TD_ELEM, uiComponent);
+            if (colspan > 1)
+            {
+                writer.writeAttribute(HTML.COLSPAN_ATTR, new Integer(colspan),
+                                null);
+            }
+            String styleClass = ((HtmlColumn) uiComponent)
+                            .getFooterstyleClass();
+            if (styleClass == null)
+            {
+                styleClass = footerStyleClass;
+            }
+            if (styleClass != null)
+            {
+                writer.writeAttribute(HTML.CLASS_ATTR, styleClass, null);
+            }
+            renderHtmlColumnAttributes(writer, uiComponent, "footer");
+            if (facet != null)
+            {
+                RendererUtils.renderChild(facesContext, facet);
+            }
+            writer.endElement(HTML.TD_ELEM);
+        }
+        else
+        {
+            super.renderColumnFooterCell(facesContext, writer, uiComponent,
+                            facet, footerStyleClass, colspan);
+        }
+    }
+
+    /**
+     * @param writer
+     * @param uiComponent
+     * @param prefix header, footer or null
+     * @throws IOException 
+     */
+    protected void renderHtmlColumnAttributes(ResponseWriter writer,
+                    UIComponent uiComponent, String prefix) throws IOException
+    {
+        String[] attrs = HTML.COMMON_PASSTROUGH_ATTRIBUTES_WITHOUT_STYLE;
+        for (int i = 0, size = attrs.length; i < size; i++)
+        {
+            String attributeName = attrs[i];
+            String compAttrName = prefix != null ? prefix + attributeName : attributeName;
+            HtmlRendererUtils.renderHTMLAttribute(writer, uiComponent,
+                            compAttrName, attributeName);
+        }
+        String compAttrName = prefix != null ? prefix + HTML.STYLE_ATTR : HTML.STYLE_ATTR;
+        HtmlRendererUtils.renderHTMLAttribute(writer, uiComponent,
+                        compAttrName, HTML.STYLE_ATTR);
+
     }
 
     /**

Modified: myfaces/tomahawk/trunk/tld/myfaces_ext.tld
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/tld/myfaces_ext.tld?rev=226773&r1=226772&r2=226773&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/tld/myfaces_ext.tld (original)
+++ myfaces/tomahawk/trunk/tld/myfaces_ext.tld Mon Aug  1 04:26:52 2005
@@ -2489,4 +2489,50 @@
         </attribute>        
      </tag>
 
+
+  <!-- column -->
+    <tag>
+        <name>column</name>
+        <tag-class>org.apache.myfaces.custom.column.HtmlColumnTag</tag-class>
+        <body-content>JSP</body-content>
+        &ui_component_attributes;
+        &ui_column_attributes;
+        &html_universal_attributes;
+        &html_event_handler_attributes;
+        
+        <!-- header attributes -->
+        <attribute><name>headerdir</name>     <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headerlang</name>    <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headerstyle</name>   <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headertitle</name>   <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headerstyleClass</name><required>false</required><rtexprvalue>false</rtexprvalue><description>Corresponds to the HTML class attribute.</description></attribute>
+        <attribute><name>headeronclick</name>    <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headerondblclick</name> <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headeronmousedown</name><required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headeronmouseup</name>  <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headeronmouseover</name><required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headeronmousemove</name><required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headeronmouseout</name> <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headeronkeypress</name> <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headeronkeydown</name>  <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>headeronkeyup</name>    <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+
+        <!-- footer attributes -->
+        <attribute><name>footerdir</name>     <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footerlang</name>    <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footerstyle</name>   <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footertitle</name>   <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footerstyleClass</name><required>false</required><rtexprvalue>false</rtexprvalue><description>Corresponds to the HTML class attribute.</description></attribute>
+        <attribute><name>footeronclick</name>    <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footerondblclick</name> <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footeronmousedown</name><required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footeronmouseup</name>  <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footeronmouseover</name><required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footeronmousemove</name><required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footeronmouseout</name> <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footeronkeypress</name> <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footeronkeydown</name>  <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+        <attribute><name>footeronkeyup</name>    <required>false</required>  <rtexprvalue>false</rtexprvalue></attribute>
+     </tag>
+
 </taglib>