Author: ekoneil
Date: Thu May 19 15:55:17 2005
New Revision: 171008

URL: http://svn.apache.org/viewcvs?rev=171008&view=rev
Log:
NetUI Javadoc.

BB: self
DRT: pass

Modified:
    
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridURLBuilder.java
    
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridURLBuilder.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridURLBuilder.java?rev=171008&r1=171007&r2=171008&view=diff
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridURLBuilder.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/config/DefaultDataGridURLBuilder.java
 Thu May 19 15:55:17 2005
@@ -40,6 +40,11 @@
  * URL parameters would be computed using this class and rendered to the UI so 
that it is clickable for the
  * next HTTP submit.
  * <p/>
+ * <p>
+ * An instance of this class is associated with a single data grid by name.  
Instances should be obtained
+ * via the [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.DataGridStateFactory#getDataGridURLBuilder(String)}
+ * method.
+ * </p>
  */
 class DefaultDataGridURLBuilder
     extends DataGridURLBuilder {
@@ -47,8 +52,10 @@
     private transient DefaultDataGridStateCodec _codec;
 
     /**
-     * Package protected constructor.  This class is intended only to be 
created via the default [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.DataGridConfig}
-     * object.
+     * <p>
+     * Package protected constructor.  This class is intended only to be 
created via the default
+     * [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.DataGridConfig} object.
+     * </p>
      * @param codec the state codec providing state information which will be 
converted into URLs here.
      */
     DefaultDataGridURLBuilder(DefaultDataGridStateCodec codec) {
@@ -56,16 +63,27 @@
     }
 
     /**
-     *
-     * @return
+     * <p>
+     * Get the URL query parameter key used to store the current row for a 
data grid's pager.  The value
+     * of this key is:
+     * <br/>
+     * <pre>
+     *     netui_row
+     * </pre>
+     * </p>
+     * @return the URL parameter key for the current row
      */
     public String getPagerRowQueryParamKey() {
         return DefaultDataGridStateCodec.PARAM_KEY_ROW;
     }
 
     /**
-     *
-     * @return
+     * <p>
+     * Get the query parameters for the currene state of the data grid.  The 
[EMAIL PROTECTED] Map} returned by this method
+     * will maintain the <i>current</i> state of the data grid and all of the 
associated URL parameters.  The
+     * [EMAIL PROTECTED] Map} contains key / value pairs of type String / 
String[].
+     * </p>
+     * @return the current URL and data grid state
      */
     public Map getQueryParams() {
         Map params = _codec.getExistingParams();
@@ -82,8 +100,12 @@
     }
 
     /**
-     *
-     * @return
+     * <p>
+     * Get a URL query parameter map that will change the data grid's page 
value to display the
+     * <i>first</i> page in a data set.  This map also contains all of the 
other existing URL
+     * parameters.  The [EMAIL PROTECTED] Map} contains key / value pairs of 
type String / String[].
+     * </p>
+     * @return the URL and data grid state needed to change to the 
<i>first</i> page for a data grid
      */
     public Map getQueryParamsForFirstPage() {
         Map params = _codec.getExistingParams();
@@ -104,8 +126,13 @@
     }
 
     /**
-     *
-     * @return
+     * <p>
+     * Get a URL query parameter map that will change the data grid's page 
value to display the
+     * <i>previous</i> page in a data set relative to the current page.  This 
map also contains all of
+     * the other existing URL parameters.  The [EMAIL PROTECTED] Map} contains 
key / value pairs of type
+     * String / String[].
+     * </p>
+     * @return the URL and data grid state needed to change to the 
<i>previous</i> page for a data grid
      */
     public Map getQueryParamsForPreviousPage() {
         Map params = _codec.getExistingParams();
@@ -126,8 +153,13 @@
     }
 
     /**
-     *
-     * @return
+     * <p>
+     * Get a URL query parameter map that will change the data grid's page 
value to display the
+     * <i>next</i> page in a data set relative to the current page.  This map 
also contains all of
+     * the other existing URL parameters.  The [EMAIL PROTECTED] Map} contains 
key / value pairs of type
+     * String / String[].
+     * </p>
+     * @return the URL and data grid state needed to change to the <i>next</i> 
page for a data grid
      */
     public Map getQueryParamsForNextPage() {
         Map params = _codec.getExistingParams();
@@ -148,8 +180,12 @@
     }
 
     /**
-     *
-     * @return
+     * <p>
+     * Get a URL query parameter map that will change the data grid's page 
value to display the
+     * <i>last</i> page in a data set.  This map also contains all of the 
other existing URL parameters.
+     * The [EMAIL PROTECTED] Map} contains key / value pairs of type String / 
String[].
+     * </p>
+     * @return the URL and data grid state needed to change to the <i>last</i> 
page for a data grid
      */
     public Map getQueryParamsForLastPage() {
         Map params = _codec.getExistingParams();
@@ -170,7 +206,16 @@
     }
 
     /**
-     *
+     * <p>
+     * Get a String[] of the URL query parameter values that could when 
submitted to a server to make a request
+     * can explicitly change the current page for a data grid to a specific 
page.  The returned pager parameter
+     * values are structured as:
+     * <pre>
+     *     <datagrid-name>~<row-number>
+     * </pre>
+     * These values can be attached to a URL in order to submit a query string 
which will set the data grid's
+     * current page.
+     * </p>
      * @return
      */
     public String[] getPagerParamValues() {
@@ -185,9 +230,17 @@
     }
 
     /**
-     *
-     * @param sortExpression
-     * @return
+     * <p>
+     * Get a URL query parameter map that contains state which will change the 
direction of a
+     * [EMAIL PROTECTED] Sort} whose sort expression matches the given sort 
expression value.  The [EMAIL PROTECTED] SortStrategy}
+     * associated with the data grid's [EMAIL PROTECTED] SortModel} will be 
used to choose the next
+     * [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.sort.SortDirection} given the 
sort's current
+     * sort direction.  This map also contains all of the other existing URL 
parameters.  The [EMAIL PROTECTED] Map}
+     * contains key / value pairs of type String / String[].
+     * </p>
+     * @param sortExpression the sort expression whose direction to change
+     * @return the URL and data grid state needed to change the direction of a 
[EMAIL PROTECTED] Sort} with the given
+     *         sort expression
      */
     public Map buildSortQueryParamsMap(String sortExpression) {
 

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java?rev=171008&r1=171007&r2=171008&view=diff
==============================================================================
--- 
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
 Thu May 19 15:55:17 2005
@@ -53,12 +53,190 @@
 
 /**
  * <p>
- * This tag is the top-level data grid tag which renders a data set into an 
HTML table.
+ * This tag is the containing tag for all tags and markup used to render a 
data grid.  In its simplest form, a data
+ * grid is an HTML table containing an HTML table row for every item in a data 
set.  The data grid also provides
+ * functionality for rendering the following major regions:
+ * <ul>
+ * <li>a header -- a header contains the top-most rows in a data grid's HTML 
table and is rendered using
+ *                 the [EMAIL PROTECTED] Header} tag</li>
+ * <li>data rows -- markup rendered in the data grid for each record in the 
data set must be contained
+ *                  in a [EMAIL PROTECTED] Rows} tag</li>
+ * <li>a footer -- a footer contains the bottom-most rows in a data grid's 
HTML table and is rendered using the
+ *                 [EMAIL PROTECTED] Footer} tag</li>
+ * <li>caption -- an HTML table caption appears at the top of the table and is 
rendered using the
+ *                [EMAIL PROTECTED] Caption} tag.</li>
+ * </ul>
+ * In addition, a data grid can also configure and render a pager using the 
[EMAIL PROTECTED] ConfigurePager} and
+ * [EMAIL PROTECTED] RenderPager} tags respectively.
  * </p>
+ * <p>
+ * Inside of the [EMAIL PROTECTED] Header} and [EMAIL PROTECTED] Rows} 
rendering regions, the data grid renders HTML table cells.  The
+ * data grid tag set provides a set of tags that can be used render these 
cells with varying content including:
+ * <ul>
+ * <li>HTML &lt;th&gt; cells -- these are generally used inside the [EMAIL 
PROTECTED] Header}</li>
+ * <li>anchors -- these can be rendered using the [EMAIL PROTECTED] 
AnchorCell} tag</li>
+ * <li>images -- these can be rendered using the [EMAIL PROTECTED] ImageCell} 
tag</li>
+ * <li>image anchors-- these can be rendered using the [EMAIL PROTECTED] 
ImageAnchorCell} tag</li>
+ * <li>HTML spans -- these can be rendered using the [EMAIL PROTECTED] 
SpanCell} tag</li>
+ * </ul>
+ * The [EMAIL PROTECTED] TemplateCell} tag can be used as a container for 
arbitrary content that may be included in a cell's
+ * contents.  The [EMAIL PROTECTED] Footer} tag's content can also use these 
tags.
+ * </p>
+ * <p>
+ * When the data grid renders its data set, the <code>container</code> JSP EL 
implicit object is exposed in the
+ * JSP's [EMAIL PROTECTED] JspContext} and can be referenced using the 
<code>${contaimer}</code> JSP EL expression.  The
+ * <i>current</i> item of data from the data set can be referenced using the 
<code>${container.item}</code>
+ * expression.  If the item had a <code>name</code> property, it could be 
referenced as
+ * <code>${container.item.name}</code>.  By default, the data grid renders a 
paged data set which will only
+ * display a portion of the complete data set.  The default page size is 
[EMAIL PROTECTED] PagerModel#DEFAULT_PAGE_SIZE}
+ * and can be changed by setting the [EMAIL PROTECTED] 
ConfigurePager#setPageSize(int)} attribute.
+ * </p>
+ * <p>
+ * In addition to rendering a data grid, this tag set cooperates with a set of 
state management services exposed
+ * via the [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.DataGridStateFactory}.  These 
services
+ * help to manage state related to paging, sorting, and filtering.  For 
example, the first row displayed
+ * in the grid's current page and the sorts for a particular column of data 
are can be read / written using these
+ * state objects.  The data grid will use various state information from these 
classes at reunder time.  For example,
+ * when rendering a paged data set, the data grid will use the
+ * [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.DataGridStateFactory} to 
obtain a [EMAIL PROTECTED] PagerModel}
+ * which can be used to determine the current
+ * [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel#getRow()}.  
The grid will then
+ * use this row value to advance the grid to the appropriate page to display.
+ * </p>
+ * <p>
+ * By default, the data grid uses a configuration JavaBean which provides 
instances of state containers and services
+ * that are used to maintain state and render grid markup.  This config object 
is a subclass of
+ * [EMAIL PROTECTED] DataGridConfig} and is obtained via the [EMAIL PROTECTED] 
DataGridConfigFactory}.  The default implementation is
+ * [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.runtime.config.DefaultDataGridConfig}.
  Page authors
+ * may provide their own implementations of this object and set an instance via
+ * [EMAIL PROTECTED] 
#setDataGridConfig(org.apache.beehive.netui.databinding.datagrid.api.DataGridConfig)}.
  This cax be
+ * used to change default behaviors, change the appearance of the pager, and 
change the messages displayed
+ * during rendering among other things.
+ * </p>
+ * <p>
+ * A simple, sortable, and pageable data grid that uses a first / previous // 
next / last pager might be
+ * written as:
+ * <pre>
+ *     &lt;netui-data:dataGrid dataSource="pageScope.zooAnimals">
+ *         &lt;netui-data:configurePager disableDefaultPager="true" 
pageAction="page" pagerFormat="firstPreviousNextLast"/>
+ *         &lt;netui-data:caption>
+ *             &lt;netui-data:renderPager/>
+ *         &lt;netui-data:caption>
+ *         &lt;netui-data:header>
+ *             &lt;netui-data:heaederCell value="Animal" 
sortExpression="animal"/>
+ *             &lt;netui-data:heaederCell value="Quantity" 
sortExpression="quantity"/>
+ *             &lt;netui-data:heaederCell value="Details"/>
+ *         &lt;/netui-data:header>
+ *         &lt;netui-data:rows>
+ *             &lt;netui-data:spanCell value="${container.item.animalName}"/>
+ *             &lt;netui-data:spanCell value="${container.item.quantity}"/>
+ *             &lt;netui-data:anchorCell action="details" value="Details">
+ *                 &lt;netui:parameter name="animalId" 
value="${container.item.animalId}"/>
+ *             &lt;/netui-data:anchorCell>
+ *         &lt;/netui-data:rows>
+ *     &lt;/netui-data:dataGrid>
+ * </pre>
+ * This data grid would render an HTML table with a &lt;caption&gt; that 
contains a first / previous // next / last
+ * formated pager.  The data grid would display a page with ten data rows and 
three columns.  The header
+ * contains the column titles with clickable sorting links for sorting by the 
animal name and quantity.  The
+ * body of the data grid contains three cells per row containing two HTML 
&lt;span&gt; tags and an HTML anchor
+ * which will navigate to a Page Flow action caclled <code>details</code> when 
clicked.
+ * </p>
+ *
  * @jsptagref.tagdescription
+ * <p>
+ * This tag is the containing tag for all tags and markup used to render a 
data grid.  In its simplest form, a data
+ * grid is an HTML table containing an HTML table row for every item in a data 
set.  The data grid also provides
+ * functionality for rendering the following major regions:
+ * <ul>
+ * <li>a header -- a header contains the top-most rows in a data grid's HTML 
table and is rendered using
+ *                 the [EMAIL PROTECTED] Header} tag</li>
+ * <li>data rows -- markup rendered in the data grid for each record in the 
data set must be contained
+ *                  in a [EMAIL PROTECTED] Rows} tag</li>
+ * <li>a footer -- a footer contains the bottom-most rows in a data grid's 
HTML table and is rendered using the
+ *                 [EMAIL PROTECTED] Footer} tag</li>
+ * <li>caption -- an HTML table caption appears at the top of the table and is 
rendered using the
+ *                [EMAIL PROTECTED] Caption} tag.</li>
+ * </ul>
+ * In addition, a data grid can also configure and render a pager using the 
[EMAIL PROTECTED] ConfigurePager} and
+ * [EMAIL PROTECTED] RenderPager} tags respectively.
+ * </p>
+ * <p>
+ * Inside of the [EMAIL PROTECTED] Header} and [EMAIL PROTECTED] Rows} 
rendering regions, the data grid renders HTML table cells.  The
+ * data grid tag set provides a set of tags that can be used render these 
cells with varying content including:
+ * <ul>
+ * <li>HTML &lt;th&gt; cells -- these are generally used inside the [EMAIL 
PROTECTED] Header}</li>
+ * <li>anchors -- these can be rendered using the [EMAIL PROTECTED] 
AnchorCell} tag</li>
+ * <li>images -- these can be rendered using the [EMAIL PROTECTED] ImageCell} 
tag</li>
+ * <li>image anchors-- these can be rendered using the [EMAIL PROTECTED] 
ImageAnchorCell} tag</li>
+ * <li>HTML spans -- these can be rendered using the [EMAIL PROTECTED] 
SpanCell} tag</li>
+ * </ul>
+ * The [EMAIL PROTECTED] TemplateCell} tag can be used as a container for 
arbitrary content that may be included in a cell's
+ * contents.  The [EMAIL PROTECTED] Footer} tag's content can also use these 
tags.
+ * </p>
+ * <p>
+ * When the data grid renders its data set, the <code>container</code> JSP EL 
implicit object is exposed in the
+ * JSP's [EMAIL PROTECTED] JspContext} and can be referenced using the 
<code>${contaimer}</code> JSP EL expression.  The
+ * <i>current</i> item of data from the data set can be referenced using the 
<code>${container.item}</code>
+ * expression.  If the item had a <code>name</code> property, it could be 
referenced as
+ * <code>${container.item.name}</code>.  By default, the data grid renders a 
paged data set which will only
+ * display a portion of the complete data set.  The default page size is 
[EMAIL PROTECTED] PagerModel#DEFAULT_PAGE_SIZE}
+ * and can be changed by setting the [EMAIL PROTECTED] 
ConfigurePager#setPageSize(int)} attribute.
+ * </p>
+ * <p>
+ * In addition to rendering a data grid, this tag set cooperates with a set of 
state management services exposed
+ * via the [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.DataGridStateFactory}.  These 
services
+ * help to manage state related to paging, sorting, and filtering.  For 
example, the first row displayed
+ * in the grid's current page and the sorts for a particular column of data 
are can be read / written using these
+ * state objects.  The data grid will use various state information from these 
classes at reunder time.  For example,
+ * when rendering a paged data set, the data grid will use the
+ * [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.DataGridStateFactory} to 
obtain a [EMAIL PROTECTED] PagerModel}
+ * which can be used to determine the current
+ * [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel#getRow()}.  
The grid will then
+ * use this row value to advance the grid to the appropriate page to display.
+ * </p>
+ * <p>
+ * By default, the data grid uses a configuration JavaBean which provides 
instances of state containers and services
+ * that are used to maintain state and render grid markup.  This config object 
is a subclass of
+ * [EMAIL PROTECTED] DataGridConfig} and is obtained via the [EMAIL PROTECTED] 
DataGridConfigFactory}.  The default implementation is
+ * [EMAIL PROTECTED] 
org.apache.beehive.netui.databinding.datagrid.runtime.config.DefaultDataGridConfig}.
  Page authors
+ * may provide their own implementations of this object and set an instance via
+ * [EMAIL PROTECTED] 
#setDataGridConfig(org.apache.beehive.netui.databinding.datagrid.api.DataGridConfig)}.
  This cax be
+ * used to change default behaviors, change the appearance of the pager, and 
change the messages displayed
+ * during rendering among other things.
+ * </p>
+ * <p>
+ * A simple, sortable, and pageable data grid that uses a first / previous // 
next / last pager might be
+ * written as:
+ * <pre>
+ *     &lt;netui-data:dataGrid dataSource="pageScope.zooAnimals">
+ *         &lt;netui-data:configurePager disableDefaultPager="true" 
pageAction="page" pagerFormat="firstPreviousNextLast"/>
+ *         &lt;netui-data:caption>
+ *             &lt;netui-data:renderPager/>
+ *         &lt;netui-data:caption>
+ *         &lt;netui-data:header>
+ *             &lt;netui-data:heaederCell value="Animal" 
sortExpression="animal"/>
+ *             &lt;netui-data:heaederCell value="Quantity" 
sortExpression="quantity"/>
+ *             &lt;netui-data:heaederCell value="Details"/>
+ *         &lt;/netui-data:header>
+ *         &lt;netui-data:rows>
+ *             &lt;netui-data:spanCell value="${container.item.animalName}"/>
+ *             &lt;netui-data:spanCell value="${container.item.quantity}"/>
+ *             &lt;netui-data:anchorCell action="details" value="Details">
+ *                 &lt;netui:parameter name="animalId" 
value="${container.item.animalId}"/>
+ *             &lt;/netui-data:anchorCell>
+ *         &lt;/netui-data:rows>
+ *     &lt;/netui-data:dataGrid>
+ * </pre>
+ * This data grid would render an HTML table with a &lt;caption&gt; that 
contains a first / previous // next / last
+ * formated pager.  The data grid would display a page with ten data rows and 
three columns.  The header
+ * contains the column titles with clickable sorting links for sorting by the 
animal name and quantity.  The
+ * body of the data grid contains three cells per row containing two HTML 
&lt;span&gt; tags and an HTML anchor
+ * which will navigate to a Page Flow action caclled <code>details</code> when 
clicked.
+ * </p>
  * @netui:tag name="dataGrid" body-content="scriptless"
- *            description="Top-level data grid tag for the data grid tag set.
- * Renders a pageable, sortable, and filterable HTML table containing a data 
set"
+ *            description="Containing tag for tags in the data grid tag set.
+ *                         Renders a pageable, sortable, and filterable HTML 
table containing a data set"
  */
 public class DataGrid
     extends AbstractDataGridHtmlTag


Reply via email to