Author: ekoneil Date: Wed Jan 19 16:20:38 2005 New Revision: 125689 URL: http://svn.apache.org/viewcvs?view=rev&rev=125689 Log: Add sortHref / filterHref attributes to allow setting sort / filter targets that aren't JPF actions.
This allows simply returning to a JSP in order to sort / filter a data set. BB: self DRT: NetUI pass Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java Modified: 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=diff&rev=125689&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java&r1=125688&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java&r2=125689 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java Wed Jan 19 16:20:38 2005 @@ -33,10 +33,12 @@ private boolean _disableSortRendering = false; private String _sortExpression = null; private String _sortAction = null; + private String _sortHref = null; private boolean _disableFilterRendering = false; private String _filterExpression = null; private String _filterAction = null; + private String _filterHref = null; public String getScopeId() { return _scopeId; @@ -54,6 +56,14 @@ _sortAction = sortAction; } + public String getSortHref() { + return _sortHref; + } + + public void setSortHref(String sortHref) { + _sortHref = sortHref; + } + public boolean isSortable() { return _sortExpression != null; } @@ -96,6 +106,18 @@ public void setFilterAction(String filterAction) { _filterAction = filterAction; + } + + public String getFilterHref() { + return _filterHref; + } + + public void setFilterHref(String filterHref) { + _filterHref = filterHref; + } + + public boolean isFilterable() { + return _filterExpression != null; } public String getHeaderText() { Modified: 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=diff&rev=125689&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java&r1=125688&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java&r2=125689 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java Wed Jan 19 16:20:38 2005 @@ -99,12 +99,12 @@ String href = null; try { - href = JspUtil.createURL(request.getRequestURI(), - cellModel.getSortAction(), - null, - cellModel.getScopeId(), - queryParams, - dgm.getJspContext()); + href = JspUtil.createURL(cellModel.getSortHref(), + cellModel.getSortAction(), + null, + cellModel.getScopeId(), + queryParams, + dgm.getJspContext()); } catch(URISyntaxException se) { String msg = "Exception creating sort URI"; 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=125689&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r1=125688&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r2=125689 ============================================================================== --- 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 Jan 19 16:20:38 2005 @@ -28,6 +28,7 @@ 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.databinding.datagrid.util.JspUtil; import org.apache.beehive.netui.tags.IAttributeConsumer; import org.apache.beehive.netui.tags.html.HtmlConstants; import org.apache.beehive.netui.tags.rendering.ThTag; @@ -87,6 +88,13 @@ } /** + * @netui:attribute required="false" rtexprvalue="true" description="The href to use when performing a filter on this column" + */ + public void setFilterHref(String filterHref) { + _headerCellModel.setFilterHref(filterHref); + } + + /** * @netui:attribute required="false" rtexprvalue="true" description="Boolean switch that sets whether the default filter link should be rendered" */ public void setDisableSortRendering(boolean disableSortRendering) { @@ -108,6 +116,13 @@ } /** + * @netui:attribute required="false" rtexprvalue="true" description="The href to use when performing a filter on this column" + */ + public void setSortHref(String sortHref) { + _headerCellModel.setSortHref(sortHref); + } + + /** * Sets the onClick javascript event. * * @param onClick - the onClick event. @@ -578,9 +593,28 @@ throws JspException { super.applyAttributes(); + if(_headerCellModel.getFilterHref() != null && _headerCellModel.getFilterAction() != null) + throw new JspException("Can not set both the filter action and HREF attributes"); + + if(_headerCellModel.getSortHref() != null && _headerCellModel.getSortAction() != null) + throw new JspException("Can not set both the sort action and HREF attributes"); + if(_headerCellModel.isSortable()) { if(_headerCellModel.getSortExpression() == null) throw new JspException("Can not enable sorting on a column with a null sort expression"); + + /* set an intelligent default for the sorting HREF */ + if(_headerCellModel.getSortHref() == null && _headerCellModel.getSortAction() == null) + _headerCellModel.setSortHref(JspUtil.getRequest(getJspContext()).getRequestURI()); + } + + if(_headerCellModel.isFilterable()) { + if(_headerCellModel.getFilterExpression() == null) + throw new JspException("Can not enable filtering on a column with a null filter expression"); + + /* set an intelligent default for the filtering HREF */ + if(_headerCellModel.getFilterHref() == null && _headerCellModel.getFilterAction() == null) + _headerCellModel.setFilterHref(JspUtil.getRequest(getJspContext()).getRequestURI()); } }
