You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sc...@apache.org on 2005/05/26 00:28:21 UTC

svn commit: r178541 - in /myfaces/trunk: src/components/org/apache/myfaces/component/html/ext/ src/components/org/apache/myfaces/renderkit/html/ext/ src/components/org/apache/myfaces/taglib/html/ext/ tlds/ webapps/simple/

Author: schof
Date: Wed May 25 15:28:19 2005
New Revision: 178541

URL: http://svn.apache.org/viewcvs?rev=178541&view=rev
Log:
Fixes MYFACES-175 (patch by Chris Barlow)

Modified:
    myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.java
    myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.xml
    myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java
    myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java
    myfaces/trunk/tlds/myfaces_ext.tld
    myfaces/trunk/webapps/simple/home.jsp
    myfaces/trunk/webapps/simple/openDataTable.jsp

Modified: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.java?rev=178541&r1=178540&r2=178541&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.java Wed May 25 15:28:19 2005
@@ -61,7 +61,8 @@
 
     private String _sortColumn = null;
     private Boolean _sortAscending = null;
-
+    private String _rowOnMouseOver = null;
+    private String _rowOnMouseOut = null;
 
     public void setValue(Object value)
     {
@@ -514,7 +515,7 @@
     public Object saveState(FacesContext context)
     {
         boolean preserveSort = isPreserveSort();
-        Object values[] = new Object[9];
+        Object values[] = new Object[11];
         values[0] = super.saveState(context);
         values[1] = _preserveDataModel;
         if (isPreserveDataModel())
@@ -531,6 +532,8 @@
         values[6] = _renderedIfEmpty;
         values[7] = _rowCountVar;
         values[8] = _rowIndexVar;
+        values[9] = _rowOnMouseOver;
+        values[10] = _rowOnMouseOut;
         return values;
     }
 
@@ -556,6 +559,8 @@
         _renderedIfEmpty = (Boolean)values[6];
         _rowCountVar = (String)values[7];
         _rowIndexVar = (String)values[8];
+        _rowOnMouseOver = (String)values[9];
+        _rowOnMouseOut = (String)values[10];
 
         // restore state means component was already rendered at least once:
         _firstTimeRendered = false;
@@ -654,9 +659,45 @@
         return v != null ? v.booleanValue() : DEFAULT_SORTASCENDING;
     }
 
+    public void setRowOnMouseOver(String rowOnMouseOver)
+    {
+        _rowOnMouseOver = rowOnMouseOver;
+        // update model is necessary here, because processUpdates is never called
+        // reason: HtmlCommandSortHeader.isImmediate() == true
+        ValueBinding vb = getValueBinding("rowOnMouseOver");
+        if (vb != null)
+        {
+            vb.setValue(getFacesContext(), _rowOnMouseOver);
+            _rowOnMouseOver = null;
+        }
+    }
 
+    public String getRowOnMouseOver()
+    {
+        if (_rowOnMouseOver != null) return _rowOnMouseOver;
+        ValueBinding vb = getValueBinding("rowOnMouseOver");
+        return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+    }
 
+    public void setRowOnMouseOut(String rowOnMouseOut)
+    {
+        _rowOnMouseOut = rowOnMouseOut;
+        // update model is necessary here, because processUpdates is never called
+        // reason: HtmlCommandSortHeader.isImmediate() == true
+        ValueBinding vb = getValueBinding("rowOnMouseOut");
+        if (vb != null)
+        {
+            vb.setValue(getFacesContext(), _rowOnMouseOut);
+            _rowOnMouseOut = null;
+        }
+    }
 
+    public String getRowOnMouseOut()
+    {
+        if (_rowOnMouseOut != null) return _rowOnMouseOut;
+        ValueBinding vb = getValueBinding("rowOnMouseOut");
+        return vb != null ? (String)vb.getValue(getFacesContext()) : null;
+    }
 
     //------------------ GENERATED CODE BEGIN (do not modify!) --------------------
 

Modified: myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.xml
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.xml?rev=178541&r1=178540&r2=178541&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.xml (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/component/html/ext/HtmlDataTable.xml Wed May 25 15:28:19 2005
@@ -41,4 +41,12 @@
         <name>previousRowDataVar</name>
         <type>java.lang.String</type>
     </field>
+    <field>
+        <name>rowOnMouseOver</name>
+        <type>java.lang.String</type>
+    </field>
+    <field>
+        <name>rowOnMouseOut</name>
+        <type>java.lang.String</type>
+    </field>
 </component>

Modified: myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java?rev=178541&r1=178540&r2=178541&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/renderkit/html/ext/HtmlTableRenderer.java Wed May 25 15:28:19 2005
@@ -6,9 +6,39 @@
  */
 
 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.UIData;
+import org.apache.myfaces.component.html.ext.HtmlDataTable;
+import org.apache.myfaces.renderkit.html.HTML;
 
 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
+    {
+        super.renderRowStart(facesContext, writer, uiData, rowStyleClass);
+
+        // get event handlers from component
+        HtmlDataTable table = (HtmlDataTable) uiData;
+        String rowOnMouseOver = table.getRowOnMouseOver();
+        String rowOnMouseOut = table.getRowOnMouseOut();
+
+        // render onmouseover and onmouseout handlers if not null
+        if (rowOnMouseOver != null)
+        {
+            writer.writeAttribute(HTML.ONMOUSEOVER_ATTR, rowOnMouseOver, null);
+        }
+        if (rowOnMouseOut != null)
+        {
+            writer.writeAttribute(HTML.ONMOUSEOUT_ATTR, rowOnMouseOut, null);
+        }
+    }
 }

Modified: myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java
URL: http://svn.apache.org/viewcvs/myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java?rev=178541&r1=178540&r2=178541&view=diff
==============================================================================
--- myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java (original)
+++ myfaces/trunk/src/components/org/apache/myfaces/taglib/html/ext/HtmlDataTableTag.java Wed May 25 15:28:19 2005
@@ -50,6 +50,8 @@
     private String _rowIndexVar;
     private String _rowCountVar;
     private String _previousRowDataVar;
+    private String _rowOnMouseOver;
+    private String _rowOnMouseOut;
 
     public void release() {
         super.release();
@@ -64,6 +66,8 @@
         _rowIndexVar=null;
         _rowCountVar=null;
         _previousRowDataVar=null;
+        _rowOnMouseOver=null;
+        _rowOnMouseOut=null;
 
     }
 
@@ -81,6 +85,8 @@
         setStringProperty(component, "rowIndexVar", _rowIndexVar);
         setStringProperty(component, "rowCountVar", _rowCountVar);
         setStringProperty(component, "previousRowDataVar", _previousRowDataVar);
+        setStringProperty(component, "rowOnMouseOver", _rowOnMouseOver);
+        setStringProperty(component, "rowOnMouseOut", _rowOnMouseOut);
     }
 
     public void setPreserveDataModel(String preserveDataModel)
@@ -131,5 +137,15 @@
     public void setPreviousRowDataVar(String previousRowDataVar)
     {
         _previousRowDataVar = previousRowDataVar;
+    }
+
+    public void setRowOnMouseOver(String rowOnMouseOver)
+    {
+        _rowOnMouseOver = rowOnMouseOver;
+    }
+
+    public void setRowOnMouseOut(String rowOnMouseOut)
+    {
+        _rowOnMouseOut = rowOnMouseOut;
     }
 }

Modified: myfaces/trunk/tlds/myfaces_ext.tld
URL: http://svn.apache.org/viewcvs/myfaces/trunk/tlds/myfaces_ext.tld?rev=178541&r1=178540&r2=178541&view=diff
==============================================================================
--- myfaces/trunk/tlds/myfaces_ext.tld (original)
+++ myfaces/trunk/tlds/myfaces_ext.tld Wed May 25 15:28:19 2005
@@ -206,6 +206,22 @@
                 or when isRowAvailable returns false for the previous row.
             </description>
         </attribute>
+        <attribute>
+            <name>rowOnMouseOver</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+            <description>
+                Defines a JavaScript onmouseover event handler for each table row
+            </description>
+        </attribute>
+        <attribute>
+            <name>rowOnMouseOut</name>
+            <required>false</required>
+            <rtexprvalue>false</rtexprvalue>
+            <description>
+                Defines a JavaScript onmouseout event handler for each table row
+            </description>
+        </attribute>
      </tag>
 
     <!-- inputHidden -->
@@ -2031,7 +2047,7 @@
             A tag that defines a new bean (alias) with a given value.
             This allows you to design a subform with a generic (fictive) beans and to include it in all the pages where you use it.
 			You just need to make an alias to the real bean named after the generic bean before including the subform.
-			
+
 			When used within an aliasBeansScope tag, this tag adds the alias to the aliasBeansScope.
 			This makes configuration with multiple aliasBeans easier to write.
         </description>
@@ -2066,7 +2082,7 @@
         <description>
             This is like an aliasBean tag, but instead of the alias/value attributes, you configure the aliases
             by adding aliasBean tags in the body.
-            
+
             The aliasBeans should be declared right after this tag.
         </description>
         <attribute>

Modified: myfaces/trunk/webapps/simple/home.jsp
URL: http://svn.apache.org/viewcvs/myfaces/trunk/webapps/simple/home.jsp?rev=178541&r1=178540&r2=178541&view=diff
==============================================================================
Binary files - no diff available.

Modified: myfaces/trunk/webapps/simple/openDataTable.jsp
URL: http://svn.apache.org/viewcvs/myfaces/trunk/webapps/simple/openDataTable.jsp?rev=178541&r1=178540&r2=178541&view=diff
==============================================================================
--- myfaces/trunk/webapps/simple/openDataTable.jsp (original)
+++ myfaces/trunk/webapps/simple/openDataTable.jsp Wed May 25 15:28:19 2005
@@ -41,6 +41,8 @@
                  footerClass="standardTable_Header"
                  rowClasses="standardTable_Row1,standardTable_Row2"
                  columnClasses="standardTable_Column,standardTable_ColumnCentered,standardTable_Column"
+                 rowOnMouseOver="this.style.backgroundColor='#A5CBFF'"
+                 rowOnMouseOut="this.style.backgroundColor='#FFFFE0'"
                  var="row"
                  value="#{openDataList.data}"
                  preserveDataModel="true"