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());
         }
     }
 

Reply via email to