Author: ekoneil
Date: Wed May 4 09:15:26 2005
New Revision: 168140
URL: http://svn.apache.org/viewcvs?rev=168140&view=rev
Log:
Data grid Javadoc.
BB: self
DRT: NetUI pass
BVT: NetUI pass
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfig.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfigFactory.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridResourceProvider.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridURLBuilder.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/CellDecoratorException.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/DataGridExtensionException.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/IllegalFilterException.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/rendering/DataGridTagModel.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/RenderPager.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/iterator/ResultSetIterator.java
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfig.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfig.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfig.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfig.java
Wed May 4 09:15:26 2005
@@ -29,7 +29,25 @@
import org.apache.beehive.netui.databinding.datagrid.api.rendering.StyleModel;
/**
- *
+ * <p>
+ * Abstract class used by the data grid to create model objects used for state
+ * management and rendering. This abstraction exists in order to all the data
grid's
+ * implementation to be configurable. Various data grid features are exposed
here including
+ * sorting, filtering, and paging. In addition, classes such as the [EMAIL
PROTECTED] PagerRenderer} and
+ * [EMAIL PROTECTED] StyleModel} are created by subclasses in order to provide
a data grid specific
+ * implementation of pager UI or style support.
+ * </p>
+ * <p>
+ * By default, DataGridConfig implementations are not thread safe, but custom
implementations are
+ * free to store instance state as long as the DataGridConfig object lifetimes
are managed
+ * in user code.
+ * </p>
+ * <p>
+ * A specific DataGridConfig object can be created and passed to a data grid
via the
+ * data grid's
+ * [EMAIL PROTECTED]
org.apache.beehive.netui.tags.databinding.datagrid.DataGrid#setDataGridConfig(DataGridConfig)}
+ * method.
+ * </p>
*/
public abstract class DataGridConfig
implements java.io.Serializable {
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfigFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfigFactory.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfigFactory.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridConfigFactory.java
Wed May 4 09:15:26 2005
@@ -21,18 +21,35 @@
import
org.apache.beehive.netui.databinding.datagrid.runtime.util.ExtensionUtil;
/**
- *
+ * <p>
+ * A factory for creating instances of a [EMAIL PROTECTED] DataGridConfig}.
+ * </p>
*/
public final class DataGridConfigFactory {
+ private static final DataGridConfig DEFAULT_DATA_GRID_CONFIG = new
DefaultDataGridConfig();
/* do not construct */
private DataGridConfigFactory() {
}
+ /**
+ * Create an instance of the default [EMAIL PROTECTED] DataGridConfig}
object. When no other configuration
+ * information is available, clients can use this method to create an
instance that
+ * provides sufficient defaults for data grid rendering.
+ *
+ * @return the default data grid config object.
+ */
public static final DataGridConfig getInstance() {
- return new DefaultDataGridConfig();
+ return DEFAULT_DATA_GRID_CONFIG;
}
+ /**
+ * Create an instance of a [EMAIL PROTECTED] DataGridConfig} object given
a [EMAIL PROTECTED] Class} object.
+ * The given class must extend the [EMAIL PROTECTED] DataGridConfig} base
class.
+ *
+ * @param clazz the class to instantiate
+ * @return the new [EMAIL PROTECTED] DataGridConfig} instance
+ */
public static final DataGridConfig getInstance(Class clazz) {
DataGridConfig config =
(DataGridConfig)ExtensionUtil.instantiateClass(clazz, DataGridConfig.class);
return config;
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridResourceProvider.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridResourceProvider.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridResourceProvider.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridResourceProvider.java
Wed May 4 09:15:26 2005
@@ -22,7 +22,10 @@
import java.text.MessageFormat;
/**
- *
+ * <p>
+ * This abstract class provides an abstraction used for obtaining messages and
strings used
+ * during data grid rendering.
+ * </p>
*/
public abstract class DataGridResourceProvider {
@@ -30,30 +33,79 @@
private String _resourceBundlePath = null;
private Locale _locale = null;
+ /**
+ * Abstract method used to obtain a message [EMAIL PROTECTED] String}
given a <code>key</code>
+ *
+ * @param key the key used to lookup a [EMAIL PROTECTED] String}
+ * @return the returned String if a message is found matching the key
+ */
public abstract String getMessage(String key);
+ /**
+ * Abstract method used to format a pattern given a pattern / message key
and an array of
+ * arguments.
+ *
+ * @param key the key to use when looking up a message to format
+ * @param args the arguments to use when formatting a message
+ * @return the formatted message if a message is found matching the key
+ */
public abstract String formatMessage(String key, Object[] args);
+ /**
+ * Accessor for determining if implementations are chaining enabled. When
chaining
+ * is enabled, subclasses must use any nested DataGridResourceProvider
instances to
+ * lookup messages. When chaining is enabled, the default messages for
the data grid
+ * will be returned. When chaining is disabled, implementations are free
to
+ * hide message keys.
+ *
+ * @return <code>true</code> if chaining is enabled; <code>false</code>
otherwise
+ */
public boolean isEnableChaining() {
return _enableChaining;
}
+ /**
+ * Setter for enabling or disabling chaining
+ *
+ * @param enableChaining the new chaining enabled value
+ */
public void setEnableChaining(boolean enableChaining) {
_enableChaining = enableChaining;
}
+ /**
+ * Set the [EMAIL PROTECTED] Locale} in which a message [EMAIL PROTECTED]
String} should be looked up.
+ *
+ * @param locale the [EMAIL PROTECTED] Locale} to use
+ */
public void setLocale(Locale locale) {
_locale = locale;
}
+ /**
+ * Accessor for obtaining the [EMAIL PROTECTED] Locale} used when looking
up messages.
+ *
+ * @return the [EMAIL PROTECTED] Locale} used for message lookup or
<code>null</code> if no [EMAIL PROTECTED] Locale} was set
+ */
public Locale getLocale() {
return _locale;
}
+ /**
+ * Set the path used for creating a [EMAIL PROTECTED] ResourceBundle}
object.
+ *
+ * @param resourceBundlePath the path to a resource bundle
+ */
public void setResourceBundlePath(String resourceBundlePath) {
_resourceBundlePath = resourceBundlePath;
}
+ /**
+ * Accessor for obtaining the path to the resource bundle used by a
DataGridResourceProvider
+ * implementation.
+ *
+ * @return the path to the [EMAIL PROTECTED] ResourceBundle}
+ */
public String getResourceBundlePath() {
return _resourceBundlePath;
}
@@ -63,7 +115,16 @@
return rb;
}
+ /**
+ * Internal convenience method that is used to format a message given a
pattern
+ * and a set of arguments.
+ *
+ * @param pattern the pattern to format
+ * @param args the arguments to use when formatting
+ * @return the formatted string
+ */
protected String internalFormatMessage(String pattern, Object[] args) {
+ /* todo: perf -- could the MessageFormat objects be cached? */
MessageFormat format = new MessageFormat(pattern);
String msg = format.format(args).toString();
return msg;
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java
Wed May 4 09:15:26 2005
@@ -22,7 +22,16 @@
import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
/**
- *
+ * <p>
+ * A class used to encapsulate the default state information for a data grid.
All grids are
+ * capable of supporting sorting, filtering, and paging. This class holds the
JavaBean model
+ * objects that maintain the sort, filter, and page state of a data grid.
+ * </p>
+ * <p>
+ * Instances of DataGridState can live longer than a single request. As a
result, DataGridState
+ * objects are serializable, so subclasses should avoid non-transient
references to objects
+ * like the [EMAIL PROTECTED] javax.servlet.http.HttpServletRequest}.
+ * </p>
*/
public class DataGridState
implements java.io.Serializable {
@@ -31,26 +40,56 @@
private SortModel _sortModel;
private PagerModel _pagerModel;
+ /**
+ * Get the [EMAIL PROTECTED] SortModel} for a data grid.
+ *
+ * @return the [EMAIL PROTECTED] SortModel}
+ */
public SortModel getSortModel() {
return _sortModel;
}
+ /**
+ * Set the [EMAIL PROTECTED] SortModel} for a data grid.
+ *
+ * @param sortModel the new [EMAIL PROTECTED] SortModel}
+ */
public void setSortModel(SortModel sortModel) {
_sortModel = sortModel;
}
+ /**
+ * Set the [EMAIL PROTECTED] FilterModel} for the data grid
+ *
+ * @return the [EMAIL PROTECTED] FilterModel}
+ */
public FilterModel getFilterModel() {
return _filterModel;
}
+ /**
+ * Set the [EMAIL PROTECTED] FilterModel} for the data grid
+ *
+ * @param filterModel the new [EMAIL PROTECTED] FilterModel}
+ */
public void setFilterModel(FilterModel filterModel) {
_filterModel = filterModel;
}
+ /**
+ * Get the [EMAIL PROTECTED] PagerModel} for the data grid
+ *
+ * @return the [EMAIL PROTECTED] PagerModel}
+ */
public PagerModel getPagerModel() {
return _pagerModel;
}
+ /**
+ * Set the [EMAIL PROTECTED] PagerModel} for the data grid
+ *
+ * @param pagerModel the new [EMAIL PROTECTED] PagerModel}
+ */
public void setPagerModel(PagerModel pagerModel) {
_pagerModel = pagerModel;
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridURLBuilder.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridURLBuilder.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridURLBuilder.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridURLBuilder.java
Wed May 4 09:15:26 2005
@@ -19,8 +19,9 @@
import java.util.Map;
-import org.apache.beehive.netui.databinding.datagrid.api.sort.SortDirection;
-
+/**
+ *
+ */
public abstract class DataGridURLBuilder {
public abstract Map getQueryParams();
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/CellDecoratorException.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/CellDecoratorException.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/CellDecoratorException.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/CellDecoratorException.java
Wed May 4 09:15:26 2005
@@ -18,23 +18,43 @@
package org.apache.beehive.netui.databinding.datagrid.api.exceptions;
/**
- *
+ * Exception thrown when an error occurs while rendering a
+ * [EMAIL PROTECTED]
org.apache.beehive.netui.databinding.datagrid.api.rendering.CellDecorator}.
*/
public class CellDecoratorException
extends RuntimeException {
+ /**
+ * Default constructor
+ */
public CellDecoratorException() {
super();
}
+ /**
+ * Constructor with cause message
+ *
+ * @param message
+ */
public CellDecoratorException(String message) {
super(message);
}
+ /**
+ * Constructor with cause
+ *
+ * @param cause
+ */
public CellDecoratorException(Throwable cause) {
super(cause);
}
+ /**
+ * Constructor with message and cause
+ *
+ * @param message
+ * @param cause
+ */
public CellDecoratorException(String message, Throwable cause) {
super(message, cause);
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/DataGridExtensionException.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/DataGridExtensionException.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/DataGridExtensionException.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/DataGridExtensionException.java
Wed May 4 09:15:26 2005
@@ -18,23 +18,41 @@
package org.apache.beehive.netui.databinding.datagrid.api.exceptions;
/**
- * Exception thrown when an error occurs while extending the data grid.
+ * Exception thrown when an error occurs while extending the data grid. This
+ * exception could result for many reasons all of which are related to
configuring
+ * data grid features.
*/
public class DataGridExtensionException
extends RuntimeException {
+ /**
+ * Default constructor
+ */
public DataGridExtensionException() {
super();
}
+ /**
+ * Constructor with cause message
+ *
+ * @param message
+ */
public DataGridExtensionException(String message) {
super(message);
}
+ /**
+ * Constructor with cause
+ *
+ * @param cause
+ */
public DataGridExtensionException(Throwable cause) {
super(cause);
}
+ /**
+ * Constructor with cause and message
+ */
public DataGridExtensionException(String message, Throwable cause) {
super(message, cause);
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/IllegalFilterException.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/IllegalFilterException.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/IllegalFilterException.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/exceptions/IllegalFilterException.java
Wed May 4 09:15:26 2005
@@ -18,23 +18,40 @@
package org.apache.beehive.netui.databinding.datagrid.api.exceptions;
/**
- *
+ * Exception thrown when a [EMAIL PROTECTED]
org.apache.beehive.netui.databinding.datagrid.api.filter.Filter}
+ * object is invalid while being manipulated by the data grid framework.
*/
public class IllegalFilterException
extends RuntimeException {
+ /**
+ * Default constructor
+ */
public IllegalFilterException() {
super();
}
+ /**
+ * Constructor with cause message
+ * @param message
+ */
public IllegalFilterException(String message) {
super(message);
}
+ /**
+ * Constructor with cause
+ * @param cause
+ */
public IllegalFilterException(Throwable cause) {
super(cause);
}
+ /**
+ * Constructor with cause and message
+ * @param message
+ * @param cause
+ */
public IllegalFilterException(String message, Throwable cause) {
super(message, cause);
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/rendering/DataGridTagModel.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/rendering/DataGridTagModel.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/rendering/DataGridTagModel.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/rendering/DataGridTagModel.java
Wed May 4 09:15:26 2005
@@ -17,7 +17,6 @@
*/
package org.apache.beehive.netui.databinding.datagrid.api.rendering;
-import java.util.Map;
import java.util.HashMap;
import javax.servlet.jsp.JspContext;
import javax.servlet.http.HttpServletRequest;
@@ -35,15 +34,44 @@
import org.apache.beehive.netui.util.Bundle;
/**
- *
+ * <p>
+ * The DataGridTagModel is a JavaBean that is exposed by the NetUI data grid
tag into
+ * the [EMAIL PROTECTED] javax.servlet.jsp.PageContext} in a JSP. This bean
exposes state and services
+ * which can be data bound by an expression language in a JSP.
+ * </p>
+ * <p>
+ * </p>
*/
public class DataGridTagModel {
+ /**
+ * The render state used when the data grid performs its first pass
through its tag body.
+ */
public static final int RENDER_STATE_START = 10;
+
+ /**
+ * The render state used when the data grid is rendering the caption tag.
+ */
public static final int RENDER_STATE_CAPTION = 20;
+
+ /**
+ * The render state used when the data grid is rendering the header tag.
+ */
public static final int RENDER_STATE_HEADER = 30;
+
+ /**
+ * The render state used when the data grid is rendering the data rows.
+ */
public static final int RENDER_STATE_GRID = 40;
+
+ /**
+ * The render state used when the data grid is rendering the footer.
+ */
public static final int RENDER_STATE_FOOTER = 50;
+
+ /**
+ * The render state used when the data grid has completed rendering.
+ */
public static final int RENDER_STATE_END = 60;
private static final int RENDER_STATE_UNINIT = -1;
@@ -64,6 +92,13 @@
private DataGridURLBuilder _urlBuilder = null;
private DataGridConfig _dataGridConfig = null;
+ /**
+ * Constructor used to build a DataGridTagModel.
+ *
+ * @param name the name of the data grid
+ * @param dataGridConfig the [EMAIL PROTECTED] DataGridConfig} object for
a data grid
+ * @param jspContext the [EMAIL PROTECTED] JspContext} for the JSP in
which the data grid's rendering started
+ */
public DataGridTagModel(String name, DataGridConfig dataGridConfig,
JspContext jspContext) {
super();
@@ -78,18 +113,63 @@
_urlBuilder = stateFactory.getDataGridURLBuilder(_name,
_dataGridConfig);
}
+ /**
+ * Accessor for the name of the data grid.
+ *
+ * @return the name of the data grid
+ */
public String getName() {
return _name;
}
+ /**
+ * Accessor for the [EMAIL PROTECTED] JspContext} for the JSP in which the
grid started to render.
+ *
+ * @return the [EMAIL PROTECTED] JspContext}
+ */
public JspContext getJspContext() {
return _jspContext;
}
+ /**
+ * <p>
+ * Accessor for the current render state. This should be used by clients
that need to
+ * affect their behavior based on the data grid's current render state.
This value will
+ * be one of:
+ * <ul>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_START}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_CAPTION}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_HEADER}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_GRID}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_FOOTER}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_END}</li>
+ * </ul>
+ * </p>
+ *
+ * @return the current render state
+ */
public int getRenderState() {
return _renderState;
}
+ /**
+ * <p>
+ * Method that alters the data grid's current render to the new
<code>renderState</code>. If
+ * the provided render state value is unknown, an [EMAIL PROTECTED]
IllegalStateException} is thrown. The
+ * data grid cycles through its state in this order:
+ * <ul>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_START}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_CAPTION}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_HEADER}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_GRID}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_FOOTER}</li>
+ * <li>[EMAIL PROTECTED] DataGridTagModel.RENDER_STATE_END}</li>
+ * </ul>
+ * </p>
+ *
+ * @param renderState the DataGridTagModel's new render state
+ * @throws IllegalStateException if an invalid state is provided
+ */
public void changeRenderState(int renderState) {
switch(_renderState) {
case RENDER_STATE_UNINIT:
@@ -117,16 +197,34 @@
return;
}
+ /**
+ * Accessor for the [EMAIL PROTECTED] PagedDataSet} that is used to render
a data set in the grid.
+ *
+ * @return a [EMAIL PROTECTED] PagedDataSet} for the current data set
+ */
public PagedDataSet getDataSet() {
return _dataSet;
}
- /* todo: would be nice to address this side-effect outside of the setter */
+ /**
+ * Setter for the [EMAIL PROTECTED] PagedDataSet} object. In order to
canonicalize the type used by
+ * the data grid to manipulate the data set, the [EMAIL PROTECTED]
PagedDataSet} is used to
+ * navigate the data set.
+ *
+ * @param dataSet the data set
+ */
public void setDataSet(PagedDataSet dataSet) {
+ /* todo: would be nice to address this side-effect outside of the
setter */
_dataSet = dataSet;
_dataGridState.getPagerModel().setDataSetSize(_dataSet.getSize());
}
+ /**
+ * Accessor for the [EMAIL PROTECTED] PagerRenderer}. This is the [EMAIL
PROTECTED] PagerRenderer} instance that
+ * will be used to render the UI used to display the pager.
+ *
+ * @return the [EMAIL PROTECTED] PagerRenderer} for the data grid
+ */
public PagerRenderer getPagerRenderer() {
if(_pagerRenderer == null)
setPagerRenderer(_dataGridConfig.getDefaultPagerRenderer());
@@ -134,8 +232,13 @@
return _pagerRenderer;
}
- /* todo: would be nice to address this side-effect outside of the setter */
+ /**
+ * Set the [EMAIL PROTECTED] PagerRenderer} used to render the paging UI
for the data grid.
+ *
+ * @param pagerRenderer the [EMAIL PROTECTED] PagerRenderer} to use
+ */
public void setPagerRenderer(PagerRenderer pagerRenderer) {
+ /* todo: would be nice to address this side-effect outside of the
setter */
_pagerRenderer = pagerRenderer;
_pagerRenderer.setDataGridTagModel(this);
}
@@ -204,13 +307,13 @@
overrideResourceProvider.addResourceOverride(key, value);
}
- /* todo: fix the message here to format with the context path */
public String getResourcePath() {
+ /* todo: fix the message here to format with the context path */
return _request.getContextPath() + "/" +
getMessage(IDataGridMessageKeys.DATAGRID_RESOURCE_PATH);
}
- /* todo: move to the DataGridConfig object */
public String getSortImagePath(SortDirection sortDirection) {
+ /* todo: move to the DataGridConfig object */
if(sortDirection == SortDirection.ASCENDING)
return getMessage(IDataGridMessageKeys.SORT_ASC_IMAGE_PATH);
else if(sortDirection == SortDirection.DESCENDING)
@@ -225,36 +328,90 @@
return getMessage(IDataGridMessageKeys.SORT_NONE_IMAGE_PATH);
}
+ /**
+ * Method used to render the data grid's pager UI into the given [EMAIL
PROTECTED] AbstractRenderAppender}.
+ *
+ * @param appender the [EMAIL PROTECTED] AbstractRenderAppender} into
which the pager will be rendered
+ */
public void renderPager(AbstractRenderAppender appender) {
if(getPagerRenderer() != null)
appender.append(getPagerRenderer().render());
}
+ /**
+ * Accessor for obtaining the [EMAIL PROTECTED] DataGridState} object.
This is a JavaBean
+ * property that can be accessed via an expression language in order to
obtain
+ * access to the state information for the data grid stored in the
returned object.
+ *
+ * @return the data grid's [EMAIL PROTECTED] DataGridState}
+ */
public DataGridState getState() {
return _dataGridState;
}
+ /**
+ * Accessor for obtaining the [EMAIL PROTECTED] DataGridURLBuilder}
object. This is a JavaBean
+ * that can be accessed via an expression language in order to obtain
access to the
+ * URL information for the data grid stored in the returned object.
+ *
+ * @return the data grid's [EMAIL PROTECTED] DataGridURLBuilder}
+ */
public DataGridURLBuilder getUrlBuilder() {
return _urlBuilder;
}
+ /**
+ * Accessor for obtaining the current index in the data set. This value
is a zero
+ * based count current item being rendered. For the array {"foo", "bar",
"baz"}, the
+ * indices for each item would be 0, 1, and 2. This value does correspond
to the
+ * index into an Object array or a list, but in an arbitrary Collection,
the index
+ * is simply the number of items that appeared in the Collection before
the current one.
+ *
+ * @return the current index
+ */
public int getCurrentIndex() {
+ assert _dataSet != null;
return _dataSet.getCurrentIndex();
}
+ /**
+ * Accessor for obtaining the current item in the data set.
+ *
+ * @return the current item in the data set
+ */
public Object getCurrentItem() {
+ assert _dataSet != null;
return _dataSet.getCurrentItem();
}
+ /**
+ * Accessor for obtaining the data source expression that was used to data
bind to the data set.
+ *
+ * @return the String for the data source
+ */
public String getDataSource() {
+ assert _dataSet != null;
return _dataSet.getDataSource();
}
+ /**
+ * Accessor for getting the next item in the data set.
+ *
+ * @return the next item in the data set. Note, depending on the data
set, this item could
+ * be <code>null</code>.
+ */
public Object nextDataItem() {
+ assert _dataSet != null;
return _dataSet.next();
}
+ /**
+ * Accessor for determining if there is another item in the data set.
+ *
+ * @return <code>true</code> if there is a next item; <code>false</code>
otherwise.
+ */
public boolean hasNextDataItem() {
+ assert _dataSet != null;
return _dataSet.hasNext();
}
@@ -263,6 +420,16 @@
Implementation specifics
------------------------------------------------------------- */
+
+ /**
+ * <p>
+ * An internal class that represents a [EMAIL PROTECTED]
DataGridResourceProvider} that supports
+ * property-by-property overrides. A JSP is able to specify message keys
whose values
+ * to override; in situations where this functionality is used, this class
provides
+ * the [EMAIL PROTECTED] DataGridResourceProvider} abstraction that
implements this override
+ * functionality.
+ * </p>
+ */
private final class OverridableDataGridResourceProvider
extends DataGridResourceProvider {
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractCell.java
Wed May 4 09:15:26 2005
@@ -24,11 +24,9 @@
import
org.apache.beehive.netui.databinding.datagrid.api.rendering.DataGridTagModel;
import org.apache.beehive.netui.databinding.datagrid.api.rendering.CellModel;
-import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
-import org.apache.beehive.netui.tags.html.IFormattable;
import org.apache.beehive.netui.tags.html.HtmlConstants;
import org.apache.beehive.netui.tags.html.FormatTag.Formatter;
import org.apache.beehive.netui.util.Bundle;
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
Wed May 4 09:15:26 2005
@@ -31,14 +31,10 @@
import org.apache.beehive.netui.databinding.datagrid.api.filter.FilterModel;
import org.apache.beehive.netui.tags.IAttributeConsumer;
import org.apache.beehive.netui.tags.IBehaviorConsumer;
-import org.apache.beehive.netui.tags.TagConfig;
-import org.apache.beehive.netui.tags.javascript.ScriptRequestState;
import org.apache.beehive.netui.tags.html.HtmlConstants;
-import org.apache.beehive.netui.tags.html.Form;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.TdTag;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
-import org.apache.beehive.netui.tags.rendering.AbstractHtmlControlState;
import org.apache.beehive.netui.util.Bundle;
/**
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Caption.java
Wed May 4 09:15:26 2005
@@ -24,7 +24,6 @@
import javax.servlet.jsp.JspContext;
import javax.servlet.http.HttpServletRequest;
-import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.tags.html.HtmlConstants;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.CaptionTag;
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java
Wed May 4 09:15:26 2005
@@ -19,10 +19,8 @@
import javax.servlet.jsp.JspContext;
-import
org.apache.beehive.netui.databinding.datagrid.api.exceptions.DataGridExtensionException;
import
org.apache.beehive.netui.databinding.datagrid.api.rendering.DataGridTagModel;
import org.apache.beehive.netui.databinding.datagrid.api.rendering.CellModel;
-import org.apache.beehive.netui.util.logging.Logger;
/**
*
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Footer.java
Wed May 4 09:15:26 2005
@@ -24,7 +24,6 @@
import javax.servlet.jsp.JspContext;
import javax.servlet.http.HttpServletRequest;
-import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.tags.IHtmlEvents;
import org.apache.beehive.netui.tags.IHtmlI18n;
import org.apache.beehive.netui.tags.html.HtmlConstants;
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Header.java
Wed May 4 09:15:26 2005
@@ -26,7 +26,6 @@
import javax.servlet.jsp.JspContext;
import javax.servlet.http.HttpServletRequest;
-import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.tags.IHtmlI18n;
import org.apache.beehive.netui.tags.IHtmlEvents;
import org.apache.beehive.netui.tags.html.HtmlConstants;
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/RenderPager.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/RenderPager.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/RenderPager.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/RenderPager.java
Wed May 4 09:15:26 2005
@@ -17,11 +17,9 @@
*/
package org.apache.beehive.netui.tags.databinding.datagrid;
-import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.JspException;
import
org.apache.beehive.netui.databinding.datagrid.api.rendering.DataGridTagModel;
-import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.util.Bundle;
/**
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/SpanCell.java
Wed May 4 09:15:26 2005
@@ -34,8 +34,18 @@
import org.apache.beehive.netui.tags.IHtmlEvents;
/**
- * @jsptagref.tagdescription Renders a column of data in a data grid.
- * @netui:tag name="spanCell" description="Renders a column of data in a NetUI
grid" body-content="scriptless"
+ * <p>
+ * Data grid cell that renders an HTML <span> tag containing the tag's
<code>value</code> attribute. The
+ * span cell is rendered inside of an HTML table <td>. The span cell
supports various nested tags including
+ * those that provide formatting via the NetUI [EMAIL PROTECTED] IFormattable}
interface and those that augment the
+ * available attribute set via the NetUI [EMAIL PROTECTED]
org.apache.beehive.netui.tags.IAttributeConsumer} interface.
+ * </p>
+ *
+ * @jsptagref.tagdescription Data grid cell that renders an HTML <span>
tag containing the tag's
+ * <code>value</code> attribute.
+ *
+ * @netui:tag name="spanCell" description="Data grid cell that renders its
value attribute into an HTML <span>"
+ * body-content="scriptless"
*/
public class SpanCell
extends AbstractHtmlTableCell
@@ -47,15 +57,20 @@
private SpanCellModel _spanCellModel = new SpanCellModel();
private SpanTag.State _spanState = _spanCellModel.getSpanState();
+ /**
+ * The name of this tag; this value is used for error reporting.
+ *
+ * @return the String name of this tag
+ */
public String getTagName() {
return "SpanCell";
}
/**
- * Sets the onClick javascript event.
+ * Sets the onClick javascript event for the HTML span.
*
- * @param onClick - the onClick event.
- * @jsptagref.attributedescription The onClick JavaScript event.
+ * @param onClick - the onClick event for the HTML span.
+ * @jsptagref.attributedescription The onClick JavaScript event for the
HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onClick</i>
* @netui:attribute required="false" rtexprvalue="true" description="The
onClick JavaScript event."
@@ -65,130 +80,130 @@
}
/**
- * Sets the onDblClick javascript event.
+ * Sets the onDblClick javascript event for the HTML span.
*
- * @param onDblClick - the onDblClick event.
- * @jsptagref.attributedescription The onDblClick JavaScript event.
+ * @param onDblClick - the onDblClick event for the HTML span.
+ * @jsptagref.attributedescription The onDblClick JavaScript event for the
HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onDblClick</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onDblClick JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onDblClick JavaScript event for the HTML span."
*/
public void setOnDblClick(String onDblClick) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONDBLCLICK, onDblClick);
}
/**
- * Sets the onKeyDown javascript event.
+ * Sets the onKeyDown javascript event for the HTML span.
*
- * @param onKeyDown - the onKeyDown event.
- * @jsptagref.attributedescription The onKeyDown JavaScript event.
+ * @param onKeyDown - the onKeyDown event for the HTML span.
+ * @jsptagref.attributedescription The onKeyDown JavaScript event for the
HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onKeyDown</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyDown JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyDown JavaScript event for the HTML span."
*/
public void setOnKeyDown(String onKeyDown) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONKEYDOWN, onKeyDown);
}
/**
- * Sets the onKeyUp javascript event.
+ * Sets the onKeyUp javascript event for the HTML span.
*
* @param onKeyUp - the onKeyUp event.
- * @jsptagref.attributedescription The onKeyUp JavaScript event.
+ * @jsptagref.attributedescription The onKeyUp JavaScript event for the
HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onKeyUp</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyUp JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyUp JavaScript event for the HTML span."
*/
public void setOnKeyUp(String onKeyUp) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONKEYUP, onKeyUp);
}
/**
- * Sets the onKeyPress javascript event.
+ * Sets the onKeyPress javascript event for the HTML span.
*
* @param onKeyPress - the onKeyPress event.
- * @jsptagref.attributedescription The onKeyPress JavaScript event.
+ * @jsptagref.attributedescription The onKeyPress JavaScript event for the
HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onKeyPress</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyPress JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyPress JavaScript event for the HTML span."
*/
public void setOnKeyPress(String onKeyPress) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONKEYPRESS, onKeyPress);
}
/**
- * Sets the onMouseDown javascript event.
+ * Sets the onMouseDown javascript event for the HTML span.
*
* @param onMouseDown - the onMouseDown event.
- * @jsptagref.attributedescription The onMouseDown JavaScript event.
+ * @jsptagref.attributedescription The onMouseDown JavaScript event for
the HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onMouseDown</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseDown JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseDown JavaScript event for the HTML span."
*/
public void setOnMouseDown(String onMouseDown) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEDOWN, onMouseDown);
}
/**
- * Sets the onMouseUp javascript event.
+ * Sets the onMouseUp javascript event for the HTML span.
*
* @param onMouseUp - the onMouseUp event.
- * @jsptagref.attributedescription The onMouseUp JavaScript event.
+ * @jsptagref.attributedescription The onMouseUp JavaScript event for the
HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onMouseUp</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseUp JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseUp JavaScript event for the HTML span."
*/
public void setOnMouseUp(String onMouseUp) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEUP, onMouseUp);
}
/**
- * Sets the onMouseMove javascript event.
+ * Sets the onMouseMove javascript event for the HTML span.
*
* @param onMouseMove - the onMouseMove event.
- * @jsptagref.attributedescription The onMouseMove JavaScript event.
+ * @jsptagref.attributedescription The onMouseMove JavaScript event for
the HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onMouseMove</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseMove JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseMove JavaScript event for the HTML span."
*/
public void setOnMouseMove(String onMouseMove) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEMOVE, onMouseMove);
}
/**
- * Sets the onMouseOut javascript event.
+ * Sets the onMouseOut javascript event for the HTML span.
*
* @param onMouseOut - the onMouseOut event.
- * @jsptagref.attributedescription The onMouseOut JavaScript event.
+ * @jsptagref.attributedescription The onMouseOut JavaScript event for the
HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onMouseOut</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseOut JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseOut JavaScript event for the HTML span."
*/
public void setOnMouseOut(String onMouseOut) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEOUT, onMouseOut);
}
/**
- * Sets the onMouseOver javascript event.
+ * Sets the onMouseOver javascript event for the HTML span.
*
* @param onMouseOver - the onMouseOver event.
- * @jsptagref.attributedescription The onMouseOver JavaScript event.
+ * @jsptagref.attributedescription The onMouseOver JavaScript event for
the HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_onMouseOver</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseOver JavaScript event."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseOver JavaScript event for the HTML span."
*/
public void setOnMouseOver(String onMouseOver) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEOVER, onMouseOver);
}
/**
- * Sets the style of the rendered html tag.
+ * Sets the style for the HTML span.
*
* @param style - the html style.
- * @jsptagref.attributedescription The style.
+ * @jsptagref.attributedescription The style for the HTML span
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_style</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
style."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
style for the HTML span"
*/
public void setStyle(String style) {
if("".equals(style)) return;
@@ -197,13 +212,13 @@
}
/**
- * Sets the style class of the rendered html tag.
+ * Sets the style class for the HTML span.
*
* @param styleClass - the html style class.
- * @jsptagref.attributedescription The style class.
+ * @jsptagref.attributedescription The style class for the HTML span
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_style_class</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
style class."
+ * @netui:attribute required="false" rtexprvalue="true" description="The
style class for the HTML span."
*/
public void setStyleClass(String styleClass) {
if("".equals(styleClass)) return;
@@ -212,26 +227,26 @@
}
/**
- * Sets the value of the title attribute.
+ * Sets the value of the title attribute for the HTML span.
*
* @param title
- * @jsptagref.attributedescription The title.
+ * @jsptagref.attributedescription The title for the HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_title</i>
- * @netui:attribute required="false" rtexprvalue="true" description="The
title. "
+ * @netui:attribute required="false" rtexprvalue="true" description="The
title for the HTML span."
*/
public void setTitle(String title) {
_spanState.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.TITLE, title);
}
/**
- * Sets the lang attribute for the HTML element.
+ * Sets the lang attribute for the HTML span.
* @param lang
- * @jsptagref.attributedescription The lang.
+ * @jsptagref.attributedescription The lang for the HTML span.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_lang</i>
* @netui:attribute required="false" rtexprvalue="true"
- * description="The lang."
+ * description="The lang for the HTML span"
*/
public void setLang(String lang)
{
@@ -239,13 +254,13 @@
}
/**
- * Sets the lang attribute for the HTML element.
+ * Sets the dir attribute for the HTML span.
* @param dir
* @jsptagref.attributedescription The dir.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_dir</i>
* @netui:attribute required="false" rtexprvalue="true"
- * description="The dir."
+ * description="The dir for the HTML span."
*/
public void setDir(String dir)
{
@@ -253,14 +268,20 @@
}
/**
- * Set the name of the tagId for the span.
+ * <p>
+ * Set the name of the tagId for the HTML span. This value will have the
index of the current data item
+ * in the data set appended to the tagId so that the identifiers are
unique in the rendered JSP.
+ * </p>
+ * <p>
+ * For example, if a data set contains {"foo", "bar", "baz"} rendered
using a spanCell with a tagId
+ * "theTagId", the resulting tagId values will be {"theTagId0",
"theTagId1", "theTagId2"}.
*
- * @param tagId - the the name of the tagId for the span.
+ * @param tagId - the the name of the tagId for the HTML span.
* @jsptagref.attributedescription The tagId.
* @jsptagref.databindable false
* @jsptagref.attributesyntaxvalue <i>string_tagId</i>
* @netui:attribute required="false" rtexprvalue="true"
- * description="String value. Sets the id (or name) attribute of the
rendered HTML tag. "
+ * description="String value. Sets the id (or name) attribute of the
rendered HTML span."
*/
public void setTagId(String tagId)
throws JspException {
@@ -268,12 +289,38 @@
}
/**
+ * <p>
+ * Set the value rendered inside of the HTML span. This is the visible
text that is displayed in the HTML
+ * rendered by this tag.
+ * </p>
+ *
+ * @jsptagref.attributedescription The value of the visible text rendered
inside of the HTML span.
+ * @jsptagref.databindable false
* @netui:attribute required="true" rtexprvalue="true"
*/
public void setValue(String value) {
_spanCellModel.setValue(value);
}
+ /**
+ * <p>
+ * Implementation of [EMAIL PROTECTED]
org.apache.beehive.netui.tags.IAttributeConsumer} interface. This
+ * allows a page author to add additional attributes to the HTML rendered
by this tag. The attribute
+ * facets which can be consumed include:
+ * <ul>
+ * <li><code>span</code> -- attributes set using this facet will be
rendered as HTML attributes on the
+ * rendered HTML <span> tag.</li>
+ * </ul>
+ * </p>
+ * <p>
+ * This tag also accepts facets supported by [EMAIL PROTECTED]
AbstractHtmlTableCell#setAttribute(String, String, String)}
+ * </p>
+ *
+ * @param name the name of the attribute
+ * @param value the value of the attribute
+ * @param facet the facet for the attribute; this value must be match one
of the facets supported by the JSP tags
+ * @throws JspException thrown when the given facet String is not
recognized as a valid facet name
+ */
public void setAttribute(String name, String value, String facet)
throws JspException {
if(facet == null || facet.equals(SPAN_FACET_NAME))
@@ -282,6 +329,11 @@
super.setAttribute(name, value, facet);
}
+ /**
+ * Render the cell's contents. This method implements support for
executing the span cell's decorator.
+ * @param appender the [EMAIL PROTECTED] AbstractRenderAppender} used to
collect the rendered output
+ * @param jspFragmentOutput the String result of having evaluated the span
cell's [EMAIL PROTECTED] javax.servlet.jsp.tagext.JspFragment}
+ */
protected void renderDataCellContents(AbstractRenderAppender appender,
String jspFragmentOutput) {
/* render any JavaScript needed to support framework features */
if (_spanState.id != null) {
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/TemplateCell.java
Wed May 4 09:15:26 2005
@@ -22,11 +22,45 @@
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
/**
- * @jsptagref.tagdescription Renders a column templated by the body of the JSP
tag.
- * @netui:tag name="templateCell" description="Renders a column templated by
the body of the JSP tag" body-content="scriptless"
+ * <p>
+ * Data grid cell that renders the content contained inside of its body inside
of an HTML <td>
+ * tag. The body of the template cell can contain any JSP markup that is
legal to nest inside of
+ * a [EMAIL PROTECTED] javax.servlet.jsp.tagext.SimpleTag}.
+ * </p>
+ * <p>
+ * The set of JSP implicit objects available to the body include:
+ * <ul>
+ * <li><code>dataGridModel</code> -- the [EMAIL PROTECTED]
org.apache.beehive.netui.databinding.datagrid.api.rendering.DataGridTagModel}
+ * for the cell's containing data grid.</li>
+ * <li><code>container</code> -- the [EMAIL PROTECTED]
org.apache.beehive.netui.script.common.IDataAccessProvider} instance
+ * that exposes the current data item and the current item's index</li>
+ * <li></li>
+ * </ul>
+ * </p>
+ * <p>
+ * The HTML events, core attributes, and internationalization JSP tag
attributes are applied to the
+ * <td>.
+ * </p>
+ * <p>
+ * The templateCell can be used to render HTML UI that is not supported with
other data grid cell types. For example,
+ * to build UI that will POST data to a form, the NetUI [EMAIL PROTECTED]
org.apache.beehive.netui.tags.html.TextBox} tag can
+ * be used as:
+ * <pre>
+ * <netui-data:templateCell>
+ * <netui:textBox dataSource="container.item.name"/>
+ * </netui-data:templateCell>
+ * </pre>
+ * </p>
+ *
+ * @jsptagref.tagdescription Data grid cell that renders the content contained
inside of its body inside of an
+ * HTML <td> tag. The body of the template cell can contain any JSP
markup that is legal to nest inside of
+ * a [EMAIL PROTECTED] javax.servlet.jsp.tagext.SimpleTag}.
+ *
+ * @netui:tag name="templateCell" description="Data grid cell that renders the
content resulting from evaluating its body"
+ * body-content="scriptless"
*/
public class TemplateCell
- extends AbstractHtmlTableCell {
+ extends AbstractHtmlTableCell {
public String getTagName() {
return "TemplateCell";
Modified:
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/iterator/ResultSetIterator.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/iterator/ResultSetIterator.java?rev=168140&r1=168139&r2=168140&view=diff
==============================================================================
---
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/iterator/ResultSetIterator.java
(original)
+++
incubator/beehive/trunk/netui/src/util/org/apache/beehive/netui/util/iterator/ResultSetIterator.java
Wed May 4 09:15:26 2005
@@ -29,7 +29,9 @@
import org.apache.beehive.netui.util.logging.Logger;
/**
- *
+ * <p>
+ * [EMAIL PROTECTED] Iterator} implementation for [EMAIL PROTECTED] ResultSet}.
+ * </p>
*/
public class ResultSetIterator
implements Iterator {
@@ -40,11 +42,17 @@
private String[] _columnNames = null;
private ResultSet _rs = null;
- public ResultSetIterator(ResultSet rs) {
- if(rs == null)
+ /**
+ * Create a ResultSetIterator for the <code>resultSet</code>.
+ *
+ * @param resultSet the ResultSet to iterate over
+ * @throws IllegalStateException when a [EMAIL PROTECTED] SQLException}
occurs manipulating the ResultSet
+ */
+ public ResultSetIterator(ResultSet resultSet) {
+ if(resultSet == null)
return;
- _rs = rs;
+ _rs = resultSet;
try {
// handle RSMD here to build a template map that can contain the
data for each row
@@ -65,7 +73,10 @@
}
/**
+ * Check for a subsequent item in the ResultSet.
*
+ * @return <code>true</code> if there is another element;
<code>false</code> otherwise
+ * @throws IllegalStateException when a [EMAIL PROTECTED] SQLException}
occurs advancing the ResultSet
*/
public boolean hasNext() {
if(_rs == null)
@@ -86,7 +97,11 @@
}
/**
+ * Advance to the next row in the ResultSet.
*
+ * @return a [EMAIL PROTECTED] java.util.Map} containing the data in the
next row. The keys in the map
+ * correspond to the ResultSet's column names and are case insensitive
when checking a key.
+ * @throws NoSuchElementException if the ResultSet is null or the end of
the ResultSet has been reached
*/
public Object next() {
if(_rs == null)
@@ -110,6 +125,11 @@
}
}
+ /**
+ * The remove operation is unsupported on the ResultSetIterator.
+ *
+ * @throws UnsupportedOperationException always
+ */
public void remove() {
throw new
UnsupportedOperationException(Bundle.getErrorString("IteratorFactory_Iterator_removeUnsupported",
new
Object[]{this.getClass().getName()}));