You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ek...@apache.org on 2004/12/30 04:01:26 UTC
svn commit: r123694 - in incubator/beehive/trunk/netui: src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid test/webapps/drt/coreWeb/databinding/datagrid/simplesort test/webapps/drt/coreWeb/resources/images test/webapps/drt/testRecorder/config test/webapps/drt/testRecorder/tests
Author: ekoneil
Date: Wed Dec 29 19:01:25 2004
New Revision: 123694
URL: http://svn.apache.org/viewcvs?view=rev&rev=123694
Log:
Data grid checkpoint.
- implement sort support in the URL / state management services. This isn't complete yet and throws NYI on some of the method calls, but the correct sort information is tracked in the URL for a single grid on a page.
- move cell rendering out into a set of stateless decorators. This allows for composing items to show up in a cell and provides a nice extensibility and testing point. Also allows sort / filter to be applied to header cell columns in a clean way.
- delete some unused images from the coreWeb/resources/images directory
- add a simple sort test. this doesn't actually sort the data yet (quite cheezy, yes), but it does put the correct query params in the URL.
BB: self
DRT: NetUI pass
BVT: NetUI pass (11 failures)
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/AnchorCellModel.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/ImageCellModel.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/LiteralCellModel.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/AnchorCellDecorator.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecoratorException.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/HeaderCellDecorator.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/ImageCellDecorator.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/LiteralCellDecorator.java (contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/Controller.jpf (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/index.jsp (contents, props changed)
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridSimpleSort.xml (contents, props changed)
Removed:
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/back.gif
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/cancel.gif
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/delete.gif
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/details.gif
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/edit.gif
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/grid.gif
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/insert.gif
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/update.gif
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultFilter.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultSort.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/SortService.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.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/DataGridUtil.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageColumn.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/LiteralColumn.java
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java Wed Dec 29 19:01:25 2004
@@ -17,17 +17,23 @@
*/
package org.apache.beehive.netui.databinding.datagrid.model;
+import java.util.ArrayList;
+import javax.servlet.jsp.JspException;
+
+import org.apache.beehive.netui.tags.html.FormatTag.Formatter;
+import org.apache.beehive.netui.util.logging.Logger;
+
/**
*/
public class ColumnModel {
+ private static final Logger LOGGER = Logger.getInstance(ColumnModel.class);
+
private ColumnsModel _columnsModel;
private DataGridModel _dataGridModel;
+ private ArrayList<Formatter> _formatters;
- public ColumnModel(DataGridModel dataGridModel, ColumnsModel columnsModel)
- {
- _dataGridModel = dataGridModel;
- _columnsModel = columnsModel;
+ public ColumnModel() {
}
public boolean isRenderingHeader() {
@@ -36,5 +42,52 @@
public boolean isRenderingData() {
return _columnsModel.getRenderState() == ColumnsModel.DATA_RENDER_STATE;
+ }
+
+ public ColumnsModel getColumnsModel() {
+ return _columnsModel;
+ }
+
+ public void setColumnsModel(ColumnsModel columnsModel) {
+ _columnsModel = columnsModel;
+ }
+
+ public DataGridModel getDataGridModel() {
+ return _dataGridModel;
+ }
+
+ public void setDataGridModel(DataGridModel dataGridModel) {
+ _dataGridModel = dataGridModel;
+ }
+
+ public void addFormatter(Formatter formatter) {
+ if(_formatters == null)
+ _formatters = new ArrayList<Formatter>();
+
+ _formatters.add(formatter);
+ }
+
+ public String formatText(Object value) {
+ if (value == null)
+ return null;
+
+ if (_formatters == null)
+ return value.toString();
+
+ Object formatted = null;
+ for (Formatter formatter : _formatters) {
+ assert formatter != null;
+ try {
+ formatted = formatter.format(value);
+ } catch (JspException e) {
+ /* todo: error reporting */
+ if (LOGGER.isErrorEnabled())
+ LOGGER.error("A formatter of type \"" + formatter.getClass().getName() + "\" threw an exception " + e, e);
+ }
+ }
+
+ assert formatted != null;
+
+ return formatted.toString();
}
}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java Wed Dec 29 19:01:25 2004
@@ -18,13 +18,16 @@
package org.apache.beehive.netui.databinding.datagrid.model;
import javax.servlet.jsp.JspContext;
+import javax.servlet.jsp.PageContext;
import org.apache.beehive.netui.databinding.datagrid.rendering.TableRenderer;
-import org.apache.beehive.netui.databinding.datagrid.services.FilterService;
import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
-import org.apache.beehive.netui.databinding.datagrid.services.SortService;
+import org.apache.beehive.netui.databinding.datagrid.services.DataGridStateService;
+import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
import org.apache.beehive.netui.databinding.datagrid.util.PagedDataSet;
import org.apache.beehive.netui.databinding.datagrid.rendering.IPagerRenderer;
+import org.apache.beehive.netui.databinding.datagrid.rendering.TableRenderer;
+import org.apache.beehive.netui.databinding.datagrid.rendering.impl.PreviousNextPagerRenderer;
import org.apache.beehive.netui.databinding.datagrid.rendering.impl.PreviousNextPagerRenderer;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
@@ -48,11 +51,10 @@
private PagedDataSet _dataSet = null;
private TableRenderer _tableRenderer = null;
- private SortService _sortService = null;
- private FilterService _filterService = null;
-
private int _renderState = START_RENDER_STATE;
+ private DataGridStateService _dataGridStateService = null;
+
public DataGridModel(JspContext jspContext, String name, PagedDataSet dataSet)
{
super();
@@ -164,6 +166,17 @@
public void setTableRenderer(TableRenderer tableRenderer) {
_tableRenderer = tableRenderer;
+ }
+
+ public DataGridStateService getDataGridStateService() {
+ if(_dataGridStateService == null)
+ _dataGridStateService = DataGridStateService.createInstance(((PageContext)_jspContext).getRequest(), getName());
+
+ return _dataGridStateService;
+ }
+
+ public void setDataGridStateService(DataGridStateService dataGridStateService) {
+ _dataGridStateService = dataGridStateService;
}
/* ===========================================================
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java Wed Dec 29 19:01:25 2004
@@ -18,6 +18,7 @@
package org.apache.beehive.netui.databinding.datagrid.model;
import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.util.logging.Logger;
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/AnchorCellModel.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/AnchorCellModel.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/AnchorCellModel.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,93 @@
+/*
+ * 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.databinding.datagrid.model.cell;
+
+import java.util.HashMap;
+
+import org.apache.beehive.netui.tags.rendering.AnchorTag;
+import org.apache.beehive.netui.tags.rendering.AnchorTag.State;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+
+/**
+ *
+ */
+public class AnchorCellModel
+ extends ColumnModel {
+
+ public AnchorCellModel() {
+ super();
+ }
+
+ private String _value = null;
+ private String _href = null;
+ private String _scopeId = null;
+ private String _action = null;
+ private HashMap _params = null;
+ private AnchorTag.State _anchorState = new AnchorTag.State();
+
+ public String getValue() {
+ return _value;
+ }
+
+ public void setValue(String value) {
+ _value = value;
+ }
+
+ public String getHref() {
+ return _href;
+ }
+
+ public void setHref(String href) {
+ _href = href;
+ }
+
+ public String getScopeId() {
+ return _scopeId;
+ }
+
+ public void setScopeId(String scopeId) {
+ _scopeId = scopeId;
+ }
+
+ public String getAction() {
+ return _action;
+ }
+
+ public void setAction(String action) {
+ _action = action;
+ }
+
+ public HashMap getParams() {
+ if(_params == null)
+ _params = new HashMap();
+
+ return _params;
+ }
+
+ public void setParams(HashMap params) {
+ _params = params;
+ }
+
+ public State getAnchorState() {
+ return _anchorState;
+ }
+
+ public void setAnchorState(State anchorState) {
+ _anchorState = anchorState;
+ }
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,88 @@
+/*
+ * 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.databinding.datagrid.model.cell;
+
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+
+/**
+ *
+ */
+public class HeaderCellModel
+ extends ColumnModel {
+
+ private String _headerText = null;
+ private String _bodyContent = null;
+
+ private String _scopeId = null;
+
+ private boolean _disableSortRendering = false;
+ private String _sortExpression = null;
+ private String _sortAction = null;
+
+ public String getScopeId() {
+ return _scopeId;
+ }
+
+ public void setScopeId(String scopeId) {
+ _scopeId = scopeId;
+ }
+
+ public String getSortAction() {
+ return _sortAction;
+ }
+
+ public void setSortAction(String sortAction) {
+ _sortAction = sortAction;
+ }
+
+ public boolean isSortable() {
+ return _sortExpression != null;
+ }
+
+ public boolean isDisableSortRendering() {
+ return _disableSortRendering;
+ }
+
+ public void setDisableSortRendering(boolean disableSortRendering) {
+ _disableSortRendering = disableSortRendering;
+ }
+
+ public String getSortExpression() {
+ return _sortExpression;
+ }
+
+ public void setSortExpression(String sortExpression) {
+ _sortExpression = sortExpression;
+ }
+
+ public String getHeaderText() {
+ return _headerText;
+ }
+
+ public void setHeaderText(String headerText) {
+ _headerText = headerText;
+ }
+
+ public String getBodyContent() {
+ return _bodyContent;
+ }
+
+ public void setBodyContent(String bodyContent) {
+ _bodyContent = bodyContent;
+ }
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/ImageCellModel.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/ImageCellModel.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/ImageCellModel.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,42 @@
+/*
+ * 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.databinding.datagrid.model.cell;
+
+import org.apache.beehive.netui.tags.rendering.ImageTag;
+import org.apache.beehive.netui.tags.rendering.ImageTag.State;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+
+/**
+ *
+ */
+public class ImageCellModel
+ extends ColumnModel {
+
+ private ImageTag.State _imageState = null;
+
+ public ImageTag.State getImageState() {
+ if(_imageState == null)
+ _imageState = new ImageTag.State();
+
+ return _imageState;
+ }
+
+ public void setImageState(State imageState) {
+ _imageState = imageState;
+ }
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/LiteralCellModel.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/LiteralCellModel.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/LiteralCellModel.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,50 @@
+/*
+ * 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.databinding.datagrid.model.cell;
+
+import org.apache.beehive.netui.tags.rendering.SpanTag;
+import org.apache.beehive.netui.tags.rendering.SpanTag.State;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+
+/**
+ *
+ */
+public class LiteralCellModel
+ extends ColumnModel {
+
+ private static final SpanTag.State DEFAULT_SPAN_STATE = new SpanTag.State();
+
+ private String _value = null;
+ private SpanTag.State _spanState = new SpanTag.State();
+
+ public String getValue() {
+ return _value;
+ }
+
+ public void setValue(String value) {
+ _value = value;
+ }
+
+ public State getSpanState() {
+ return _spanState != null ? _spanState : DEFAULT_SPAN_STATE;
+ }
+
+ public void setSpanState(State spanState) {
+ _spanState = spanState;
+ }
+}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultFilter.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultFilter.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultFilter.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultFilter.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultFilter.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultFilter.java Wed Dec 29 19:01:25 2004
@@ -21,6 +21,7 @@
import org.apache.beehive.netui.databinding.datagrid.model.IFilter;
import org.apache.beehive.netui.databinding.datagrid.services.IllegalFilterException;
+import org.apache.beehive.netui.databinding.datagrid.services.IllegalFilterException;
import org.apache.beehive.netui.util.logging.Logger;
/**
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultSort.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultSort.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultSort.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultSort.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultSort.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/impl/DefaultSort.java Wed Dec 29 19:01:25 2004
@@ -60,7 +60,7 @@
}
public void setDirection(int direction) {
- assert direction == ISort.ASCENDING || direction == ISort.DESCENDING;
+ assert direction == ISort.ASCENDING || direction == ISort.DESCENDING || direction == ISort.NONE;
_dir = direction;
}
@@ -101,18 +101,23 @@
}
private String writeSortParam(String namespace, boolean flipDirection) {
- StringBuilder builder = new StringBuilder();
int direction = _dir;
if (flipDirection)
/* todo: break this dependency. switch ISort to AbstractSort with utility methods */
direction = flipSortDirection(direction);
+ return writeSortParam(namespace, _expr, direction);
+ }
+
+ public static final String writeSortParam(String namespace, String sortExpression, int direction) {
+ StringBuilder builder = new StringBuilder();
+
builder.append(namespace);
builder.append("~");
if (direction == ISort.DESCENDING)
builder.append("-");
- builder.append(_expr);
+ builder.append(sortExpression);
return builder.toString();
}
}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/AnchorCellDecorator.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/AnchorCellDecorator.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/AnchorCellDecorator.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,88 @@
+/*
+ * 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.databinding.datagrid.rendering.cell;
+
+import java.net.URISyntaxException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspContext;
+
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.AnchorCellModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.AnchorCellModel;
+import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecorator;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecoratorException;
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+import org.apache.beehive.netui.tags.rendering.SpanTag;
+import org.apache.beehive.netui.tags.rendering.AnchorTag;
+import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
+import org.apache.beehive.netui.tags.databinding.datagrid.DataGridUtil;
+import org.apache.beehive.netui.util.logging.Logger;
+
+/**
+ *
+ */
+public class AnchorCellDecorator
+ extends CellDecorator {
+
+ private static final Logger LOGGER = Logger.getInstance(AnchorCellDecorator.class);
+
+ /* todo: need to tie this into the grid's error reporting */
+ public void decorate(JspContext jspContext, AbstractRenderAppender appender, ColumnModel columnModel)
+ throws CellDecoratorException {
+
+ assert columnModel instanceof AnchorCellModel;
+
+ AnchorCellModel anchorCellModel = (AnchorCellModel)columnModel;
+ HttpServletRequest request = JspUtil.getRequest(jspContext);
+
+ SpanTag.State spanState = new SpanTag.State();
+ AnchorTag.State anchorState = anchorCellModel.getAnchorState();
+
+ DataGridModel dgm = DataGridUtil.getDataGridModel(jspContext);
+ assert dgm != null;
+
+ String url = null;
+ try {
+ url = JspUtil.createURL(anchorCellModel.getHref(),
+ anchorCellModel.getAction(),
+ null,
+ anchorCellModel.getScopeId(),
+ anchorCellModel.getParams(),
+ jspContext);
+ } catch (URISyntaxException mue) {
+
+ if (LOGGER.isErrorEnabled())
+ LOGGER.error("Exception creating URL with href " + anchorCellModel.getHref() + " action " + anchorCellModel.getAction(), mue);
+
+ throw new CellDecoratorException("An exception occurred creating an URL while decorating an Anchor", mue);
+ }
+
+ anchorState.href = url;
+
+ TagRenderingBase anchorTag = TagRenderingBase.Factory.getRendering(TagRenderingBase.ANCHOR_TAG, request);
+ TagRenderingBase spanTag = TagRenderingBase.Factory.getRendering(TagRenderingBase.SPAN_TAG, request);
+
+ anchorTag.doStartTag(appender, anchorState);
+ spanTag.doStartTag(appender, spanState);
+ appender.append(anchorCellModel.getValue());
+ spanTag.doEndTag(appender);
+ anchorTag.doEndTag(appender);
+ }
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecorator.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,34 @@
+/*
+ * 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.databinding.datagrid.rendering.cell;
+
+import javax.servlet.jsp.JspContext;
+
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+
+/**
+ *
+ */
+public abstract class CellDecorator {
+
+ public abstract void decorate(JspContext jspContext,
+ AbstractRenderAppender appender,
+ ColumnModel columnModel)
+ throws CellDecoratorException;
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecoratorException.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecoratorException.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/CellDecoratorException.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,41 @@
+/*
+ * 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.databinding.datagrid.rendering.cell;
+
+/**
+ *
+ */
+public class CellDecoratorException
+ extends RuntimeException {
+
+ public CellDecoratorException() {
+ super();
+ }
+
+ public CellDecoratorException(String message) {
+ super(message);
+ }
+
+ public CellDecoratorException(Throwable cause) {
+ super(cause);
+ }
+
+ public CellDecoratorException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/HeaderCellDecorator.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/HeaderCellDecorator.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/HeaderCellDecorator.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,46 @@
+/*
+ * 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.databinding.datagrid.rendering.cell;
+
+import javax.servlet.jsp.JspContext;
+
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.HeaderCellModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.HeaderCellModel;
+
+/**
+ *
+ */
+public class HeaderCellDecorator
+ extends CellDecorator {
+
+ public void decorate(JspContext jspContext, AbstractRenderAppender appender, ColumnModel columnModel)
+ throws CellDecoratorException {
+
+ assert columnModel instanceof HeaderCellModel;
+ HeaderCellModel headerCellModel = (HeaderCellModel)columnModel;
+
+ if (headerCellModel.getHeaderText() != null)
+ appender.append(headerCellModel.getHeaderText());
+ else if(headerCellModel.getBodyContent() != null)
+ appender.append(headerCellModel.getBodyContent());
+ else appender.append(" ");
+
+ }
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/ImageCellDecorator.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/ImageCellDecorator.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/ImageCellDecorator.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,47 @@
+/*
+ * 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.databinding.datagrid.rendering.cell;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspContext;
+
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.ImageCellModel;
+import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
+
+/**
+ *
+ */
+public class ImageCellDecorator
+ extends CellDecorator {
+
+ public void decorate(JspContext jspContext, AbstractRenderAppender appender, ColumnModel columnModel)
+ throws CellDecoratorException {
+
+ assert columnModel instanceof ImageCellModel;
+
+ ImageCellModel imageColumnModel = (ImageCellModel)columnModel;
+ HttpServletRequest request = JspUtil.getRequest(jspContext);
+
+ TagRenderingBase br = TagRenderingBase.Factory.getRendering(TagRenderingBase.IMAGE_TAG, request);
+ br.doStartTag(appender, imageColumnModel.getImageState());
+ br.doEndTag(appender);
+ }
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/LiteralCellDecorator.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/LiteralCellDecorator.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/LiteralCellDecorator.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,51 @@
+/*
+ * 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.databinding.datagrid.rendering.cell;
+
+import javax.servlet.jsp.JspContext;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.LiteralCellModel;
+import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
+
+/**
+ *
+ */
+public class LiteralCellDecorator
+ extends CellDecorator {
+
+ public void decorate(JspContext jspContext, AbstractRenderAppender appender, ColumnModel columnModel)
+ throws CellDecoratorException {
+
+ assert columnModel instanceof LiteralCellModel;
+ LiteralCellModel literalColumnModel = (LiteralCellModel)columnModel;
+
+ HttpServletRequest request = JspUtil.getRequest(jspContext);
+ TagRenderingBase span = TagRenderingBase.Factory.getRendering(TagRenderingBase.SPAN_TAG, request);
+
+ /* todo: need to support formatting here */
+ String formatted = columnModel.formatText(literalColumnModel.getValue());
+
+ span.doStartTag(appender, literalColumnModel.getSpanState());
+ appender.append(formatted);
+ span.doEndTag(appender);
+ }
+}
Added: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java Wed Dec 29 19:01:25 2004
@@ -0,0 +1,127 @@
+/*
+ * 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.databinding.datagrid.rendering.cell;
+
+import java.util.Map;
+import java.net.URISyntaxException;
+import javax.servlet.jsp.JspContext;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
+import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
+import org.apache.beehive.netui.tags.rendering.AnchorTag;
+import org.apache.beehive.netui.tags.rendering.ImageTag;
+import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
+import org.apache.beehive.netui.tags.html.HtmlConstants;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.HeaderCellModel;
+import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
+import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
+import org.apache.beehive.netui.databinding.datagrid.services.DataGridStateService;
+import org.apache.beehive.netui.databinding.datagrid.services.SortService;
+import org.apache.beehive.netui.util.logging.Logger;
+
+/**
+ *
+ */
+public class SortedCellDecorator
+ extends CellDecorator {
+
+ private static final Logger LOGGER = Logger.getInstance(SortedCellDecorator.class);
+
+ private CellDecorator _decorator;
+
+ public SortedCellDecorator(CellDecorator decorator) {
+ _decorator = decorator;
+ }
+
+ public void decorate(JspContext jspContext, AbstractRenderAppender appender, ColumnModel columnModel)
+ throws CellDecoratorException {
+
+ assert columnModel instanceof HeaderCellModel;
+ HeaderCellModel headerCellModel = (HeaderCellModel)columnModel;
+
+ String sortLink = null;
+
+ _decorator.decorate(jspContext, appender, columnModel);
+
+ if(headerCellModel.isSortable()) {
+ sortLink = buildSortLink(jspContext, headerCellModel);
+ appender.append(" ");
+ appender.append(sortLink);
+ }
+ }
+
+ protected String buildSortLink(JspContext jspContext, HeaderCellModel cellModel) {
+
+ HttpServletRequest request = JspUtil.getRequest(jspContext);
+ DataGridModel dgm = cellModel.getDataGridModel();
+ assert dgm != null;
+
+ DataGridStateService dgss = dgm.getDataGridStateService();
+ SortService ss = dgss.getSortService();
+
+ StringBuilder builder = new StringBuilder();
+ AbstractRenderAppender appender = new StringBuilderRenderAppender(builder);
+
+ TagRenderingBase imageRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.IMAGE_TAG, request);
+ TagRenderingBase anchorRenderer = TagRenderingBase.Factory.getRendering(TagRenderingBase.ANCHOR_TAG, request);
+
+ AnchorTag.State aTag = new AnchorTag.State();
+ ImageTag.State imgTag = new ImageTag.State();
+
+ int sortDirection = ss.getSortDirection(cellModel.getSortExpression());
+
+ /* build icon for existing sort */
+ if(ss.isSorted(cellModel.getSortExpression()))
+ imgTag.src = dgss.getSortImagePath(request.getContextPath(), sortDirection);
+ else imgTag.src = dgss.getDefaultSortImagePath(request.getContextPath());
+
+ imgTag.registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.BORDER, "false");
+
+ Map queryParams = dgss.getSortQueryParamsMap(cellModel.getSortExpression());
+
+ String href = null;
+ try {
+ href = JspUtil.createURL(request.getRequestURI(),
+ cellModel.getSortAction(),
+ null,
+ cellModel.getScopeId(),
+ queryParams,
+ dgm.getJspContext());
+ }
+ catch(URISyntaxException se) {
+ String msg = "Exception creating sort URI";
+
+ if(LOGGER.isErrorEnabled())
+ LOGGER.error(msg, se);
+
+ throw new CellDecoratorException(msg, se);
+ }
+
+ aTag.href = href;
+
+ anchorRenderer.doStartTag(appender, aTag);
+ imageRenderer.doStartTag(appender, imgTag);
+ imageRenderer.doEndTag(appender);
+ anchorRenderer.doEndTag(appender);
+
+ return builder.toString();
+ }
+}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java Wed Dec 29 19:01:25 2004
@@ -19,6 +19,7 @@
import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.rendering.IPagerRenderer;
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java Wed Dec 29 19:01:25 2004
@@ -21,6 +21,10 @@
import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+import org.apache.beehive.netui.databinding.datagrid.rendering.impl.AbstractPagerRenderer;
+import org.apache.beehive.netui.databinding.datagrid.rendering.impl.AbstractPagerRenderer;
public class FirstPreviousNextLastPagerRenderer
extends AbstractPagerRenderer
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java Wed Dec 29 19:01:25 2004
@@ -20,6 +20,10 @@
import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+import org.apache.beehive.netui.databinding.datagrid.rendering.impl.AbstractPagerRenderer;
+import org.apache.beehive.netui.databinding.datagrid.rendering.impl.AbstractPagerRenderer;
import org.apache.beehive.netui.util.logging.Logger;
public class PreviousNextPagerRenderer
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java Wed Dec 29 19:01:25 2004
@@ -25,12 +25,14 @@
import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.databinding.datagrid.model.ISort;
+import org.apache.beehive.netui.databinding.datagrid.model.impl.DefaultSort;
/**
* todo: need to support registering URL prefixes that have state service handlers
* and should be omitted from regular URL construction.
*/
-public class DataGridStateService {
+public class DataGridStateService
+ implements java.io.Serializable {
private static final Logger LOGGER = Logger.getInstance(DataGridStateService.class);
@@ -39,7 +41,7 @@
public static final DataGridStateService createInstance(ServletRequest request, String namespace) {
assert request != null;
- assert namespace != null && !namespace.equals("");
+ assert namespace != null && !namespace.equals("");
DataGridStateService dgss = new DataGridStateService(namespace);
dgss.handleRequest(request);
@@ -50,8 +52,8 @@
/* todo: need a factory for creating these state services */
/**
* Default constructor that builds a DataGridStateService with the default
- * configuration including support for a {@link SortService} and a
- * {@link FilterService}.
+ * configuration including support for a {@link org.apache.beehive.netui.databinding.datagrid.services.SortService} and a
+ * {@link org.apache.beehive.netui.databinding.datagrid.services.FilterService}.
*/
private DataGridStateService(String namespace) {
super();
@@ -79,7 +81,7 @@
return _namespace;
}
- public Map getSortQueryParamsMap() {
+ public Map<String, String[]> buildSortQueryParamsMap() {
ISort[] sorts = _sortService.getSorts();
if(sorts == null)
@@ -90,18 +92,73 @@
valueList.add(sorts[i].write(_namespace));
String[] values = (String[])valueList.toArray(new String[0]);
- HashMap map = new HashMap(values.length);
+ HashMap<String, String[]> map = new HashMap<String, String[]>(values.length);
map.put(_sortService.getKey(), values);
return map;
}
-
- public Map getSortParamsMap() {
- throw new UnsupportedOperationException("NYI");
+
+ public Map<String, String[]> buildSortQueryParamsMap(String sortExpression, int direction) {
+ /* todo: consolidate the query param map construction methods */
+ assert sortExpression != null;
+ assert direction == ISort.ASCENDING || direction == ISort.DESCENDING || direction == ISort.NONE;
+
+ ISort[] sorts = _sortService.getSorts();
+
+ ArrayList valueList = new ArrayList(5);
+ if(direction != ISort.NONE && !_sortService.isSorted(sortExpression))
+ valueList.add(DefaultSort.writeSortParam(_namespace, sortExpression, direction));
+
+ if(sorts != null) {
+ /* todo: deal with additional query params here */
+ for(int i = 0; i < sorts.length; i++) {
+ if(sorts[i].getSortExpression().equals(sortExpression)) {
+ if(direction != ISort.NONE)
+ /* todo: broke encapsulation here. bad bad bad. */
+ /* @todo: need to move this parameter handling into some sort of URLParams class that can be *fast* */
+ valueList.add(DefaultSort.writeSortParam(_namespace, sorts[i].getSortExpression(), direction));
+ }
+ else valueList.add(sorts[i].write(_namespace));
+ }
+ }
+
+ HashMap<String, String[]> map = new HashMap<String, String[]>(valueList.size());
+ map.put(_sortService.getKey(), (String[])valueList.toArray(new String[0]));
+ return map;
}
- public String getSortParamsString(String sortExpression) {
- throw new UnsupportedOperationException("NYI");
+ public String getSortImagePath(String contextPath, int direction) {
+ switch (direction)
+ {
+ case ISort.ASCENDING:
+ return contextPath + "/resources/images/sortdown.gif";
+ case ISort.DESCENDING:
+ return contextPath + "/resources/images/sortup.gif";
+ default:
+ assert direction == ISort.NONE : "Encountered an invalid sort direction.";
+ /* todo: need to flag on whether this is sort up or down and set the image accordingly */
+ return getDefaultSortImagePath(contextPath);
+ }
+ }
+
+ public String getDefaultSortImagePath(String contextPath) {
+ /* todo: need to allow external configuration of this image path */
+ return contextPath + "/resources/images/sortable.gif";
+ }
+
+ public Map<String, String[]> getSortQueryParamsMap(String sortExpression) {
+ int sortDirection = _sortService.getSortDirection(sortExpression);
+
+ if(sortDirection == ISort.NONE) {
+ return buildSortQueryParamsMap(sortExpression, ISort.ASCENDING);
+ }
+ else if(sortDirection == ISort.ASCENDING) {
+ return buildSortQueryParamsMap(sortExpression, ISort.DESCENDING);
+ }
+ else if(sortDirection == ISort.DESCENDING) {
+ return buildSortQueryParamsMap(sortExpression, ISort.NONE);
+ }
+ else throw new IllegalStateException("Received invalid sort direction \"" + sortDirection + "\"");
}
private static final SortService ensureSortService(ServletRequest request, String namespace) {
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/SortService.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/SortService.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/SortService.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/SortService.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/SortService.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/SortService.java Wed Dec 29 19:01:25 2004
@@ -27,7 +27,8 @@
/**
*/
-public class SortService {
+public class SortService
+ implements java.io.Serializable {
private static final Logger LOGGER = Logger.getInstance(SortService.class);
private static final String SORT_DELIM = "~";
@@ -36,6 +37,7 @@
public static final SortService getInstance(ServletRequest request, String namespace) {
assert request != null;
assert namespace != null && !namespace.equals("");
+
SortService svc = new SortService(namespace);
svc.handleRequest(request);
return svc;
@@ -90,6 +92,7 @@
public boolean addSort(String sortExpression, int direction) {
assert direction == ISort.NONE || direction == ISort.ASCENDING || direction == ISort.DESCENDING;
+ //ISort sort = new DefaultSort(sortExpression, direction);
throw new UnsupportedOperationException("NYI");
}
@@ -142,6 +145,6 @@
}
}
- return (ISort[]) sorts.toArray(new ISort[0]);
+ return (ISort[])sorts.toArray(new ISort[0]);
}
}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/JspUtil.java Wed Dec 29 19:01:25 2004
@@ -31,8 +31,9 @@
public class JspUtil
{
- private static final Logger _logger = Logger.getInstance(JspUtil.class);
+ private static final Logger LOGGER = Logger.getInstance(JspUtil.class);
+ /* do not construct */
private JspUtil() {}
public static final HttpServletRequest getRequest(JspContext jspContext)
@@ -54,10 +55,9 @@
{
PageContext pageContext = getPageContext(jspContext);
- // Add the jpfScopeID parameter, if the scope attribute is present.
+ /* add the jpfScopeID parameter, if the scope attribute is present. */
if(scope != null)
{
- // todo: this won't work -- need to return a URL object here. probably need to write that MutableURL class...
if(params == null)
params = new HashMap();
@@ -67,20 +67,15 @@
// Generate the opening anchor element
MutableURI uri = null;
if(action != null)
- {
uri = PageFlowTagUtils.rewriteActionURL(pageContext, action, params, location);
- }
else if(href != null)
- {
uri = PageFlowTagUtils.rewriteHrefURL(pageContext, href, params, location);
- }
assert uri != null;
- //TODO... shouldn't this also be a call to response.encodeURL(uri.toString()) for session ID?
- if (uri.isAbsolute()) {
+ /* todo: shouldn't this also be a call to response.encodeURL(uri.toString()) for session ID? */
+ if (uri.isAbsolute())
return uri.toXMLString();
- }
- return uri.toString();
+ else return uri.toString();
}
}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java Wed Dec 29 19:01:25 2004
@@ -18,10 +18,8 @@
package org.apache.beehive.netui.tags.databinding.datagrid;
import java.io.IOException;
-import java.io.StringWriter;
import java.util.ArrayList;
import javax.servlet.jsp.tagext.JspTag;
-import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.JspException;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
@@ -31,7 +29,6 @@
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
import org.apache.beehive.netui.tags.html.Formattable;
-import org.apache.beehive.netui.tags.html.FormatTag;
import org.apache.beehive.netui.tags.html.FormatTag.Formatter;
import org.apache.beehive.netui.util.logging.Logger;
@@ -39,17 +36,13 @@
*
*/
public abstract class AbstractColumn
- extends AbstractSimpleTag
- implements Formattable {
-
- private static final Logger _logger = Logger.getInstance(AbstractColumn.class);
-
- static final String COLUMN_MODEL_KEY = "column";
+ extends AbstractSimpleTag
+ implements Formattable {
+ private static final Logger LOGGER = Logger.getInstance(AbstractColumn.class);
private static final String EMPTY_CELL = " ";
private String _headerText = null;
- private ArrayList _formatters = null;
/**
* @netui:attribute required="false" rtexprvalue="true"
@@ -63,10 +56,7 @@
}
public void addFormatter(Formatter formatter) {
- if(_formatters == null)
- _formatters = new ArrayList();
-
- _formatters.add(formatter);
+ internalGetColumnModel().addFormatter(formatter);
}
/**
@@ -83,7 +73,7 @@
* @throws IOException
*/
public void doTag()
- throws JspException, IOException {
+ throws JspException, IOException {
/* todo: this should be done in a TLV */
JspTag parent = findAncestorWithClass(this, Columns.class);
@@ -110,16 +100,18 @@
assert renderState == ColumnsModel.DATA_RENDER_STATE ||
renderState == ColumnsModel.HEADER_RENDER_STATE;
- ColumnModel model = new ColumnModel(dataGridModel, columns);
+ ColumnModel model = internalGetColumnModel();
+ model.setDataGridModel(dataGridModel);
+ model.setColumnsModel(columns);
applyAttributes();
- if (_logger.isDebugEnabled()) {
- _logger.debug("current column\n\trender state: " + renderState);
- _logger.debug("\tidentity hash code: " + System.identityHashCode(model));
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("current column\n\trender state: " + renderState);
+ LOGGER.debug("\tidentity hash code: " + System.identityHashCode(model));
}
- getJspContext().setAttribute(COLUMN_MODEL_KEY, model);
+ DataGridUtil.putColumnModel(getJspContext(), model);
StringBuilder content = new StringBuilder();
AbstractRenderAppender appender = new StringBuilderRenderAppender(content);
@@ -133,12 +125,14 @@
if (content != null && content.length() > 0)
getJspContext().getOut().println(content.toString());
- getJspContext().removeAttribute(COLUMN_MODEL_KEY);
+ DataGridUtil.removeColumnModel(getJspContext());
}
return;
}
+ protected abstract ColumnModel internalGetColumnModel();
+
protected abstract void renderHeaderCell(AbstractRenderAppender appender) throws IOException, JspException;
protected abstract void renderDataCell(AbstractRenderAppender appender) throws IOException, JspException;
@@ -150,27 +144,5 @@
/* todo: apply the global sort / filter attributes here */
protected void applyAttributes()
throws JspException {
- }
-
- protected String formatText(Object text) {
- if (text == null)
- return null;
-
- if (_formatters == null)
- return text.toString();
-
- for (int i = 0; i < _formatters.size(); i++) {
- FormatTag.Formatter currentFormatter = (FormatTag.Formatter) _formatters.get(i);
- assert currentFormatter != null;
- try {
- text = currentFormatter.format(text);
- } catch (JspException e) {
- // todo: need a way to register errors in the datagridmodel so that they can be reported back to the rendering engine
- if (_logger.isErrorEnabled())
- _logger.error("A formatter of type \"" + currentFormatter.getClass().getName() + "\" threw an exception " + e, e);
- }
- }
-
- return text.toString();
}
}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java Wed Dec 29 19:01:25 2004
@@ -23,7 +23,11 @@
import javax.servlet.jsp.JspException;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.HeaderCellModel;
import org.apache.beehive.netui.databinding.datagrid.rendering.TableRenderer;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.HeaderCellDecorator;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecorator;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.SortedCellDecorator;
import org.apache.beehive.netui.tags.IAttributeConsumer;
import org.apache.beehive.netui.tags.html.HtmlConstants;
import org.apache.beehive.netui.tags.rendering.ThTag;
@@ -41,10 +45,47 @@
{
private static final String HEADER_FACET_NAME = "header";
private static final String DEFAULT_FACET_NAME = "default";
+ private static final CellDecorator DEFAULT_HEADER_RENDERER;
+ private static final CellDecorator SORTED_HEADER_RENDERER;
+
+ static {
+ DEFAULT_HEADER_RENDERER = new HeaderCellDecorator();
+ SORTED_HEADER_RENDERER = new SortedCellDecorator(DEFAULT_HEADER_RENDERER);
+ }
private TdTag.State _tdState = new TdTag.State();
private ThTag.State _thState = new ThTag.State();
+ private HeaderCellModel _headerCellModel = new HeaderCellModel();
+
+ /**
+ * @netui:attribute required="false" rtexprvalue="true" description="Boolean switch that sets whether the default sort link should be rendered"
+ */
+ public void setDisableSortRendering(boolean disableSortRendering) {
+ _headerCellModel.setDisableSortRendering(disableSortRendering);
+ }
+
+ /**
+ * @netui:attribute required="false" rtexprvalue="true" description="String expression that represents the field to sort when sorting data in this column"
+ */
+ public void setSortExpression(String sortExpression) {
+ _headerCellModel.setSortExpression(sortExpression);
+ }
+
+ /**
+ * @netui:attribute required="false" rtexprvalue="true" description="Optional String scopeId that qualifies URL parameters into a particular scope"
+ */
+ public void setScopeId(String scopeId) {
+ _headerCellModel.setScopeId(scopeId);
+ }
+
+ /**
+ * @netui:attribute required="false" rtexprvalue="true" description="The action to run when performing a sort on this column"
+ */
+ public void setSortAction(String sortAction) {
+ _headerCellModel.setSortAction(sortAction);
+ }
+
/**
* Sets the onClick javascript event.
*
@@ -368,7 +409,7 @@
* @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.EventPropertyClass" category="event"
*/
public void setHeaderOnMouseOver(String onMouseOver) {
- internalGetThState().registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEOUT, onMouseOver);
+ internalGetThState().registerAttribute(AbstractHtmlState.ATTR_JAVASCRIPT, HtmlConstants.ONMOUSEOVER, onMouseOver);
}
/**
@@ -428,23 +469,23 @@
* @param facet The name of a facet to which the attribute will be applied. This is optional.
*/
public void setAttribute(String name, String value, String facet)
+ throws JspException
{
/* TODO: need to handle pluggable facets here */
if(facet != null && facet.equals(HEADER_FACET_NAME))
- {
addStateAttribute(internalGetThState(), name, value, facet);
- }
else if(facet == null || !facet.equals(DEFAULT_FACET_NAME))
- {
addStateAttribute(internalGetHtmlState(), name, value, facet);
- }
- else
- {
+ else {
String s = Bundle.getString("Tags_AttributeFacetNotSupported", new Object[]{facet});
- throw new RuntimeException(s);
+ throw new JspException(s);
}
}
+ /**
+ *
+ * @return
+ */
protected abstract AbstractHtmlState internalGetHtmlState();
protected void renderHeaderCell(AbstractRenderAppender appender)
@@ -456,16 +497,17 @@
TableRenderer tableRenderer = dataGridModel.getTableRenderer();
assert tableRenderer != null;
- if (_thState.styleClass == null)
- _thState.styleClass = dataGridModel.getCssPolicy().getHeaderCellClass();
+ if (internalGetThState().styleClass == null)
+ internalGetThState().styleClass = dataGridModel.getCssPolicy().getHeaderCellClass();
- tableRenderer.openHeaderCell(_thState, appender);
+ tableRenderer.openHeaderCell(internalGetThState(), appender);
renderHeaderCellContents(appender);
tableRenderer.closeHeaderCell(appender);
}
protected void renderDataCell(AbstractRenderAppender appender)
throws IOException, JspException {
+
DataGridModel dataGridModel = DataGridUtil.getDataGridModel(getJspContext());
assert dataGridModel != null;
@@ -476,13 +518,13 @@
_tdState.styleClass = dataGridModel.getCssPolicy().getDataCellClass();
/* todo: this needs to run in order to cause the nested parameter / attribute / etc tags to do their work */
- /* this could be faster -- would be nice to have the sub-tag *ask* to do this rather than always do it */
+ /* hopefully, the container optimizes this so that if the JspFragment is empty, the invocation is cheap */
JspFragment fragment = getJspBody();
StringWriter sw = new StringWriter();
- String bodyContent = null;
if (fragment != null) {
fragment.invoke(sw);
- bodyContent = sw.toString();
+ /* ignore the return value */
+ sw.toString();
}
tableRenderer.openTableCell(_tdState, appender);
@@ -490,6 +532,7 @@
tableRenderer.closeTableCell(appender);
}
+ /* todo: support rendering sort / filter links */
protected void renderHeaderCellContents(AbstractRenderAppender appender)
throws IOException, JspException {
@@ -501,29 +544,43 @@
bodyContent = sw.toString();
}
- if (getHeaderText() != null)
- appender.append(getHeaderText());
- else if (bodyContent != null)
- appender.append(bodyContent);
- else renderEmptyHeaderCell(appender);
+ _headerCellModel.setDataGridModel(DataGridUtil.getDataGridModel(getJspContext()));
+ _headerCellModel.setColumnsModel(DataGridUtil.getColumnsModel(getJspContext()));
+ _headerCellModel.setBodyContent(bodyContent);
+ _headerCellModel.setHeaderText(getHeaderText());
+
+ if(_headerCellModel.isDisableSortRendering())
+ DEFAULT_HEADER_RENDERER.decorate(getJspContext(), appender, _headerCellModel);
+ else SORTED_HEADER_RENDERER.decorate(getJspContext(), appender, _headerCellModel);
}
protected abstract void renderDataCellContents(AbstractRenderAppender appender);
+ protected void applyAttributes()
+ throws JspException {
+ super.applyAttributes();
+
+ if(_headerCellModel.isSortable()) {
+ if(_headerCellModel.getSortExpression() == null)
+ throw new JspException("Can not enable sorting on a column with a null sort expression");
+ }
+ }
+
private void addStateAttribute(AbstractHtmlState state, String name, String value, String facet)
+ throws JspException
{
boolean error = false;
// validate the name attribute, in the case of an error simply return.
if (name == null || name.length() <= 0) {
String s = Bundle.getString("Tags_AttributeNameNotSet");
- throw new RuntimeException(s);
+ throw new JspException(s);
}
// it's not legal to set the id or name attributes this way
if (name != null && (name.equals(HtmlConstants.ID) || name.equals(HtmlConstants.NAME))) {
String s = Bundle.getString("Tags_AttributeMayNotBeSet", new Object[]{name});
- throw new RuntimeException(s);
+ throw new JspException(s);
}
if (error)
return;
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AnchorColumn.java Wed Dec 29 19:01:25 2004
@@ -18,23 +18,16 @@
package org.apache.beehive.netui.tags.databinding.datagrid;
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
-import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.AnchorCellModel;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.AnchorCellModel;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.AnchorCellDecorator;
import org.apache.beehive.netui.tags.html.URLParams;
-import org.apache.beehive.netui.tags.rendering.AnchorTag;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
-import org.apache.beehive.netui.tags.rendering.SpanTag;
-import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
-import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.util.ParamHelper;
-import java.net.URISyntaxException;
-import java.util.HashMap;
-
/**
* @netui:tag name="anchorColumn"
* description="Renders a column of anchors in a NetUI data grid"
@@ -46,15 +39,9 @@
extends AbstractHtmlColumn
implements URLParams {
- private static final Logger _logger = Logger.getInstance(AnchorColumn.class);
-
- private String _value = null;
- private String _href = null;
- private String _scopeId = null;
- private String _action = null;
- private HashMap _params = null;
+ private static final AnchorCellDecorator DECORATOR = new AnchorCellDecorator();
- private AnchorTag.State _anchorState = new AnchorTag.State();
+ private AnchorCellModel _anchorCellModel = new AnchorCellModel();
public String getTagName() {
return "AnchorColumn";
@@ -67,21 +54,21 @@
* @netui:attribute required="false" rtexprvalue="true"
*/
public void setHref(String href) {
- _href = href;
+ _anchorCellModel.setHref(href);
}
/**
* @netui:attribute required="false"
*/
- public void setScope(String scope) {
- _scopeId = scope;
+ public void setScope(String scopeId) {
+ _anchorCellModel.setScopeId(scopeId);
}
/**
* @netui:attribute required="true" rtexprvalue="true"
*/
public void setValue(String value) {
- _value = value;
+ _anchorCellModel.setValue(value);
}
/**
@@ -89,58 +76,33 @@
* @netui.tldx:attribute category="general" reftype="netui-action-url"
*/
public void setAction(String action) {
- _action = action;
+ _anchorCellModel.setAction((action));
}
public void addParameter(String name, Object value)
- throws JspException {
- if (_params == null)
- _params = new HashMap();
+ throws JspException {
- ParamHelper.addParam(_params, name, value);
+ ParamHelper.addParam(_anchorCellModel.getParams(), name, value);
}
protected void applyAttributes()
throws JspException {
super.applyAttributes();
- if (_action != null && _href != null)
- throw new JspException("Unable to create AnchorColumnModel. The 'action' and 'href' attributes can not both be set.");
+ if (_anchorCellModel.getAction() != null && _anchorCellModel.getHref() != null)
+ throw new JspException("Unable to create AnchorCellModel. The 'action' and 'href' attributes can not both be set.");
}
protected AbstractHtmlState internalGetHtmlState()
{
- return _anchorState;
+ return _anchorCellModel.getAnchorState();
}
protected void renderDataCellContents(AbstractRenderAppender appender) {
+ DECORATOR.decorate(getJspContext(), appender, _anchorCellModel);
+ }
- HttpServletRequest request = (HttpServletRequest)((PageContext)getJspContext()).getRequest();
-
- SpanTag.State spanState = new SpanTag.State();
- AnchorTag.State anchorState = _anchorState;
-
- DataGridModel dgm = DataGridUtil.getDataGridModel(getJspContext());
- assert dgm != null;
-
- String url = null;
- try {
- url = JspUtil.createURL(_href, _action, null, _scopeId, _params, dgm.getJspContext());
- } catch (URISyntaxException mue) {
- /* todo: real, tag based error reporting */
- if (_logger.isErrorEnabled())
- _logger.error("Exception creating URL with href " + _href + " action " + _action, mue);
- }
-
- anchorState.href = url;
-
- TagRenderingBase anchorTag = TagRenderingBase.Factory.getRendering(TagRenderingBase.ANCHOR_TAG, request);
- TagRenderingBase spanTag = TagRenderingBase.Factory.getRendering(TagRenderingBase.SPAN_TAG, request);
-
- anchorTag.doStartTag(appender, anchorState);
- spanTag.doStartTag(appender, spanState);
- appender.append(_value);
- spanTag.doEndTag(appender);
- anchorTag.doEndTag(appender);
+ protected ColumnModel internalGetColumnModel() {
+ return _anchorCellModel;
}
}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java Wed Dec 29 19:01:25 2004
@@ -26,7 +26,6 @@
import org.apache.beehive.netui.databinding.datagrid.model.ColumnsModel;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.model.StylePolicy;
-import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
import org.apache.beehive.netui.databinding.datagrid.rendering.TableRenderer;
import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
@@ -45,8 +44,6 @@
public class Columns
extends AbstractSimpleTag
{
- static final String COLUMNS_MODEL_KEY = "columns";
-
public String getTagName() {
return "Columns";
}
@@ -74,7 +71,7 @@
ColumnsModel columnsModel = new ColumnsModel(dataGridModel);
assert columnsModel != null;
- jspContext.setAttribute(COLUMNS_MODEL_KEY, columnsModel);
+ DataGridUtil.putColumnsModel(jspContext, columnsModel);
StringBuilder content = new StringBuilder();
AbstractRenderAppender appender = new StringBuilderRenderAppender(content);
@@ -94,7 +91,7 @@
{
sw = new StringWriter();
TrTag.State trState = new TrTag.State();
- initDataRowStyle(trState, dataGridModel);
+ setupDataRowStyle(trState, dataGridModel);
tableRenderer.openTableRow(trState, appender);
dataGridModel.nextDataItem();
fragment.invoke(sw);
@@ -104,12 +101,12 @@
columnsModel.setRenderState(ColumnsModel.NO_RENDER_STATE);
- jspContext.removeAttribute(COLUMNS_MODEL_KEY);
+ DataGridUtil.removeColumnsModel(getJspContext());
jspContext.getOut().write(content.toString());
}
}
- private final void initDataRowStyle(TrTag.State state, DataGridModel dataGridModel) {
+ private final void setupDataRowStyle(TrTag.State state, DataGridModel dataGridModel) {
assert state != null;
assert dataGridModel != null;
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java Wed Dec 29 19:01:25 2004
@@ -21,6 +21,7 @@
import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
import org.apache.beehive.netui.databinding.datagrid.rendering.IPagerRenderer;
import org.apache.beehive.netui.databinding.datagrid.rendering.impl.FirstPreviousNextLastPagerRenderer;
+import org.apache.beehive.netui.databinding.datagrid.rendering.impl.FirstPreviousNextLastPagerRenderer;
import org.apache.beehive.netui.databinding.datagrid.rendering.impl.PreviousNextPagerRenderer;
import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.util.logging.Logger;
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&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java&r2=123694
==============================================================================
--- 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 Wed Dec 29 19:01:25 2004
@@ -33,15 +33,14 @@
import org.apache.beehive.netui.databinding.datagrid.model.impl.EmptyStylePolicy;
import org.apache.beehive.netui.databinding.datagrid.util.PagedDataSet;
import org.apache.beehive.netui.databinding.datagrid.rendering.TableRenderer;
+import org.apache.beehive.netui.databinding.datagrid.rendering.TableRenderer;
+import org.apache.beehive.netui.databinding.datagrid.services.DataGridStateService;
import org.apache.beehive.netui.script.common.IDataAccessProvider;
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.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
-import org.apache.beehive.netui.tags.rendering.TableTag;
-import org.apache.beehive.netui.tags.rendering.TrTag;
-import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.util.iterator.IteratorFactory;
/**
@@ -55,10 +54,6 @@
extends AbstractSimpleTag
implements IDataAccessProvider {
- private static final Logger _logger = Logger.getInstance(DataGrid.class);
-
- static final String DATA_GRID_MODEL_KEY = "dataGrid";
-
private static final String DEFAULT_STYLE_POLICY_VALUE = "default";
private static final String NO_STYLE_POLICY_VALUE = "none";
private static final StylePolicy DEFAULT_STYLE_POLICY = new DefaultStylePolicy();
@@ -70,6 +65,7 @@
private String _styleClassPrefix = null;
private String _dataSource = null;
private DataGridModel _gridModel = null;
+ private DataGridStateService _dataGridStateService = null;
public String getTagName() {
return "DataGrid";
@@ -111,6 +107,7 @@
_disableDefaultPager = disableDefaultPager;
}
+ /* todo: should this be wrapped in try / finally so that the PageContext gets cleaned up correctly? */
public void doTag()
throws JspException, IOException {
@@ -136,89 +133,85 @@
TableRenderer tableRenderer = new TableRenderer(request, stylePolicy);
_gridModel = new DataGridModel(getJspContext(), _name, dataSet);
+ if(_dataGridStateService != null)
+ _gridModel.setDataGridStateService(_dataGridStateService);
+
_gridModel.setCssPolicy(stylePolicy);
_gridModel.setTableRenderer(tableRenderer);
JspFragment fragment = getJspBody();
- if (fragment == null)
+ if (fragment != null)
{
- cleanup();
- return;
- }
- StringBuilder builder = new StringBuilder(2048);
- AbstractRenderAppender appender = new StringBuilderRenderAppender(builder);
+ StringBuilder builder = new StringBuilder(2048);
+ AbstractRenderAppender appender = new StringBuilderRenderAppender(builder);
- /* todo: optimize -- this doesn't need to happen when the data set is empty */
- DataAccessProviderStack.addDataAccessProvider(this, getJspContext());
- getJspContext().setAttribute(DATA_GRID_MODEL_KEY, _gridModel);
-
- /*
- 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: should you be able to turn this off for perf?
- */
- StringWriter sw = new StringWriter();
- fragment.invoke(sw);
-
- if(_gridModel.getPagerModel() == null)
- _gridModel.setPagerModel(new PagerModel(_gridModel));
-
- /*
- now that the model objects have been initialized, it's time to start rendering
- */
- _gridModel.beforeRender();
- _gridModel.setRenderState(DataGridModel.START_RENDER_STATE);
-
- if (!_disableDefaultPager)
- _gridModel.renderPager(appender);
-
- tableRenderer.openTable(null, appender);
-
- /* render the caption */
- _gridModel.setRenderState(DataGridModel.CAPTION_RENDER_STATE);
- sw = new StringWriter();
- fragment.invoke(sw);
- String caption = sw.toString();
- if (caption != null && !caption.trim().equals("")) {
- tableRenderer.openCaption(appender);
- appender.append(caption);
- tableRenderer.closeCaption(appender);
- }
+ /* todo: optimize -- this doesn't need to happen when the data set is empty */
+ DataAccessProviderStack.addDataAccessProvider(this, getJspContext());
+ DataGridUtil.putDataGridModel(getJspContext(), _gridModel);
+
+ /*
+ 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: should you be able to turn this off for perf?
+ */
+ StringWriter sw = new StringWriter();
+ fragment.invoke(sw);
+
+ if(_gridModel.getPagerModel() == null)
+ _gridModel.setPagerModel(new PagerModel(_gridModel));
+
+ /*
+ now that the model objects have been initialized, it's time to start rendering
+ */
+ _gridModel.beforeRender();
+ _gridModel.setRenderState(DataGridModel.START_RENDER_STATE);
+
+ if (!_disableDefaultPager)
+ _gridModel.renderPager(appender);
+
+ tableRenderer.openTable(null, appender);
+
+ /* render the caption */
+ _gridModel.setRenderState(DataGridModel.CAPTION_RENDER_STATE);
+ sw = new StringWriter();
+ fragment.invoke(sw);
+ String caption = sw.toString();
+ if (caption != null && !caption.trim().equals("")) {
+ tableRenderer.openCaption(appender);
+ appender.append(caption);
+ tableRenderer.closeCaption(appender);
+ }
+
+ /* render the grid rows (header and data) */
+ _gridModel.setRenderState(DataGridModel.GRID_RENDER_STATE);
+ sw = new StringWriter();
+ fragment.invoke(sw);
+ appender.append(sw.toString());
+
+ /* render the footer */
+ _gridModel.setRenderState(DataGridModel.FOOTER_RENDER_STATE);
+ sw = new StringWriter();
+ fragment.invoke(sw);
+ String footer = sw.toString();
+ String trimmed = footer.trim();
+ if (footer != null && !trimmed.trim().equals("")) {
+ tableRenderer.openFooterRow(null, appender);
+ appender.append(footer);
+ tableRenderer.closeFooterRow(appender);
+ }
- /* render the grid rows (header and data) */
- _gridModel.setRenderState(DataGridModel.GRID_RENDER_STATE);
- sw = new StringWriter();
- fragment.invoke(sw);
- appender.append(sw.toString());
-
- /* render the footer */
- _gridModel.setRenderState(DataGridModel.FOOTER_RENDER_STATE);
- sw = new StringWriter();
- fragment.invoke(sw);
- String footer = sw.toString();
- String trimmed = footer.trim();
- if (footer != null && !trimmed.trim().equals("")) {
- tableRenderer.openFooterRow(null, appender);
- appender.append(footer);
- tableRenderer.closeFooterRow(appender);
- }
+ tableRenderer.closeTable(appender);
- tableRenderer.closeTable(appender);
+ _gridModel.setRenderState(DataGridModel.END_RENDER_STATE);
- _gridModel.setRenderState(DataGridModel.END_RENDER_STATE);
-
- write(builder.toString());
-
- cleanup();
- }
+ write(builder.toString());
+ }
- private void cleanup()
- {
DataAccessProviderStack.removeDataAccessProvider(getJspContext());
- getJspContext().removeAttribute(DATA_GRID_MODEL_KEY);
+ DataGridUtil.removeDataGridModel(getJspContext());
}
/* ===========================================================
@@ -232,8 +225,6 @@
}
public Object getCurrentItem() {
- if (_logger.isDebugEnabled()) _logger.debug("current item: " + _gridModel.getCurrentItem());
-
return _gridModel.getCurrentItem();
}
@@ -245,9 +236,8 @@
return "{" + _dataSource + "}";
}
+ /* todo: seems that this should be done via the stack of DAPs in the PageContext */
public IDataAccessProvider getProviderParent() {
- IDataAccessProvider dap =
- (IDataAccessProvider) SimpleTagSupport.findAncestorWithClass(this, IDataAccessProvider.class);
- return dap;
+ return (IDataAccessProvider)SimpleTagSupport.findAncestorWithClass(this, IDataAccessProvider.class);
}
}
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?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGridUtil.java&r2=123694
==============================================================================
--- 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 Dec 29 19:01:25 2004
@@ -17,30 +17,60 @@
*/
package org.apache.beehive.netui.tags.databinding.datagrid;
+import javax.servlet.jsp.JspContext;
+
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.model.ColumnsModel;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
-import javax.servlet.jsp.JspContext;
+/* todo: need to provide add / remove methods here so that the data model and JspContext interactions are captured in a single location */
+/**
+ *
+ */
public class DataGridUtil {
- private DataGridUtil() {}
+ private static final String DATA_GRID_MODEL_KEY = "dataGrid";
+ private static final String COLUMNS_MODEL_KEY = "columns";
+ private static final String COLUMN_MODEL_KEY = "column";
- public static final DataGridModel getDataGridModel(JspContext jspContext)
- {
- Object model = jspContext.getAttribute(DataGrid.DATA_GRID_MODEL_KEY);
+ private DataGridUtil() {
+ }
+ public static final DataGridModel getDataGridModel(JspContext jspContext) {
+ Object model = jspContext.getAttribute(DATA_GRID_MODEL_KEY);
assert model != null ? model instanceof DataGridModel : true;
-
return (DataGridModel)model;
}
- public static final ColumnsModel getColumnsModel(JspContext jspContext)
- {
- Object model = jspContext.getAttribute(Columns.COLUMNS_MODEL_KEY);
+ public static final void putDataGridModel(JspContext jspContext, DataGridModel dataGridModel) {
+ jspContext.setAttribute(DATA_GRID_MODEL_KEY, dataGridModel);
+ }
+
+ public static final void removeDataGridModel(JspContext jspContext) {
+ jspContext.removeAttribute(DATA_GRID_MODEL_KEY);
+ }
+ public static final ColumnsModel getColumnsModel(JspContext jspContext) {
+ Object model = jspContext.getAttribute(COLUMNS_MODEL_KEY);
assert model != null ? model instanceof ColumnsModel : true;
+ return (ColumnsModel) model;
+ }
+
+ public static final void putColumnsModel(JspContext jspContext, ColumnsModel columnsModel) {
+ jspContext.setAttribute(COLUMNS_MODEL_KEY, columnsModel);
+ }
+
+ public static final void removeColumnsModel(JspContext jspContext) {
+ jspContext.removeAttribute(COLUMNS_MODEL_KEY);
+ }
+
+ public static final void putColumnModel(JspContext jspContext, ColumnModel columnModel) {
+ jspContext.setAttribute(COLUMN_MODEL_KEY, columnModel);
+ }
- return (ColumnsModel)model;
+ public static final void removeColumnModel(JspContext jspContext) {
+ assert jspContext.getAttribute(COLUMN_MODEL_KEY) != null : "Did not find a ColumnModel under the key " + COLUMN_MODEL_KEY;
+ jspContext.removeAttribute(COLUMN_MODEL_KEY);
}
}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageColumn.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageColumn.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageColumn.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageColumn.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageColumn.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ImageColumn.java Wed Dec 29 19:01:25 2004
@@ -17,15 +17,13 @@
*/
package org.apache.beehive.netui.tags.databinding.datagrid;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.ImageCellModel;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.ImageCellDecorator;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
-import org.apache.beehive.netui.tags.rendering.ImageTag;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
-import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
import org.apache.beehive.netui.tags.html.HtmlConstants;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.http.HttpServletRequest;
-
/**
*
* @netui:tag name="imageColumn" description="Renders a column of images in a NetUI data grid" body-content="scriptless"
@@ -35,7 +33,9 @@
public class ImageColumn
extends AbstractHtmlColumn
{
- private ImageTag.State _imageState = null;
+ private static final ImageCellDecorator DECORATOR = new ImageCellDecorator();
+
+ private ImageCellModel _imageColumnModel = null;
/**
* @jsptagref.attributedescription The source of the image to display.
@@ -45,21 +45,21 @@
* @netui.tldx:attribute propertyclass="workshop.jspdesigner.properties.URIPropertyClass" reftype="img-url"
*/
public void setSrc(String src) {
- internalGetImageState().src = src;
+ _imageColumnModel.getImageState().src = src;
}
/**
* @netui:attribute required="false" rtexprvalue="true"
*/
public void setAlign(String align) {
- internalGetImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.ALIGN, align);
+ _imageColumnModel.getImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.ALIGN, align);
}
/**
* @netui:attribute required="false" rtexprvalue="true"
*/
public void setHspace(String hspace) {
- internalGetImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.HSPACE, hspace);
+ _imageColumnModel.getImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.HSPACE, hspace);
}
/**
@@ -69,14 +69,14 @@
* @netui:attribute required="false" rtexprvalue="true"
*/
public void setVspace(String vspace) {
- internalGetImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.VSPACE, vspace);
+ _imageColumnModel.getImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.VSPACE, vspace);
}
/**
* @netui:attribute required="false" rtexprvalue="true"
*/
public void setBorder(String border) {
- internalGetImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.BORDER, border);
+ _imageColumnModel.getImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.BORDER, border);
}
/**
@@ -86,7 +86,7 @@
* @netui:attribute required="false" rtexprvalue="true"
*/
public void setHeight(String height) {
- internalGetImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.HEIGHT, height);
+ _imageColumnModel.getImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.HEIGHT, height);
}
/**
@@ -96,7 +96,7 @@
* @netui:attribute required="false" rtexprvalue="true"
*/
public void setWidth(String width) {
- internalGetImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.WIDTH, width);
+ _imageColumnModel.getImageState().registerAttribute(AbstractHtmlState.ATTR_GENERAL, HtmlConstants.WIDTH, width);
}
public String getTagName()
@@ -106,23 +106,20 @@
public void renderDataCellContents(AbstractRenderAppender appender)
{
- HttpServletRequest request = (HttpServletRequest)((PageContext)getJspContext()).getRequest();
-
- TagRenderingBase br = TagRenderingBase.Factory.getRendering(TagRenderingBase.IMAGE_TAG, request);
- br.doStartTag(appender, _imageState);
- br.doEndTag(appender);
+ DECORATOR.decorate(getJspContext(), appender, _imageColumnModel);
}
- private ImageTag.State internalGetImageState() {
- if(_imageState == null)
- _imageState = new ImageTag.State();
-
- return _imageState;
+ private AbstractHtmlState internalGetImageState() {
+ return _imageColumnModel.getImageState();
}
protected AbstractHtmlState internalGetHtmlState()
{
return internalGetImageState();
+ }
+
+ protected ColumnModel internalGetColumnModel() {
+ return _imageColumnModel;
}
}
Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/LiteralColumn.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/LiteralColumn.java?view=diff&rev=123694&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/LiteralColumn.java&r1=123693&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/LiteralColumn.java&r2=123694
==============================================================================
--- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/LiteralColumn.java (original)
+++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/LiteralColumn.java Wed Dec 29 19:01:25 2004
@@ -21,6 +21,10 @@
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.LiteralCellModel;
+import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
+import org.apache.beehive.netui.databinding.datagrid.model.cell.LiteralCellModel;
+import org.apache.beehive.netui.databinding.datagrid.rendering.cell.LiteralCellDecorator;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
@@ -37,42 +41,31 @@
public class LiteralColumn
extends AbstractHtmlColumn
{
- private static final SpanTag.State DEFAULT_SPAN_STATE = new SpanTag.State();
+ private static final LiteralCellDecorator DECORATOR = new LiteralCellDecorator();
- private String _value = null;
- private SpanTag.State _spanState = new SpanTag.State();
+ private LiteralCellModel _literalColumnModel = new LiteralCellModel();
public String getTagName() {
- return "LiteralColumnModel";
+ return "LiteralCellModel";
}
/**
* @netui:attribute required="true" rtexprvalue="true"
*/
public void setValue(String value) {
- _value = value;
- }
-
- protected void applyAttributes()
- throws JspException {
- super.applyAttributes();
-
- /* todo: need to apply the <span> HTML state information to the ColumnModel here */
+ _literalColumnModel.setValue(value);
}
protected void renderDataCellContents(AbstractRenderAppender appender) {
- HttpServletRequest request = (HttpServletRequest)((PageContext)getJspContext()).getRequest();
- TagRenderingBase span = TagRenderingBase.Factory.getRendering(TagRenderingBase.SPAN_TAG, request);
-
- String formatted = formatText(_value);
-
- span.doStartTag(appender, _spanState != null ? _spanState : DEFAULT_SPAN_STATE);
- appender.append(formatted);
- span.doEndTag(appender);
+ DECORATOR.decorate(getJspContext(), appender, _literalColumnModel);
}
protected AbstractHtmlState internalGetHtmlState()
{
- return _spanState;
+ return _literalColumnModel.getSpanState();
+ }
+
+ protected ColumnModel internalGetColumnModel() {
+ return _literalColumnModel;
}
}
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/Controller.jpf
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/Controller.jpf?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/Controller.jpf Wed Dec 29 19:01:25 2004
@@ -0,0 +1,51 @@
+/*
+ * 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 databinding.datagrid.simplesort;
+
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+/**
+ *
+ */
+@Jpf.Controller
+public class Controller
+ extends PageFlowController {
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "success",
+ path = "index.jsp")
+ })
+ public Forward begin() {
+ return new Forward("success");
+ }
+
+ @Jpf.Action(
+ forwards = {
+ @Jpf.Forward(
+ name = "success",
+ path = "index.jsp")
+ })
+ public Forward sort() {
+ /* todo: at some point, need to start doing some sorting here */
+ return new Forward("success");
+ }
+}
Added: incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/index.jsp
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/index.jsp?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/databinding/datagrid/simplesort/index.jsp Wed Dec 29 19:01:25 2004
@@ -0,0 +1,27 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib uri="beehive-netui-tags-html.tld" prefix="netui"%>
+<%@ taglib uri="beehive-netui-tags-databinding.tld" prefix="netui-data"%>
+<%@ taglib uri="beehive-netui-tags-template.tld" prefix="netui-template"%>
+<%@ page import="org.apache.beehive.netui.script.common.DataAccessProviderBean"%>
+<netui-template:template templatePage="../site/template.jsp">
+ <netui-template:setAttribute name="title" value="Basic Data Grid"/>
+ <netui-template:section name="body">
+ <p>
+<%@ include file="../util/portfolioXmlBean.jsp" %>
+<br/>
+<netui-data:dataGrid dataSource="pageScope.stocks" name="portfolio">
+ <netui-data:columns>
+ <netui-data:literalColumn headerText="Symbol" value="${container.item.symbol}" sortExpression="symbol" sortAction="sort"/>
+ <netui-data:literalColumn headerText="Price" value="${container.item.price}" sortExpression="price"/>
+ <netui-data:anchorColumn headerText="Web" href="${container.item.web}" value="${container.item.name}" sortExpression="web">
+ <netui:parameter name="rowid" value="${container.index}"/>
+ <netui:parameter name="symbol" value="${container.item.symbol}"/>
+ </netui-data:anchorColumn>
+ </netui-data:columns>
+</netui-data:dataGrid>
+<br/>
+<netui:anchor href="index.jsp">Reset</netui:anchor>
+<br/>
+ </p>
+ </netui-template:section>
+</netui-template:template>
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/back.gif
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/back.gif?view=auto&rev=123693
==============================================================================
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/cancel.gif
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/cancel.gif?view=auto&rev=123693
==============================================================================
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/delete.gif
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/delete.gif?view=auto&rev=123693
==============================================================================
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/details.gif
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/details.gif?view=auto&rev=123693
==============================================================================
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/edit.gif
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/edit.gif?view=auto&rev=123693
==============================================================================
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/grid.gif
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/grid.gif?view=auto&rev=123693
==============================================================================
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/insert.gif
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/insert.gif?view=auto&rev=123693
==============================================================================
Deleted: /incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/update.gif
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/resources/images/update.gif?view=auto&rev=123693
==============================================================================
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&rev=123694&p1=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml&r1=123693&p2=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml&r2=123694
==============================================================================
--- 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 Wed Dec 29 19:01:25 2004
@@ -2371,6 +2371,21 @@
</features>
</test>
<test>
+ <name>DataGridSimpleSort</name>
+ <description>DataGridSimpleSort</description>
+ <webapp>coreWeb</webapp>
+ <categories>
+ <category>bvt</category>
+ <category>drt</category>
+ <category>datagrid</category>
+ <category>databinding</category>
+ </categories>
+ <features>
+ <feature>Databinding</feature>
+ <feature>Data Grid</feature>
+ </features>
+ </test>
+ <test>
<name>DateConverter</name>
<description>Date Converter on post.</description>
<webapp>coreWeb</webapp>
Added: incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridSimpleSort.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridSimpleSort.xml?view=auto&rev=123694
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/DataGridSimpleSort.xml Wed Dec 29 19:01:25 2004
@@ -0,0 +1,2828 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session">
+ <ses:sessionName>DataGridSimpleSort</ses:sessionName>
+ <ses:tester>ekoneil</ses:tester>
+ <ses:startDate>29 Dec 2004, 07:29:36.853 PM MST</ses:startDate>
+ <ses:description>Simple test of sorting parameters in the URL. This doesn't actually *sort* any data yet -- just makes sure that the right things show up in the query params.</ses:description>
+ <ses:tests>
+ <ses:test>
+ <ses:testNumber>1</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/Controller.jpf</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>2</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/sort.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~symbol</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/Controller.jpf</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Esymbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb&netui_sort=portfolio%7Esymbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>3</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/sort.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~-symbol</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?"><img src="/coreWeb/resources/images/sortup.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb&netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>4</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~price</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~-symbol</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7E-symbol</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Eprice"><img src="/coreWeb/resources/images/sortup.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-price&netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb&netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>5</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~-price</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~-symbol</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-symbol</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7E-price"><img src="/coreWeb/resources/images/sortup.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortup.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb&netui_sort=portfolio%7E-price&netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>6</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~-symbol</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-price&netui_sort=portfolio%7E-symbol</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?"><img src="/coreWeb/resources/images/sortup.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb&netui_sort=portfolio%7E-symbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>7</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/sort.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-symbol</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>8</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~web</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/sort.do?</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>9</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~price</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~web</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-price&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>10</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/sort.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~symbol</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~price</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~web</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7E-symbol&netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7E-price&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>11</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/sort.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~-symbol</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~price</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~web</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortup.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-symbol&netui_sort=portfolio%7E-price&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-symbol&netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>12</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/sort.do</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~price</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~web</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7E-symbol&netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-price&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>13</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~-price</ses:value>
+ </ses:parameter>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~web</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7E-price&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortup.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-price&netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>14</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~web</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-price&netui_sort=portfolio%7Eweb</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortdown.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>15</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters>
+ <ses:parameter>
+ <ses:name>netui_sort</ses:name>
+ <ses:value>portfolio~-web</ses:value>
+ </ses:parameter>
+ </ses:parameters>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol&netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice&netui_sort=portfolio%7E-web"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?"><img src="/coreWeb/resources/images/sortup.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ <ses:test>
+ <ses:testNumber>16</ses:testNumber>
+ <ses:request>
+ <ses:protocol>HTTP</ses:protocol>
+ <ses:protocolVersion>1.1</ses:protocolVersion>
+ <ses:host>localhost</ses:host>
+ <ses:port>8080</ses:port>
+ <ses:uri>/coreWeb/databinding/datagrid/simplesort/index.jsp</ses:uri>
+ <ses:method>GET</ses:method>
+ <ses:parameters/>
+ <ses:cookies>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>FD390CFD67831B0E1EBAD413BFBF45E3</ses:value>
+ </ses:cookie>
+ <ses:cookie>
+ <ses:name>JSESSIONID</ses:name>
+ <ses:value>BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:cookie>
+ </ses:cookies>
+ <ses:headers>
+ <ses:header>
+ <ses:name>accept</ses:name>
+ <ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-charset</ses:name>
+ <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-encoding</ses:name>
+ <ses:value>gzip,deflate</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>accept-language</ses:name>
+ <ses:value>en-us,en;q=0.5</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>connection</ses:name>
+ <ses:value>keep-alive</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>cookie</ses:name>
+ <ses:value>JSESSIONID=FD390CFD67831B0E1EBAD413BFBF45E3; JSESSIONID=BRI59EcGUv52yFbTd6wc1JPayFFcRc5ZB2RvEDVDglG1srBaWr2s!-1531031622</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>host</ses:name>
+ <ses:value>localhost:8080</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>keep-alive</ses:name>
+ <ses:value>300</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>referer</ses:name>
+ <ses:value>http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7E-web</ses:value>
+ </ses:header>
+ <ses:header>
+ <ses:name>user-agent</ses:name>
+ <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10.1</ses:value>
+ </ses:header>
+ </ses:headers>
+ </ses:request>
+ <ses:response>
+ <ses:statusCode>200</ses:statusCode>
+ <ses:reason/>
+ <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+
+ <head>
+ <title>NetUI Data Grid Samples</title>
+ <link rel="stylesheet" href="/coreWeb/databinding/datagrid/site/css/default.css" type="text/css"/>
+ </head>
+ <base href="http://localhost:8080/coreWeb/databinding/datagrid/simplesort/index.jsp">
+ <body>
+ <p>
+ <b>Basic Data Grid</b>
+ <table width="100%">
+ <tr><td></td></tr>
+ <tr><td>
+
+ <p>
+
+
+
+
+<br/>
+Page 1 of 1
+<table class="datagrid">
+
+
+<thead>
+<tr class="datagrid-header">
+ <th class="datagrid-header-cell">Symbol <a href="/coreWeb/databinding/datagrid/simplesort/sort.do?netui_sort=portfolio%7Esymbol"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Price <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eprice"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+ <th class="datagrid-header-cell">Web <a href="/coreWeb/databinding/datagrid/simplesort/index.jsp?netui_sort=portfolio%7Eweb"><img src="/coreWeb/resources/images/sortable.gif" border="false"></a></th>
+
+
+
+</tr></thead>
+
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>BEAS</span></td>
+
+ <td class="datagrid-data-cell"><span>14.35</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.bea.com?rowid=1&symbol=BEAS"><span>BEA Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>CSCO</span></td>
+
+ <td class="datagrid-data-cell"><span>19.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.cisco.com?rowid=2&symbol=CSCO"><span>Cisco Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>GE</span></td>
+
+ <td class="datagrid-data-cell"><span>59.42</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.ge.com?rowid=3&symbol=GE"><span>General Electric</span></a></td>
+
+
+</tr>
+<tr class="datagrid-odd">
+ <td class="datagrid-data-cell"><span>RHAT</span></td>
+
+ <td class="datagrid-data-cell"><span>18.2</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.redhat.com?rowid=4&symbol=RHAT"><span>RedHat Systems</span></a></td>
+
+
+</tr>
+<tr class="datagrid-even">
+ <td class="datagrid-data-cell"><span>YHOO</span></td>
+
+ <td class="datagrid-data-cell"><span>48.16</span></td>
+
+ <td class="datagrid-data-cell"><a href="http://www.yahoo.com?rowid=5&symbol=YHOO"><span>Yahoo Inc</span></a></td>
+
+
+</tr>
+</table>
+
+
+<br/>
+<a href="/coreWeb/databinding/datagrid/simplesort/index.jsp">Reset</a>
+<br/>
+ </p>
+
+ </td></tr>
+ </p>
+ <table>
+ <tr><td><a href="/netuiDRT/databinding/datagrid/basic/index.jsp">Home</a></td></tr>
+ </table>
+ </p>
+ </body>
+
+</html>]]></ses:responseBody>
+ </ses:response>
+ </ses:test>
+ </ses:tests>
+ <ses:endDate>29 Dec 2004, 07:29:59.135 PM MST</ses:endDate>
+ <ses:testCount>16</ses:testCount>
+</ses:recorderSession>
\ No newline at end of file