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 2004/09/25 00:06:59 UTC

svn commit: rev 47174 - in incubator/beehive/trunk/netui: src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid test/webapps/drt/coreWeb/databinding/datagrid/misc test/webapps/drt/testRecorder/config test/webapps/drt/testRecorder/tests

Author: ekoneil
Date: Fri Sep 24 15:06:58 2004
New Revision: 47174

Added:
   incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/stylePrefix.jsp   (contents, props changed)
   incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCSSPrefix.xml   (contents, props changed)
Modified:
   incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/StylePolicy.java
   incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
   incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Log:
Begin to support CSS class prefixes on the data grid.

This adds a simple cssNamePrefix to the datagrid tag, which is a prefix that is added to the data grid style names rendered on the header / data even and odd rows / wrapping table.

BB: self
DRT: NetUI pass
     datagrid pass
BVt: NetUI pass



Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/StylePolicy.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/StylePolicy.java	(original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/StylePolicy.java	Fri Sep 24 15:06:58 2004
@@ -27,7 +27,7 @@
     private static final Logger _logger = Logger.getInstance(StylePolicy.class);
 
     // todo: is this the correct delimiter relative to the CSS spec?
-    private static final String DELIM = ".";
+    private static final String DELIM = "-";
 
     public static final int TABLE_CLASS = 1;
     public static final int HEADER_ROW_CLASS = 2;

Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java	(original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java	Fri Sep 24 15:06:58 2004
@@ -53,6 +53,9 @@
     private static final StylePolicy DEFAULT_STYLE_POLICY = new DefaultStylePolicy();
     private static final StylePolicy EMPTY_STYLE_POLICY = new EmptyStylePolicy();
 
+    private static final String DEFAULT_STYLE_POLICY_VALUE = "default";
+    private static final String NO_STYLE_POLICY_VALUE = "none";
+
     public static final int START_RENDER_STATE = 10;
     public static final int CAPTION_RENDER_STATE = 20;
     public static final int GRID_RENDER_STATE = 30;
@@ -60,15 +63,16 @@
     public static final int END_RENDER_STATE = 50;
 
     public static final String DATA_GRID_MODEL_KEY = "dataGrid";
-    public static final String DEFAULT_STYLE_POLICY_VALUE = "default";
 
     private DataGridModel _gridModel = null;
+
+    private boolean _disableDefaultPager = false;
+    private int _renderState = START_RENDER_STATE;
+
     private String _name = null;
     private String _cssClassPolicy = DEFAULT_STYLE_POLICY_VALUE;
+    private String _cssClassPrefix = null;
     private String _dataSource = null;
-    private boolean _disableDefaultPager = false;
-
-    private int _renderState = START_RENDER_STATE;
 
     // todo: consider a switch to StringBuilder or Writer w/ a StringWriter?
     private StringBuffer _content = null;
@@ -97,6 +101,11 @@
     /**
      * @netui:attribute required="false" rtexprvalue="true"
      */
+    public void setCssClassPrefix(String cssClassPrefix) {_cssClassPrefix = cssClassPrefix;}
+
+    /**
+     * @netui:attribute required="false" rtexprvalue="true"
+     */
     public void setDisableDefaultPager(boolean disableDefaultPager) {_disableDefaultPager = disableDefaultPager;}
 
     public void doTag()
@@ -116,10 +125,15 @@
 
         _gridModel.setDataSet(dataSet);
 
-        if(_cssClassPolicy == DEFAULT_STYLE_POLICY_VALUE || _cssClassPolicy.equals("default"))
-            _gridModel.setCssPolicy(DEFAULT_STYLE_POLICY);
-        else if(_cssClassPolicy.equals("none"))
-            _gridModel.setCssPolicy(EMPTY_STYLE_POLICY);
+        StylePolicy cssPolicy = null;
+        if(_cssClassPrefix != null)
+            cssPolicy = new DefaultStylePolicy(_cssClassPrefix);
+        else if(_cssClassPolicy == DEFAULT_STYLE_POLICY_VALUE || _cssClassPolicy.equals(DEFAULT_STYLE_POLICY_VALUE))
+            cssPolicy = DEFAULT_STYLE_POLICY;
+        else if(_cssClassPolicy.equals(NO_STYLE_POLICY_VALUE))
+            cssPolicy = EMPTY_STYLE_POLICY;
+
+        _gridModel.setCssPolicy(cssPolicy);
 
         // todo: implement state machine rendering here...
         _renderState = START_RENDER_STATE;

Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/stylePrefix.jsp
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/stylePrefix.jsp	Fri Sep 24 15:06:58 2004
@@ -0,0 +1,37 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="beehive-netui-tags-html.tld" prefix="netui"%>
+<%@ taglib uri="beehive-netui-tags-databinding.tld" prefix="netui-data"%>
+<%@ taglib uri="beehive-netui-tags-template.tld" prefix="netui-template"%>
+
+<netui:html>
+  <head>
+    <title>CSS Prefix Test</title>
+        <style type="text/css">
+        .foo-datagrid-header {
+            background-color: #5f7797;
+        }
+        .foo-datagrid-even {
+            background-color: #ffffff;
+        }
+        .foo-datagrid-odd {
+            background-color: #bfc4cb;
+        }
+        </style>
+  </head>
+  <netui:body>
+    <p>
+    <%@ include file="../util/portfolioXmlBean.jsp" %>
+    <br/>
+    <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio" cssClassPrefix="foo" >
+        <netui-data:columns>
+            <netui-data:literalColumn headerText="Symbol" value="${container.item.symbol}"/>
+            <netui-data:literalColumn headerText="Price" value="${container.item.price}"/>
+            <netui-data:anchorColumn headerText="Web" 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:anchorColumn>
+        </netui-data:columns>
+    </netui-data:dataGrid>
+    </p>
+  </netui:body>
+</netui:html>
\ No newline at end of file

Modified: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
==============================================================================
--- 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	Fri Sep 24 15:06:58 2004
@@ -2140,6 +2140,21 @@
          </features>
       </test>
       <test>
+         <name>DataGridCSSPrefix</name>
+         <description>DataGridCSSPrefix</description>
+         <webapp>coreWeb</webapp>
+         <categories>
+            <category>bvt</category>
+            <category>drt</category>
+            <category>datagrid</category>
+            <category>databinding</category>
+         </categories>
+         <features>
+            <feature>Databinding</feature>
+            <feature>Data Grid</feature>
+         </features>
+      </test>
+      <test>
          <name>DataGridCustomTagAttributes</name>
          <description>DataGridCustomTagAttributes</description>
          <webapp>coreWeb</webapp>

Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCSSPrefix.xml
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCSSPrefix.xml	Fri Sep 24 15:06:58 2004
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+   <ses:sessionName>DataGridCSSPrefix</ses:sessionName>
+   <ses:tester>ekoneil</ses:tester>
+   <ses:startDate>24 Sep 2004, 02:32:24.568 PM MDT</ses:startDate>
+   <ses:description>Test the addition of a simple CSS prefix to the data grid CSS class names.</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/stylePrefix.jsp</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>DCB782ADDFF281EFCB9F0444AADA321A</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=DCB782ADDFF281EFCB9F0444AADA321A</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; rv:1.7.3) Gecko/20040913 Firefox/0.10</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-datagrid-header {
+            background-color: #5f7797;
+        }
+        .foo-datagrid-even {
+            background-color: #ffffff;
+        }
+        .foo-datagrid-odd {
+            background-color: #bfc4cb;
+        }
+        </style>
+  </head>
+  <body>
+    <p>
+    
+ 
+
+
+    <br/>
+    Page 1 of 1&nbsp;&nbsp;&nbsp;
+<table class="foo-datagrid">
+<caption>
+
+        
+    
+</caption>
+
+        
+<thead>
+<tr class="foo-datagrid-header">
+            <th class="foo-datagrid-header-cell">Symbol</th>
+
+
+            <th class="foo-datagrid-header-cell">Price</th>
+
+
+            <th class="foo-datagrid-header-cell">Web</th>
+
+
+        </tr>
+</thead>
+
+<tr class="foo-datagrid-even">
+            <td class="foo-datagrid-data-cell"><span>BEAS</span></td>
+
+            <td class="foo-datagrid-data-cell"><span>14.35</span></td>
+
+            <td class="foo-datagrid-data-cell"><a href="http://www.bea.com?rowid=1&amp;symbol=BEAS"><span>BEA Systems</span></a></td>
+
+        </tr>
+<tr class="foo-datagrid-odd">
+            <td class="foo-datagrid-data-cell"><span>CSCO</span></td>
+
+            <td class="foo-datagrid-data-cell"><span>19.42</span></td>
+
+            <td class="foo-datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&amp;symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+        </tr>
+<tr class="foo-datagrid-even">
+            <td class="foo-datagrid-data-cell"><span>GE</span></td>
+
+            <td class="foo-datagrid-data-cell"><span>59.42</span></td>
+
+            <td class="foo-datagrid-data-cell"><a href="http://www.ge.com?rowid=3&amp;symbol=GE"><span>General Electric</span></a></td>
+
+        </tr>
+<tr class="foo-datagrid-odd">
+            <td class="foo-datagrid-data-cell"><span>RHAT</span></td>
+
+            <td class="foo-datagrid-data-cell"><span>18.2</span></td>
+
+            <td class="foo-datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&amp;symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+        </tr>
+<tr class="foo-datagrid-even">
+            <td class="foo-datagrid-data-cell"><span>YHOO</span></td>
+
+            <td class="foo-datagrid-data-cell"><span>48.16</span></td>
+
+            <td class="foo-datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&amp;symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+        </tr>
+    
+<tr class="foo-datagrid-footer">
+        
+    
+</tr></table>
+
+    </p>
+  </body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+   </ses:tests>
+   <ses:endDate>24 Sep 2004, 02:32:30.937 PM MDT</ses:endDate>
+   <ses:testCount>1</ses:testCount>
+</ses:recorderSession>
\ No newline at end of file