Author: ekoneil
Date: Mon Feb 21 14:21:32 2005
New Revision: 154732
URL: http://svn.apache.org/viewcvs?view=rev&rev=154732
Log:
Add support for enabling / disabling HTML table row group rendering. It's now
possible to toggle the rendering of <tbody>, <thead>, and <tfoot> so that they
are all present or all omitted.
This also now supports re-ordering <tfoot> and <tbody> when enabled to conform
to the HTML 4.01 spec.
BEEHIVE-319 data grid needs to support thead / tbody / tfoot reordering
BB: self
DRT: NetUI pass
BVT: NetUI pass
Added:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TBodyTag.java
(with props)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/rowGroups.jsp
(with props)
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridRowGroups.xml
(with props)
Modified:
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/databinding/datagrid/runtime/rendering/table/TableRenderer.java
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/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/Rows.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlConstants.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TFootTag.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/THeadTag.java
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TagRenderingBase.java
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCSSPrefix.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionAttributes.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionJavaScript.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomHeaderStyle.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomTagAttributes.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridEmptyColumnsTag.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridEmptyStylePolicy.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridFooterTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridFormatTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridHeaderCellDecorator.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridHeaderTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridImageAnchorColumnTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridImageColumnTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridJavaScriptSmoke.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridModelTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridNestedJSTL.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerBasic.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerCustomSelect.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerDisable.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerEmpty.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerExplicitHref.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerImplicitHref.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerInCaption.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerInFooter.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerOverride.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerRendererSmoke.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridPagerStickyParam.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridScriptletTagFile.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridSimpleSort.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridSmokeTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridTemplateColumnTest.xml
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/XhtmlDataGridSmokeTest.xml
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?view=diff&r1=154731&r2=154732
==============================================================================
---
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
Mon Feb 21 14:21:32 2005
@@ -38,15 +38,14 @@
*/
public class DataGridTagModel {
- /*
- todo: refactor.
- need a DataGridURL type that hides URL keys / creation.
- */
+ /* todo: refactor. need a DataGridURL type that hides URL keys /
creation. */
+
public static final int RENDER_STATE_START = 10;
public static final int RENDER_STATE_CAPTION = 20;
- public static final int RENDER_STATE_GRID = 30;
- public static final int RENDER_STATE_FOOTER = 40;
- public static final int RENDER_STATE_END = 50;
+ public static final int RENDER_STATE_HEADER = 30;
+ public static final int RENDER_STATE_GRID = 40;
+ public static final int RENDER_STATE_FOOTER = 50;
+ public static final int RENDER_STATE_END = 60;
private static final int RENDER_STATE_UNINIT = -1;
private JspContext _jspContext = null;
@@ -55,6 +54,8 @@
private int _renderState = RENDER_STATE_UNINIT;
private boolean _disableDefaultPagerRendering = false;
+ private boolean _renderRowGroups = false;
+
private String _name = null;
private StyleModel _styleModel = null;
private PagerRenderer _pagerRenderer = null;
@@ -99,6 +100,9 @@
_renderState = RENDER_STATE_CAPTION;
break;
case RENDER_STATE_CAPTION:
+ _renderState = RENDER_STATE_HEADER;
+ break;
+ case RENDER_STATE_HEADER:
_renderState = RENDER_STATE_GRID;
break;
case RENDER_STATE_GRID:
@@ -152,6 +156,14 @@
public void setDisableDefaultPagerRendering(boolean
disableDefaultPagerRendering) {
_disableDefaultPagerRendering = disableDefaultPagerRendering;
+ }
+
+ public boolean isRenderRowGroups() {
+ return _renderRowGroups;
+ }
+
+ public void setRenderRowGroups(boolean renderRowGroups) {
+ _renderRowGroups = renderRowGroups;
}
public TableRenderer getTableRenderer() {
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/rendering/table/TableRenderer.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/rendering/table/TableRenderer.java?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/rendering/table/TableRenderer.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/rendering/table/TableRenderer.java
Mon Feb 21 14:21:32 2005
@@ -28,22 +28,29 @@
import org.apache.beehive.netui.tags.rendering.THeadTag;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.TFootTag;
+import org.apache.beehive.netui.tags.rendering.TBodyTag;
/**
*
*/
public final class TableRenderer {
+ private static final TableTag.State TABLE_STATE = new TableTag.State();
private static final CaptionTag.State CAPTION_STATE = new
CaptionTag.State();
private static final THeadTag.State THEAD_STATE = new THeadTag.State();
+ private static final TBodyTag.State TBODY_STATE = new TBodyTag.State();
private static final TFootTag.State TFOOT_STATE = new TFootTag.State();
- private static final TableTag.State TABLE_STATE = new TableTag.State();
private static final TrTag.State TR_STATE = new TrTag.State();
+ private final HttpServletRequest _request;
+
private TagRenderingBase _tableRenderer = null;
private TagRenderingBase _captionRenderer = null;
+
private TagRenderingBase _theadRenderer = null;
+ private TagRenderingBase _tbodyRenderer = null;
private TagRenderingBase _tfootRenderer = null;
+
private TagRenderingBase _trRenderer = null;
private TagRenderingBase _tdRenderer = null;
private TagRenderingBase _thRenderer = null;
@@ -51,15 +58,20 @@
public TableRenderer(HttpServletRequest request) {
super();
- _tableRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TABLE_TAG, request);
- _captionRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.CAPTION_TAG, request);
- _theadRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.THEAD_TAG, request);
- _trRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TR_TAG, request);
- _thRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TH_TAG, request);
- _tdRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TD_TAG, request);
- _tfootRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TFOOT_TAG, request);
+ _request = request;
+ _tableRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TABLE_TAG, _request);
+
+ _thRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TH_TAG, _request);
+ _trRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TR_TAG, _request);
+ _tdRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TD_TAG, _request);
}
+ /* -------------------------------------------------------------
+
+ Table Rendering
+
+ ------------------------------------------------------------- */
+
public void openTable(TableTag.State state, AbstractRenderAppender
appender) {
if(state == null)
state = TABLE_STATE;
@@ -75,28 +87,99 @@
appender.append("\n");
}
- /* todo: caption style support */
public void openCaption(CaptionTag.State state, AbstractRenderAppender
appender) {
if(state == null)
state = CAPTION_STATE;
appender.append("\n");
+
+ if(_captionRenderer == null)
+ _captionRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.CAPTION_TAG, _request);
+
_captionRenderer.doStartTag(appender, state);
}
public void closeCaption(AbstractRenderAppender appender) {
+ if(_captionRenderer == null)
+ throw new IllegalStateException("Encountered a null THeadTag
renderer. Was openCaption called?");
+
_captionRenderer.doEndTag(appender);
appender.append("\n");
}
+ /* -------------------------------------------------------------
+
+ Table Row Group Rendering
+
+ ------------------------------------------------------------- */
+
public final void openTableHead(THeadTag.State state,
AbstractRenderAppender appender) {
if(state == null)
state = THEAD_STATE;
+ if(_theadRenderer == null)
+ _theadRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.THEAD_TAG, _request);
+
appender.append("\n");
_theadRenderer.doStartTag(appender, state);
}
+ public void closeTableHead(AbstractRenderAppender appender) {
+ if(_theadRenderer == null)
+ throw new IllegalStateException("Encountered a null THeadTag
renderer. Was openTableHead called?");
+
+ appender.append("\n");
+ _theadRenderer.doEndTag(appender);
+ appender.append("\n");
+ }
+
+ public void openTableBody(TBodyTag.State state, AbstractRenderAppender
appender) {
+ if(state == null)
+ state = TBODY_STATE;
+
+ if(_tbodyRenderer == null)
+ _tbodyRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TBODY_TAG, _request);
+
+ appender.append("\n");
+ _tbodyRenderer.doStartTag(appender, state);
+ }
+
+ public void closeTableBody(AbstractRenderAppender appender) {
+ if(_tbodyRenderer == null)
+ throw new IllegalStateException("Encountered a null TBodyTag
renderer. Was openTableBody called?");
+
+ appender.append("\n");
+ _tbodyRenderer.doEndTag(appender);
+ }
+
+ public void openTableFoot(TFootTag.State state, AbstractRenderAppender
appender) {
+ if(state == null)
+ state = TFOOT_STATE;
+
+ if(_tfootRenderer == null)
+ _tfootRenderer =
TagRenderingBase.Factory.getRendering(TagRenderingBase.TFOOT_TAG, _request);
+
+ appender.append("\n");
+ _tfootRenderer.doStartTag(appender, state);
+ appender.append("\n");
+ }
+
+ public void closeTableFoot(AbstractRenderAppender appender) {
+ if(_tfootRenderer == null)
+ throw new IllegalStateException("Encountered a null TFootTag
renderer. Was openTableFoot called?");
+
+ appender.append("\n");
+ _tfootRenderer.doEndTag(appender);
+ appender.append("\n");
+ }
+
+
+ /* -------------------------------------------------------------
+
+ Table Row Rendering
+
+ ------------------------------------------------------------- */
+
public final void openHeaderRow(TrTag.State state, AbstractRenderAppender
appender) {
if(state == null)
state = TR_STATE;
@@ -110,11 +193,6 @@
_trRenderer.doEndTag(appender);
}
- public void closeTableHead(AbstractRenderAppender appender) {
- _theadRenderer.doEndTag(appender);
- appender.append("\n");
- }
-
public void openTableRow(TrTag.State state, AbstractRenderAppender
appender) {
appender.append("\n");
_trRenderer.doStartTag(appender, state);
@@ -133,23 +211,16 @@
_trRenderer.doStartTag(appender, state);
}
- public void openTableFoot(TFootTag.State state, AbstractRenderAppender
appender) {
- if(state == null)
- state = TFOOT_STATE;
-
- appender.append("\n");
- _tfootRenderer.doStartTag(appender, state);
- }
-
public void closeFooterRow(AbstractRenderAppender appender) {
appender.append("\n");
_trRenderer.doEndTag(appender);
}
- public void closeTableFoot(AbstractRenderAppender appender) {
- appender.append("\n");
- _tfootRenderer.doEndTag(appender);
- }
+ /* -------------------------------------------------------------
+
+ Table Cell Rendering
+
+ ------------------------------------------------------------- */
public void openHeaderCell(ThTag.State state, AbstractRenderAppender
appender) {
_thRenderer.doStartTag(appender, state);
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?view=diff&r1=154731&r2=154732
==============================================================================
---
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
Mon Feb 21 14:21:32 2005
@@ -39,7 +39,6 @@
import org.apache.beehive.netui.script.common.DataAccessProviderStack;
import org.apache.beehive.netui.tags.ExpressionHandling;
import org.apache.beehive.netui.tags.AbstractSimpleTag;
-import org.apache.beehive.netui.tags.IAttributeConsumer;
import org.apache.beehive.netui.tags.IBehaviorConsumer;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
@@ -62,8 +61,9 @@
private String _stylePolicyName = null;
private String _dataSource = null;
private String _resourceBundlePath = null;
+ private boolean _renderRowGroups = false;
private DataGridConfig _dataGridConfig = null;
- private DataGridTagModel _gridTagModel = null;
+ private DataGridTagModel _dataGridTagModel = null;
public String getTagName() {
return "DataGrid";
@@ -113,6 +113,13 @@
}
/**
+ * @netui:attribute required="false" rtexprvalue="true"
+ */
+ public void setRenderRowGroups(boolean renderRowGroups) {
+ _renderRowGroups = renderRowGroups;
+ }
+
+ /**
* @param name
* @param value
* @param facet
@@ -120,8 +127,8 @@
*/
public void setBehavior(String name, String value, String facet)
throws JspException {
- if(facet.equals(FACET_RESOURCE)) {
- _gridTagModel.addResourceOverride(name, value);
+ if(facet != null && facet.equals(FACET_RESOURCE)) {
+ _dataGridTagModel.addResourceOverride(name, value);
} else {
String s = Bundle.getString("Tags_BehaviorFacetNotSupported", new
Object[]{facet});
throw new JspException(s);
@@ -154,76 +161,103 @@
else resourceProvider =
_dataGridConfig.getResourceProvider(_resourceBundlePath);
resourceProvider.setLocale(JspUtil.getLocale(jspContext));
- _gridTagModel = new DataGridTagModel(_name, _dataGridConfig,
jspContext);
- _gridTagModel.setDataSet(dataSet);
- _gridTagModel.setStyleModel(styleModel);
- _gridTagModel.setTableRenderer(tableRenderer);
- _gridTagModel.setResourceProvider(resourceProvider);
+ _dataGridTagModel = new DataGridTagModel(_name, _dataGridConfig,
jspContext);
+ _dataGridTagModel.setDataSet(dataSet);
+ _dataGridTagModel.setStyleModel(styleModel);
+ _dataGridTagModel.setTableRenderer(tableRenderer);
+ _dataGridTagModel.setResourceProvider(resourceProvider);
+ _dataGridTagModel.setRenderRowGroups(_renderRowGroups);
JspFragment fragment = getJspBody();
if(fragment != null) {
- StringBuilder builder = new StringBuilder(2048);
- AbstractRenderAppender appender = new
StringBuilderRenderAppender(builder);
-
boolean addedDataAccessProvider = false;
try {
+ StringBuilder builder = new StringBuilder(2048);
+ AbstractRenderAppender appender = new
StringBuilderRenderAppender(builder);
+
/* todo: perf -- this doesn't need to happen when the data set
is empty */
DataAccessProviderStack.addDataAccessProvider(this,
getJspContext());
- DataGridUtil.putDataGridTagModel(getJspContext(),
_gridTagModel);
+ DataGridUtil.putDataGridTagModel(getJspContext(),
_dataGridTagModel);
addedDataAccessProvider = true;
+ StringWriter sw = new StringWriter();
/*
allow sub-tags to do work during START before rendering
this makes it possible to have tags out of order and to
have rendering work correctly
-
- todo: perf -- should you be able to turn this off for perf?
*/
- StringWriter sw = new StringWriter();
+ /* todo: perf -- should you be able to turn this off for perf?
*/
fragment.invoke(sw);
/* todo: this needs to move into the DataGridTagModel */
- PagerModel pm =
_gridTagModel.getDataGridState().getPagerModel();
- _gridTagModel.getDataSet().createWindow(pm.getRow(),
pm.getRow() + pm.getPageSize());
+ PagerModel pm =
_dataGridTagModel.getDataGridState().getPagerModel();
+ _dataGridTagModel.getDataSet().createWindow(pm.getRow(),
pm.getRow() + pm.getPageSize());
/* now that the model objects have been initialized, it's time
to start rendering */
-
_gridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_START);
+
_dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_START);
- if(!_gridTagModel.isDisableDefaultPagerRendering())
- _gridTagModel.renderPager(appender);
+ if(!_dataGridTagModel.isDisableDefaultPagerRendering())
+ _dataGridTagModel.renderPager(appender);
TableTag.State tableState = new TableTag.State();
tableState.styleClass = styleModel.getTableClass();
tableRenderer.openTable(tableState, appender);
/* render the caption */
-
_gridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_CAPTION);
+
_dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_CAPTION);
sw = new StringWriter();
fragment.invoke(sw);
String caption = sw.toString();
- if(caption != null && !caption.trim().equals("")) {
+ if(caption != null)
appender.append(caption);
- }
- /* render the grid rows (header and data) */
-
_gridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_GRID);
+ /* render the header */
+
_dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_HEADER);
sw = new StringWriter();
fragment.invoke(sw);
- appender.append(sw.toString());
+ String header = sw.toString();
+ if(header != null)
+ appender.append(header);
+
+ /* intermediate storage for the body and footer content
+ these are required by the HTML spec:
+
http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.3
+ as when the row groups are used, they must be re-ordered so
that
+ <tfoot> preceeds <tbody>
+ */
+
+ String tbody = null;
+ String tfoot = null;
+
+ /* render the body */
+
_dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_GRID);
+ sw = new StringWriter();
+ fragment.invoke(sw);
+ tbody = sw.toString();
/* render the footer */
-
_gridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_FOOTER);
+
_dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_FOOTER);
sw = new StringWriter();
fragment.invoke(sw);
String footer = sw.toString();
String trimmed = footer.trim();
- if(footer != null && !trimmed.trim().equals("")) {
- appender.append(footer);
+ if(footer != null && !trimmed.trim().equals(""))
+ tfoot = footer;
+
+ if(_dataGridTagModel.isRenderRowGroups()) {
+ if(tfoot != null)
+ appender.append(tfoot);
+ appender.append(tbody);
+ }
+ else {
+ appender.append(tbody);
+ if(tfoot != null)
+ appender.append(tfoot);
}
tableRenderer.closeTable(appender);
-
_gridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_END);
+
_dataGridTagModel.changeRenderState(DataGridTagModel.RENDER_STATE_END);
/* todo: when rendering using thead / tfoot / tbody, they need
to be rendered
in order. when not rendering like this, they need to
be written
@@ -246,11 +280,11 @@
* ===========================================================
*/
public int getCurrentIndex() {
- return _gridTagModel.getCurrentIndex();
+ return _dataGridTagModel.getCurrentIndex();
}
public Object getCurrentItem() {
- return _gridTagModel.getCurrentItem();
+ return _dataGridTagModel.getCurrentItem();
}
public Object getCurrentMetadata() {
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?view=diff&r1=154731&r2=154732
==============================================================================
---
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
Mon Feb 21 14:21:32 2005
@@ -21,8 +21,11 @@
import java.io.StringWriter;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspContext;
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;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
@@ -39,7 +42,8 @@
* @netui.tldx:tag whitespace="indent" renderer=""*
*/
public class Footer
- extends AbstractSimpleTag {
+ extends AbstractSimpleTag
+ implements IHtmlEvents, IHtmlI18n {
private TFootTag.State _tfootTag = new TFootTag.State();
@@ -233,29 +237,118 @@
_tfootTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.TITLE, title);
}
+ /**
+ * Sets the value of the horizontal align attribute.
+ *
+ * @param align
+ * @jsptagref.attributedescription The horizontal alignment.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_align</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setAlign(String align) {
+ /* todo: should this enforce left|center|right|justify|char as in the
spec */
+ _tfootTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.ALIGN, align);
+ }
+
+ /**
+ * Sets the value of the horizontal alignment character attribute.
+ *
+ * @param alignChar
+ * @jsptagref.attributedescription The horizontal alignment character.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_alignChar</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment character"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setChar(String alignChar) {
+ _tfootTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.CHAR, alignChar);
+ }
+
+ /**
+ * Sets the value of the horizontal alignment character offset attribute.
+ *
+ * @param alignCharOff
+ * @jsptagref.attributedescription The horizontal alignment character
offset
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_alignCharOff</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment character offset"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setCharoff(String alignCharOff) {
+ _tfootTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.CHAROFF, alignCharOff);
+ }
+
+ /**
+ * Sets the value of the vertical alignment attribute.
+ *
+ * @param align
+ * @jsptagref.attributedescription The vertical alignment.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_align</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's vertical alignment"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setValign(String align) {
+ /* todo: should this enforce top|middle|bottom|baseline as in the spec
*/
+ _tfootTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.VALIGN, align);
+ }
+
+ /**
+ * Sets the value of the language attribute.
+ *
+ * @param lang
+ * @jsptagref.attributedescription The language.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_lang</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's language"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setLang(String lang) {
+ _tfootTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.LANG, lang);
+ }
+
+ /**
+ * Sets the value of the text direction attribute.
+ *
+ * @param dir
+ * @jsptagref.attributedescription The text direction attribute.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_dir</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's text direction"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setDir(String dir) {
+ _tfootTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.DIR, dir);
+ }
+
public void doTag()
throws IOException, JspException {
- DataGridTagModel dgm =
DataGridUtil.getDataGridTagModel(getJspContext());
- if(dgm == null)
- throw new JspException("Unable to find a dataGridModel in the
JspContext");
+ JspContext jspContext = getJspContext();
+ DataGridTagModel dataGridTagModel =
DataGridUtil.getDataGridTagModel(jspContext);
+ if(dataGridTagModel == null)
+ throw new JspException("Unable to find a Data Grid tag model in
the JspContext");
- if(dgm.getRenderState() == DataGridTagModel.RENDER_STATE_FOOTER) {
+ if(dataGridTagModel.getRenderState() ==
DataGridTagModel.RENDER_STATE_FOOTER) {
JspFragment fragment = getJspBody();
if(fragment != null) {
StringWriter sw = new StringWriter();
- TableRenderer tableRenderer = dgm.getTableRenderer();
- StyleModel stylePolicy = dgm.getStyleModel();
- AbstractRenderAppender appender = new
WriteRenderAppender(getJspContext());
+ TableRenderer tableRenderer =
dataGridTagModel.getTableRenderer();
+ assert tableRenderer != null;
+ StyleModel styleModel = dataGridTagModel.getStyleModel();
+ assert styleModel != null;
+ AbstractRenderAppender appender = new
WriteRenderAppender(jspContext);
TrTag.State trState = new TrTag.State();
- trState.styleClass = stylePolicy.getFooterRowClass();
+ trState.styleClass = styleModel.getFooterRowClass();
- /*
+ if(dataGridTagModel.isRenderRowGroups()) {
if(_tfootTag.styleClass == null)
- _tfootTag.styleClass = stylePolicy.getTableFootClass();
+ _tfootTag.styleClass = styleModel.getTableFootClass();
tableRenderer.openTableFoot(_tfootTag, appender);
- */
+ }
tableRenderer.openFooterRow(trState, appender);
@@ -264,9 +357,8 @@
tableRenderer.closeFooterRow(appender);
- /*
+ if(dataGridTagModel.isRenderRowGroups())
tableRenderer.closeTableFoot(appender);
- */
}
}
}
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?view=diff&r1=154731&r2=154732
==============================================================================
---
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
Mon Feb 21 14:21:32 2005
@@ -24,6 +24,8 @@
import javax.servlet.jsp.JspContext;
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;
import org.apache.beehive.netui.tags.rendering.THeadTag;
import org.apache.beehive.netui.tags.rendering.TrTag;
@@ -39,7 +41,8 @@
* @netui.tldx:tag whitespace="indent"
*/
public class Header
- extends AbstractSimpleTag {
+ extends AbstractSimpleTag
+ implements IHtmlEvents, IHtmlI18n {
private THeadTag.State _theadTag = new THeadTag.State();
@@ -233,31 +236,119 @@
_theadTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.TITLE, title);
}
+ /**
+ * Sets the value of the horizontal align attribute.
+ *
+ * @param align
+ * @jsptagref.attributedescription The horizontal alignment.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_align</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setAlign(String align) {
+ /* todo: should this enforce left|center|right|justify|char as in the
spec */
+ _theadTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.ALIGN, align);
+ }
+
+ /**
+ * Sets the value of the horizontal alignment character attribute.
+ *
+ * @param alignChar
+ * @jsptagref.attributedescription The horizontal alignment character.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_alignChar</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment character"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setChar(String alignChar) {
+ _theadTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.CHAR, alignChar);
+ }
+
+ /**
+ * Sets the value of the horizontal alignment character offset attribute.
+ *
+ * @param alignCharOff
+ * @jsptagref.attributedescription The horizontal alignment character
offset
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_alignCharOff</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment character offset"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setCharoff(String alignCharOff) {
+ _theadTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.CHAROFF, alignCharOff);
+ }
+
+ /**
+ * Sets the value of the vertical alignment attribute.
+ *
+ * @param align
+ * @jsptagref.attributedescription The vertical alignment.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_align</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's vertical alignment"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setValign(String align) {
+ /* todo: should this enforce top|middle|bottom|baseline as in the spec
*/
+ _theadTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.VALIGN, align);
+ }
+
+ /**
+ * Sets the value of the languageattribute.
+ *
+ * @param lang
+ * @jsptagref.attributedescription The language.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_lang</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's language"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setLang(String lang) {
+ _theadTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.LANG, lang);
+ }
+
+ /**
+ * Sets the value of the text direction attribute.
+ *
+ * @param dir
+ * @jsptagref.attributedescription The text direction attribute.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_dir</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's text direction"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setDir(String dir) {
+ _theadTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.DIR, dir);
+ }
+
public void doTag()
throws JspException, IOException {
JspContext jspContext = getJspContext();
DataGridTagModel dataGridModel =
DataGridUtil.getDataGridTagModel(jspContext);
if(dataGridModel == null)
- throw new JspException("Unable to find a dataGridModel in the
JspContext");
+ throw new JspException("Unable to find a Data Grid tag model in
the JspContext");
int gridRenderState = dataGridModel.getRenderState();
- if(gridRenderState == DataGridTagModel.RENDER_STATE_GRID) {
+ if(gridRenderState == DataGridTagModel.RENDER_STATE_HEADER) {
StringBuilder content = new StringBuilder();
AbstractRenderAppender appender = new
StringBuilderRenderAppender(content);
- StyleModel stylePolicy = dataGridModel.getStyleModel();
- assert stylePolicy != null;
+ StyleModel styleModel = dataGridModel.getStyleModel();
+ assert styleModel != null;
TableRenderer tableRenderer = dataGridModel.getTableRenderer();
assert tableRenderer != null;
- _theadTag.styleClass = (_theadTag.styleClass != null ?
_theadTag.styleClass : stylePolicy.getTableHeadClass());
- tableRenderer.openTableHead(_theadTag, appender);
+ if(dataGridModel.isRenderRowGroups()) {
+ _theadTag.styleClass = (_theadTag.styleClass != null ?
_theadTag.styleClass : styleModel.getTableHeadClass());
+ tableRenderer.openTableHead(_theadTag, appender);
+ }
TrTag.State trState = new TrTag.State();
- trState.styleClass = stylePolicy.getHeaderRowClass();
+ trState.styleClass = styleModel.getHeaderRowClass();
tableRenderer.openHeaderRow(trState, appender);
JspFragment fragment = getJspBody();
@@ -269,9 +360,10 @@
tableRenderer.closeHeaderRow(appender);
- tableRenderer.closeTableHead(appender);
+ if(dataGridModel.isRenderRowGroups())
+ tableRenderer.closeTableHead(appender);
- getJspContext().getOut().write(content.toString());
+ jspContext.getOut().write(content.toString());
}
}
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Rows.java
Mon Feb 21 14:21:32 2005
@@ -27,9 +27,14 @@
import org.apache.beehive.netui.databinding.datagrid.api.rendering.StyleModel;
import
org.apache.beehive.netui.databinding.datagrid.runtime.rendering.table.TableRenderer;
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;
import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.TrTag;
+import org.apache.beehive.netui.tags.rendering.TBodyTag;
+import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
/**
* @netui:tag name="rows" description="Container tag for columsn that will
render in the grid"
@@ -38,12 +43,287 @@
* whitespace="indent" requiredparent="dataGrid"
*/
public class Rows
- extends AbstractSimpleTag {
+ extends AbstractSimpleTag
+ implements IHtmlEvents, IHtmlI18n {
+
+ private TBodyTag.State _tbodyTag = new TBodyTag.State();
public String getTagName() {
return "Rows";
}
+ /**
+ * Sets the onClick javascript event.
+ *
+ * @param onClick - the onClick event.
+ * @jsptagref.attributedescription The onClick JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onClick</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onClick JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnClick(String onClick) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONCLICK, onClick);
+ }
+
+ /**
+ * Sets the onDblClick javascript event.
+ *
+ * @param onDblClick - the onDblClick event.
+ * @jsptagref.attributedescription The onDblClick JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onDblClick</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onDblClick JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnDblClick(String onDblClick) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONDBLCLICK, onDblClick);
+ }
+
+ /**
+ * Sets the onKeyDown javascript event.
+ *
+ * @param onKeyDown - the onKeyDown event.
+ * @jsptagref.attributedescription The onKeyDown JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onKeyDown</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyDown JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnKeyDown(String onKeyDown) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONKEYDOWN, onKeyDown);
+ }
+
+ /**
+ * Sets the onKeyUp javascript event.
+ *
+ * @param onKeyUp - the onKeyUp event.
+ * @jsptagref.attributedescription The onKeyUp JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onKeyUp</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyUp JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnKeyUp(String onKeyUp) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONKEYUP, onKeyUp);
+ }
+
+ /**
+ * Sets the onKeyPress javascript event.
+ *
+ * @param onKeyPress - the onKeyPress event.
+ * @jsptagref.attributedescription The onKeyPress JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onKeyPress</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onKeyPress JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnKeyPress(String onKeyPress) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONKEYPRESS, onKeyPress);
+ }
+
+ /**
+ * Sets the onMouseDown javascript event.
+ *
+ * @param onMouseDown - the onMouseDown event.
+ * @jsptagref.attributedescription The onMouseDown JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onMouseDown</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseDown JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnMouseDown(String onMouseDown) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEDOWN, onMouseDown);
+ }
+
+ /**
+ * Sets the onMouseUp javascript event.
+ *
+ * @param onMouseUp - the onMouseUp event.
+ * @jsptagref.attributedescription The onMouseUp JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onMouseUp</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseUp JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnMouseUp(String onMouseUp) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEUP, onMouseUp);
+ }
+
+ /**
+ * Sets the onMouseMove javascript event.
+ *
+ * @param onMouseMove - the onMouseMove event.
+ * @jsptagref.attributedescription The onMouseMove JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onMouseMove</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseMove JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnMouseMove(String onMouseMove) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEMOVE, onMouseMove);
+ }
+
+ /**
+ * Sets the onMouseOut javascript event.
+ *
+ * @param onMouseOut - the onMouseOut event.
+ * @jsptagref.attributedescription The onMouseOut JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onMouseOut</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseOut JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnMouseOut(String onMouseOut) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEOUT, onMouseOut);
+ }
+
+ /**
+ * Sets the onMouseOver javascript event.
+ *
+ * @param onMouseOver - the onMouseOver event.
+ * @jsptagref.attributedescription The onMouseOver JavaScript event.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_onMouseOver</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
onMouseOver JavaScript event."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.EventPropertyClass"
category="event"
+ */
+ public void setOnMouseOver(String onMouseOver) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT,
HtmlConstants.ONMOUSEOVER, onMouseOver);
+ }
+
+ /**
+ * Sets the style of the rendered html tag.
+ *
+ * @param style - the html style.
+ * @jsptagref.attributedescription The style.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_style</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
style."
+ * @netui.tldx:attribute
propertyclass="workshop.jspdesigner.properties.JspStyleProperty"
category="format"
+ */
+ public void setStyle(String style) {
+ if("".equals(style)) return;
+
+ _tbodyTag.style = style;
+ }
+
+ /**
+ * Sets the style class of the rendered html tag.
+ *
+ * @param styleClass - the html style class.
+ * @jsptagref.attributedescription The style class.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_style_class</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
style class."
+ * @netui.tldx:attribute category="Format"
+ */
+ public void setStyleClass(String styleClass) {
+ if("".equals(styleClass)) return;
+
+ _tbodyTag.styleClass = styleClass;
+ }
+
+ /**
+ * Sets the value of the title attribute.
+ *
+ * @param title
+ * @jsptagref.attributedescription The title.
+ * @jsptagref.databindable false
+ * @jsptagref.attributesyntaxvalue <i>string_title</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
title. "
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setTitle(String title) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.TITLE, title);
+ }
+
+ /**
+ * Sets the value of the horizontal align attribute.
+ *
+ * @param align
+ * @jsptagref.attributedescription The horizontal alignment.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_align</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setAlign(String align) {
+ /* todo: should this enforce left|center|right|justify|char as in the
spec */
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.ALIGN, align);
+ }
+
+ /**
+ * Sets the value of the horizontal alignment character attribute.
+ *
+ * @param alignChar
+ * @jsptagref.attributedescription The horizontal alignment character.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_alignChar</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment character"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setChar(String alignChar) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.CHAR, alignChar);
+ }
+
+ /**
+ * Sets the value of the horizontal alignment character offset attribute.
+ *
+ * @param alignCharOff
+ * @jsptagref.attributedescription The horizontal alignment character
offset
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_alignCharOff</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's horizontal alignment character offset"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setCharoff(String alignCharOff) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.CHAROFF, alignCharOff);
+ }
+
+ /**
+ * Sets the value of the vertical alignment attribute.
+ *
+ * @param align
+ * @jsptagref.attributedescription The vertical alignment.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_align</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's vertical alignment"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setValign(String align) {
+ /* todo: should this enforce top|middle|bottom|baseline as in the spec
*/
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.VALIGN, align);
+ }
+
+ /**
+ * Sets the value of the languageattribute.
+ *
+ * @param lang
+ * @jsptagref.attributedescription The language.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_lang</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's language"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setLang(String lang) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.LANG, lang);
+ }
+
+ /**
+ * Sets the value of the text direction attribute.
+ *
+ * @param dir
+ * @jsptagref.attributedescription The text direction attribute.
+ * @jsptagref.databindable true
+ * @jsptagref.attributesyntaxvalue <i>string_dir</i>
+ * @netui:attribute required="false" rtexprvalue="true" description="The
cell's text direction"
+ * @netui.tldx:attribute category="misc"
+ */
+ public void setDir(String dir) {
+ _tbodyTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL,
HtmlConstants.DIR, dir);
+ }
+
public void doTag()
throws IOException, JspException {
JspContext jspContext = getJspContext();
@@ -53,8 +333,8 @@
throw new JspException("Unable to find a dataGridModel in the
JspContext");
if(dataGridModel.getRenderState() ==
DataGridTagModel.RENDER_STATE_GRID) {
- StyleModel stylePolicy = dataGridModel.getStyleModel();
- assert stylePolicy != null;
+ StyleModel styleModel = dataGridModel.getStyleModel();
+ assert styleModel != null;
TableRenderer tableRenderer = dataGridModel.getTableRenderer();
assert tableRenderer != null;
@@ -63,15 +343,18 @@
AbstractRenderAppender appender = new
StringBuilderRenderAppender(content);
JspFragment fragment = getJspBody();
+ if(dataGridModel.isRenderRowGroups())
+ tableRenderer.openTableBody(_tbodyTag, appender);
+
while(dataGridModel.hasNextDataItem()) {
StringWriter sw = new StringWriter();
TrTag.State trState = new TrTag.State();
int index = dataGridModel.getCurrentIndex();
if(index % 2 == 0)
- trState.styleClass = stylePolicy.getRowClass();
+ trState.styleClass = styleModel.getRowClass();
else
- trState.styleClass = stylePolicy.getAltRowClass();
+ trState.styleClass = styleModel.getAltRowClass();
tableRenderer.openTableRow(trState, appender);
dataGridModel.nextDataItem();
@@ -79,6 +362,9 @@
content.append(sw.toString());
tableRenderer.closeTableRow(appender);
}
+
+ if(dataGridModel.isRenderRowGroups())
+ tableRenderer.closeTableBody(appender);
jspContext.getOut().write(content.toString());
}
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlConstants.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlConstants.java?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlConstants.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/HtmlConstants.java
Mon Feb 21 14:21:32 2005
@@ -550,6 +550,11 @@
static final String TABLE = "table";
/**
+ * The name of the <code>tbody</code> element.
+ */
+ static final String TBODY = "tbody";
+
+ /**
* The name of the <code>td</code> element.
*/
static final String TD = "td";
Added:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TBodyTag.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TBodyTag.java?view=auto&rev=154732
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TBodyTag.java
(added)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TBodyTag.java
Mon Feb 21 14:21:32 2005
@@ -0,0 +1,77 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.tags.rendering;
+
+import org.apache.beehive.netui.tags.html.HtmlConstants;
+
+import java.util.HashMap;
+
+/**
+ *
+ */
+public abstract class TBodyTag
+ extends TagHtmlBase
+{
+
+ public static void add(HashMap html, HashMap htmlQuirks, HashMap xhtml)
+ {
+ html.put(TBODY_TAG, new
org.apache.beehive.netui.tags.rendering.TBodyTag.Rendering());
+ htmlQuirks.put(TBODY_TAG, new
org.apache.beehive.netui.tags.rendering.TBodyTag.Rendering());
+ xhtml.put(TBODY_TAG, new
org.apache.beehive.netui.tags.rendering.TBodyTag.Rendering());
+ }
+
+ public static class State
+ extends AbstractHtmlState
+ {
+ public void clear()
+ {
+ super.clear();
+ }
+ }
+
+ private static class Rendering
+ extends TBodyTag
+ implements HtmlConstants
+ {
+
+ // @todo: need to support %coreattrs, %i18n, %events, %cellhalign,
%cellvalign on <tbody>
+ public void doStartTag(AbstractRenderAppender sb, AbstractTagState
renderState)
+ {
+ assert(sb != null) : "Parameter 'sb' must not be null";
+ assert(renderState != null) : "Parameter 'renderState' must not be
null";
+ assert(renderState instanceof State) : "Paramater 'renderState'
must be an instance of TBodyTag.State";
+
+ State state = (State) renderState;
+
+ renderTag(sb, TBODY);
+
+ renderAttribute(sb, ID, state.id);
+ renderAttribute(sb, CLASS, state.styleClass);
+
+ renderAttributes(AbstractHtmlState.ATTR_GENERAL, sb, state);
+ renderAttribute(sb, STYLE, state.style);
+ renderAttributes(AbstractHtmlState.ATTR_JAVASCRIPT, sb, state);
+ sb.append(">");
+ }
+
+ public void doEndTag(AbstractRenderAppender sb)
+ {
+ renderEndTag(sb, TBODY);
+ }
+ }
+}
\ No newline at end of file
Propchange:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TBodyTag.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TFootTag.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TFootTag.java?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TFootTag.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TFootTag.java
Mon Feb 21 14:21:32 2005
@@ -55,7 +55,7 @@
{
assert(sb != null) : "Parameter 'sb' must not be null";
assert(renderState != null) : "Parameter 'renderState' must not be
null";
- assert(renderState instanceof State) : "Paramater 'renderState'
must be an instance of TdTag.State";
+ assert(renderState instanceof State) : "Paramater 'renderState'
must be an instance of TFootTag.State";
State state = (State) renderState;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/THeadTag.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/THeadTag.java?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/THeadTag.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/THeadTag.java
Mon Feb 21 14:21:32 2005
@@ -51,7 +51,7 @@
{
assert(sb != null) : "Parameter 'sb' must not be null";
assert(renderState != null) : "Parameter 'renderState' must not be
null";
- assert(renderState instanceof State) : "Paramater 'renderState'
must be an instance of TdTag.State";
+ assert(renderState instanceof State) : "Paramater 'renderState'
must be an instance of THeadTag.State";
State state = (State) renderState;
Modified:
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TagRenderingBase.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TagRenderingBase.java?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TagRenderingBase.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/rendering/TagRenderingBase.java
Mon Feb 21 14:21:32 2005
@@ -117,6 +117,7 @@
public static final Object SPAN_TAG = new Object();
public static final Object DIV_TAG = new Object();
public static final Object TABLE_TAG = new Object();
+ public static final Object TBODY_TAG = new Object();
public static final Object TD_TAG = new Object();
public static final Object TEXT_AREA_TAG = new Object();
public static final Object TH_TAG = new Object();
@@ -313,6 +314,7 @@
SelectTag.add(_html, _htmlQuirks, _xhtml);
SpanTag.add(_html, _htmlQuirks, _xhtml);
TableTag.add(_html, _htmlQuirks, _xhtml);
+ TBodyTag.add(_html, _htmlQuirks, _xhtml);
TdTag.add(_html, _htmlQuirks, _xhtml);
TextAreaTag.add(_html, _htmlQuirks, _xhtml);
ThTag.add(_html, _htmlQuirks, _xhtml);
Added:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/rowGroups.jsp
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/rowGroups.jsp?view=auto&rev=154732
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/rowGroups.jsp
(added)
+++
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/rowGroups.jsp
Mon Feb 21 14:21:32 2005
@@ -0,0 +1,35 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-databinding-1.0"
prefix="netui-data"%>
+<%@ taglib uri="http://beehive.apache.org/netui/tags-template-1.0"
prefix="netui-template"%>
+<%@ taglib prefix="datagrid"
tagdir="/WEB-INF/tags/org/apache/beehive/netui/test/databinding/tagfiles" %>
+
+<netui-template:template templatePage="../site/template.jsp">
+ <netui-template:setAttribute name="title" value="Row Groups Test"/>
+ <netui-template:section name="body">
+ <p>
+ <datagrid:portfolioXmlBean/>
+ <br/>
+ <netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio"
renderRowGroups="true">
+ <netui-data:header>
+ <netui-data:headerCell headerText="Symbol"/>
+ <netui-data:headerCell headerText="Price"/>
+ <netui-data:headerCell headerText="Web"/>
+ </netui-data:header>
+ <netui-data:footer>
+ <tr>
+ <td colspan="3" align="center">This space intentionally left
blank.</td>
+ </tr>
+ </netui-data:footer>
+ <netui-data:rows>
+ <netui-data:spanCell value="${container.item.symbol}"/>
+ <netui-data:spanCell value="${container.item.price}"/>
+ <netui-data:anchorCell 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:anchorCell>
+ </netui-data:rows>
+ </netui-data:dataGrid>
+ </netui-template:section>
+</netui-template:template>
+
Propchange:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/misc/rowGroups.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?view=diff&r1=154731&r2=154732
==============================================================================
---
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
Mon Feb 21 14:21:32 2005
@@ -3006,6 +3006,21 @@
</features>
</test>
<test>
+ <name>DataGridRowGroups</name>
+ <description>DataGridRowGroups</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>bvt</category>
+ <category>bvt.struts11</category>
+ <category>databinding</category>
+ <category>datagrid</category>
+ </categories>
+ <features>
+ <feature>Databinding</feature>
+ <feature>Data Grid</feature>
+ </features>
+ </test>
+ <test>
<name>DataGridScriptletTagFile</name>
<description>DataGridScriptletTagFile</description>
<webapp>coreWeb</webapp>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCSSPrefix.xml
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCSSPrefix.xml?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCSSPrefix.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCSSPrefix.xml
Mon Feb 21 14:21:32 2005
@@ -2,7 +2,7 @@
<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>06 Feb 2005, 04:16:22.520 PM MST</ses:startDate>
+ <ses:startDate>21 Feb 2005, 02:27:07.148 PM MST</ses:startDate>
<ses:description>ekoneil</ses:description>
<ses:tests>
<ses:test>
@@ -18,7 +18,7 @@
<ses:cookies>
<ses:cookie>
<ses:name>JSESSIONID</ses:name>
- <ses:value>CE256718D71E3C9A0853F71E1F1132B1</ses:value>
+ <ses:value>F729A7431C101AA4DE3DE928CBC96828</ses:value>
</ses:cookie>
</ses:cookies>
<ses:headers>
@@ -44,7 +44,7 @@
</ses:header>
<ses:header>
<ses:name>cookie</ses:name>
- <ses:value>$Version=0;
JSESSIONID=CE256718D71E3C9A0853F71E1F1132B1; $Path=/coreWeb</ses:value>
+ <ses:value>$Version=0;
JSESSIONID=F729A7431C101AA4DE3DE928CBC96828; $Path=/coreWeb</ses:value>
</ses:header>
<ses:header>
<ses:name>host</ses:name>
@@ -56,7 +56,7 @@
</ses:header>
<ses:header>
<ses:name>testrecorder.playback.testid</ses:name>
- <ses:value>-3df8ceb0:101e9f0162f:-7d8b</ses:value>
+ <ses:value>4d9cca5e:10236ad19f8:-7f41</ses:value>
</ses:header>
<ses:header>
<ses:name>user-agent</ses:name>
@@ -99,7 +99,9 @@
<table class="foo">
-<thead class="foo">
+
+
+
<tr class="foo-header">
<th class="foo">Symbol</th>
@@ -111,8 +113,10 @@
-</tr></thead>
-
+</tr>
+
+
+
<tr class="foo-even">
<td class="foo"><span>BEAS</span></td>
@@ -172,9 +176,9 @@
</ses:testResults>
</ses:test>
</ses:tests>
- <ses:endDate>06 Feb 2005, 04:16:23.852 PM MST</ses:endDate>
+ <ses:endDate>21 Feb 2005, 02:27:08.350 PM MST</ses:endDate>
<ses:sessionStatus>fail</ses:sessionStatus>
<ses:testCount>1</ses:testCount>
<ses:passedCount>0</ses:passedCount>
<ses:failedCount>1</ses:failedCount>
-</ses:recorderSession>
+</ses:recorderSession>
\ No newline at end of file
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionAttributes.xml
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionAttributes.xml?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionAttributes.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionAttributes.xml
Mon Feb 21 14:21:32 2005
@@ -2,7 +2,7 @@
<ses:recorderSession
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
<ses:sessionName>DataGridCaptionAttributes</ses:sessionName>
<ses:tester>ekoneil</ses:tester>
- <ses:startDate>06 Feb 2005, 04:16:14.658 PM MST</ses:startDate>
+ <ses:startDate>21 Feb 2005, 02:26:58.446 PM MST</ses:startDate>
<ses:description>ekoneil</ses:description>
<ses:tests>
<ses:test>
@@ -15,12 +15,7 @@
<ses:uri>/coreWeb/databinding/datagrid/misc/captionAttributes.jsp</ses:uri>
<ses:method>GET</ses:method>
<ses:parameters/>
- <ses:cookies>
- <ses:cookie>
- <ses:name>JSESSIONID</ses:name>
- <ses:value>CE256718D71E3C9A0853F71E1F1132B1</ses:value>
- </ses:cookie>
- </ses:cookies>
+ <ses:cookies/>
<ses:headers>
<ses:header>
<ses:name>accept</ses:name>
@@ -43,10 +38,6 @@
<ses:value>keep-alive</ses:value>
</ses:header>
<ses:header>
- <ses:name>cookie</ses:name>
- <ses:value>$Version=0;
JSESSIONID=CE256718D71E3C9A0853F71E1F1132B1; $Path=/coreWeb</ses:value>
- </ses:header>
- <ses:header>
<ses:name>host</ses:name>
<ses:value>localhost:8080</ses:value>
</ses:header>
@@ -56,7 +47,7 @@
</ses:header>
<ses:header>
<ses:name>testrecorder.playback.testid</ses:name>
- <ses:value>-3df8ceb0:101e9f0162f:-7d91</ses:value>
+ <ses:value>4d9cca5e:10236ad19f8:-7f47</ses:value>
</ses:header>
<ses:header>
<ses:name>user-agent</ses:name>
@@ -114,7 +105,6 @@
-<thead class="datagrid">
<tr class="datagrid-header">
<th class="datagrid">Symbol</th>
@@ -123,8 +113,12 @@
-</tr></thead>
-
+</tr>
+
+
+
+
+
<tr class="datagrid-even">
<td class="datagrid"><span>BEAS</span></td>
@@ -185,7 +179,6 @@
-<thead class="datagrid">
<tr class="datagrid-header">
<th class="datagrid">Symbol</th>
@@ -194,8 +187,12 @@
-</tr></thead>
-
+</tr>
+
+
+
+
+
<tr class="datagrid-even">
<td class="datagrid"><span>BEAS</span></td>
@@ -253,7 +250,6 @@
-<thead class="datagrid">
<tr class="datagrid-header">
<th class="datagrid">Symbol</th>
@@ -262,8 +258,12 @@
-</tr></thead>
-
+</tr>
+
+
+
+
+
<tr class="datagrid-even">
<td class="datagrid"><span>BEAS</span></td>
@@ -318,7 +318,7 @@
</ses:testResults>
</ses:test>
</ses:tests>
- <ses:endDate>06 Feb 2005, 04:16:18.003 PM MST</ses:endDate>
+ <ses:endDate>21 Feb 2005, 02:27:02.572 PM MST</ses:endDate>
<ses:sessionStatus>fail</ses:sessionStatus>
<ses:testCount>1</ses:testCount>
<ses:passedCount>0</ses:passedCount>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionJavaScript.xml
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionJavaScript.xml?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionJavaScript.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionJavaScript.xml
Mon Feb 21 14:21:32 2005
@@ -2,7 +2,7 @@
<ses:recorderSession
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
<ses:sessionName>DataGridCaptionJavaScript</ses:sessionName>
<ses:tester>ekoneil</ses:tester>
- <ses:startDate>06 Feb 2005, 04:16:20.667 PM MST</ses:startDate>
+ <ses:startDate>21 Feb 2005, 02:27:05.866 PM MST</ses:startDate>
<ses:description>ekoneil</ses:description>
<ses:tests>
<ses:test>
@@ -18,7 +18,7 @@
<ses:cookies>
<ses:cookie>
<ses:name>JSESSIONID</ses:name>
- <ses:value>CE256718D71E3C9A0853F71E1F1132B1</ses:value>
+ <ses:value>F729A7431C101AA4DE3DE928CBC96828</ses:value>
</ses:cookie>
</ses:cookies>
<ses:headers>
@@ -44,7 +44,7 @@
</ses:header>
<ses:header>
<ses:name>cookie</ses:name>
- <ses:value>$Version=0;
JSESSIONID=CE256718D71E3C9A0853F71E1F1132B1; $Path=/coreWeb</ses:value>
+ <ses:value>$Version=0;
JSESSIONID=F729A7431C101AA4DE3DE928CBC96828; $Path=/coreWeb</ses:value>
</ses:header>
<ses:header>
<ses:name>host</ses:name>
@@ -56,7 +56,7 @@
</ses:header>
<ses:header>
<ses:name>testrecorder.playback.testid</ses:name>
- <ses:value>-3df8ceb0:101e9f0162f:-7d8d</ses:value>
+ <ses:value>4d9cca5e:10236ad19f8:-7f43</ses:value>
</ses:header>
<ses:header>
<ses:name>user-agent</ses:name>
@@ -106,7 +106,6 @@
-<thead class="datagrid">
<tr class="datagrid-header">
<th class="datagrid">Symbol</th>
@@ -115,8 +114,12 @@
-</tr></thead>
-
+</tr>
+
+
+
+
+
<tr class="datagrid-even">
<td class="datagrid"><span>BEAS</span></td>
@@ -174,7 +177,7 @@
</ses:testResults>
</ses:test>
</ses:tests>
- <ses:endDate>06 Feb 2005, 04:16:22.450 PM MST</ses:endDate>
+ <ses:endDate>21 Feb 2005, 02:27:07.078 PM MST</ses:endDate>
<ses:sessionStatus>fail</ses:sessionStatus>
<ses:testCount>1</ses:testCount>
<ses:passedCount>0</ses:passedCount>
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionTest.xml
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionTest.xml?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionTest.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCaptionTest.xml
Mon Feb 21 14:21:32 2005
@@ -2,7 +2,7 @@
<ses:recorderSession
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
<ses:sessionName>DataGridCaptionTest</ses:sessionName>
<ses:tester>ekoneil</ses:tester>
- <ses:startDate>06 Feb 2005, 04:16:18.063 PM MST</ses:startDate>
+ <ses:startDate>21 Feb 2005, 02:27:02.802 PM MST</ses:startDate>
<ses:description>ekoneil</ses:description>
<ses:tests>
<ses:test>
@@ -18,7 +18,7 @@
<ses:cookies>
<ses:cookie>
<ses:name>JSESSIONID</ses:name>
- <ses:value>CE256718D71E3C9A0853F71E1F1132B1</ses:value>
+ <ses:value>F729A7431C101AA4DE3DE928CBC96828</ses:value>
</ses:cookie>
</ses:cookies>
<ses:headers>
@@ -44,7 +44,7 @@
</ses:header>
<ses:header>
<ses:name>cookie</ses:name>
- <ses:value>$Version=0;
JSESSIONID=CE256718D71E3C9A0853F71E1F1132B1; $Path=/coreWeb</ses:value>
+ <ses:value>$Version=0;
JSESSIONID=F729A7431C101AA4DE3DE928CBC96828; $Path=/coreWeb</ses:value>
</ses:header>
<ses:header>
<ses:name>host</ses:name>
@@ -56,7 +56,7 @@
</ses:header>
<ses:header>
<ses:name>testrecorder.playback.testid</ses:name>
- <ses:value>-3df8ceb0:101e9f0162f:-7d8f</ses:value>
+ <ses:value>4d9cca5e:10236ad19f8:-7f45</ses:value>
</ses:header>
<ses:header>
<ses:name>user-agent</ses:name>
@@ -105,7 +105,6 @@
-<thead class="datagrid">
<tr class="datagrid-header">
<th class="datagrid">Symbol</th>
@@ -117,9 +116,12 @@
-</tr></thead>
+</tr>
+
+
+
<tr class="datagrid-even">
<td class="datagrid"><span>BEAS</span></td>
@@ -188,9 +190,9 @@
</ses:testResults>
</ses:test>
</ses:tests>
- <ses:endDate>06 Feb 2005, 04:16:20.607 PM MST</ses:endDate>
+ <ses:endDate>21 Feb 2005, 02:27:05.816 PM MST</ses:endDate>
<ses:sessionStatus>fail</ses:sessionStatus>
<ses:testCount>1</ses:testCount>
<ses:passedCount>0</ses:passedCount>
<ses:failedCount>1</ses:failedCount>
-</ses:recorderSession>
+</ses:recorderSession>
\ No newline at end of file
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomHeaderStyle.xml
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomHeaderStyle.xml?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomHeaderStyle.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomHeaderStyle.xml
Mon Feb 21 14:21:32 2005
@@ -2,7 +2,7 @@
<ses:recorderSession
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
<ses:sessionName>DataGridCustomHeaderStyle</ses:sessionName>
<ses:tester>ekoneil</ses:tester>
- <ses:startDate>06 Feb 2005, 04:16:23.922 PM MST</ses:startDate>
+ <ses:startDate>21 Feb 2005, 02:27:08.400 PM MST</ses:startDate>
<ses:description>ekoneil</ses:description>
<ses:tests>
<ses:test>
@@ -18,7 +18,7 @@
<ses:cookies>
<ses:cookie>
<ses:name>JSESSIONID</ses:name>
- <ses:value>CE256718D71E3C9A0853F71E1F1132B1</ses:value>
+ <ses:value>F729A7431C101AA4DE3DE928CBC96828</ses:value>
</ses:cookie>
</ses:cookies>
<ses:headers>
@@ -44,7 +44,7 @@
</ses:header>
<ses:header>
<ses:name>cookie</ses:name>
- <ses:value>$Version=0;
JSESSIONID=CE256718D71E3C9A0853F71E1F1132B1; $Path=/coreWeb</ses:value>
+ <ses:value>$Version=0;
JSESSIONID=F729A7431C101AA4DE3DE928CBC96828; $Path=/coreWeb</ses:value>
</ses:header>
<ses:header>
<ses:name>host</ses:name>
@@ -56,7 +56,7 @@
</ses:header>
<ses:header>
<ses:name>testrecorder.playback.testid</ses:name>
- <ses:value>-3df8ceb0:101e9f0162f:-7d89</ses:value>
+ <ses:value>4d9cca5e:10236ad19f8:-7f3f</ses:value>
</ses:header>
<ses:header>
<ses:name>user-agent</ses:name>
@@ -102,7 +102,9 @@
<table class="foo">
-<thead class="foo">
+
+
+
<tr class="foo-header">
<th class="custom-header">Symbol</th>
@@ -114,8 +116,10 @@
-</tr></thead>
-
+</tr>
+
+
+
<tr class="foo-even">
<td class="foo"><span>BEAS</span></td>
@@ -175,9 +179,9 @@
</ses:testResults>
</ses:test>
</ses:tests>
- <ses:endDate>06 Feb 2005, 04:16:25.734 PM MST</ses:endDate>
+ <ses:endDate>21 Feb 2005, 02:27:10.183 PM MST</ses:endDate>
<ses:sessionStatus>fail</ses:sessionStatus>
<ses:testCount>1</ses:testCount>
<ses:passedCount>0</ses:passedCount>
<ses:failedCount>1</ses:failedCount>
-</ses:recorderSession>
+</ses:recorderSession>
\ No newline at end of file
Modified:
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomTagAttributes.xml
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomTagAttributes.xml?view=diff&r1=154731&r2=154732
==============================================================================
---
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomTagAttributes.xml
(original)
+++
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridCustomTagAttributes.xml
Mon Feb 21 14:21:32 2005
@@ -2,7 +2,7 @@
<ses:recorderSession
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
<ses:sessionName>DataGridCustomTagAttributes</ses:sessionName>
<ses:tester>ekoneil</ses:tester>
- <ses:startDate>21 Feb 2005, 10:28:16.468 AM MST</ses:startDate>
+ <ses:startDate>21 Feb 2005, 03:11:08.606 PM MST</ses:startDate>
<ses:description>ekoneil</ses:description>
<ses:tests>
<ses:test>
@@ -18,7 +18,7 @@
<ses:cookies>
<ses:cookie>
<ses:name>JSESSIONID</ses:name>
- <ses:value>E4BC5A8D8A2B2548F6B41028CBFDCFA6</ses:value>
+ <ses:value>3D846B0FFB3E10011276E70866CCB47B</ses:value>
</ses:cookie>
</ses:cookies>
<ses:headers>
@@ -44,7 +44,7 @@
</ses:header>
<ses:header>
<ses:name>cookie</ses:name>
- <ses:value>$Version=0;
JSESSIONID=E4BC5A8D8A2B2548F6B41028CBFDCFA6; $Path=/coreWeb</ses:value>
+ <ses:value>$Version=0;
JSESSIONID=3D846B0FFB3E10011276E70866CCB47B; $Path=/coreWeb</ses:value>
</ses:header>
<ses:header>
<ses:name>host</ses:name>
@@ -56,7 +56,7 @@
</ses:header>
<ses:header>
<ses:name>testrecorder.playback.testid</ses:name>
- <ses:value>354d10c9:10235f1bd0e:-7d6b</ses:value>
+ <ses:value>-7891b722:10236f6cf22:-7f5a</ses:value>
</ses:header>
<ses:header>
<ses:name>user-agent</ses:name>
@@ -101,7 +101,9 @@
<table class="datagrid">
-<thead class="datagrid">
+
+
+
<tr class="datagrid-header">
<th class="datagrid">Symbol</th>
@@ -113,8 +115,10 @@
-</tr></thead>
-
+</tr>
+
+
+
<tr class="datagrid-even">
<td class="datagrid"><span attr-test-symbol="BEAS"
onclick="javascript:alert(this)">BEAS</span></td>
@@ -180,7 +184,7 @@
</ses:testResults>
</ses:test>
</ses:tests>
- <ses:endDate>21 Feb 2005, 10:28:17.609 AM MST</ses:endDate>
+ <ses:endDate>21 Feb 2005, 03:11:09.808 PM MST</ses:endDate>
<ses:sessionStatus>fail</ses:sessionStatus>
<ses:testCount>1</ses:testCount>
<ses:passedCount>0</ses:passedCount>