Author: ekoneil
Date: Sun Jan 16 12:28:34 2005
New Revision: 125363

URL: http://svn.apache.org/viewcvs?view=rev&rev=125363
Log:
Data grid updates.

- Fix JIRA 157
- implement ability to change filter query param key
- fix API for sort / filter information in AbstractHtmlColumn

BB: self
DRT: Beehive pass
BVT: NetUI pass


Removed:
   
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/util/
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/model/filter/FilterModel.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/databinding/datagrid/services/DataGridStateService.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.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

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=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java&r2=125363
==============================================================================
--- 
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
    Sun Jan 16 12:28:34 2005
@@ -34,6 +34,10 @@
     private String _sortExpression = null;
     private String _sortAction = null;
 
+    private boolean _disableFilterRendering = false;
+    private String _filterExpression = null;
+    private String _filterAction = null;
+
     public String getScopeId() {
         return _scopeId;
     }
@@ -68,6 +72,30 @@
 
     public void setSortExpression(String sortExpression) {
         _sortExpression = sortExpression;
+    }
+
+    public boolean isDisableFilterRendering() {
+        return _disableFilterRendering;
+    }
+
+    public void setDisableFilterRendering(boolean disableFilterRendering) {
+        _disableFilterRendering = disableFilterRendering;
+    }
+
+    public String getFilterExpression() {
+        return _filterExpression;
+    }
+
+    public void setFilterExpression(String filterExpression) {
+        _filterExpression = filterExpression;
+    }
+
+    public String getFilterAction() {
+        return _filterAction;
+    }
+
+    public void setFilterAction(String filterAction) {
+        _filterAction = filterAction;
     }
 
     public String getHeaderText() {

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java&r2=125363
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java
      (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java
      Sun Jan 16 12:28:34 2005
@@ -44,7 +44,9 @@
     }
 
     public String getFilterParamKey() {
-        return _filterParamKey;
+        if(_filterParamKey == null)
+            return IFilter.FILTER_PARAM_KEY;
+        else return _filterParamKey;
     }
 
     public List<IFilter> getFilters(String filterExpression) {
@@ -59,10 +61,9 @@
             return false;
 
         if(_filters.containsKey(filterExpression)) {
-            assert ((List)_filters.get(filterExpression)).size() > 0;
+            assert _filters.get(filterExpression).size() > 0;
             return true;
-        } else
-            return false;
+        } else return false;
     }
 
     /**

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=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java&r2=125363
==============================================================================
--- 
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
    Sun Jan 16 12:28:34 2005
@@ -58,12 +58,10 @@
         assert cellModel instanceof HeaderCellModel;
         HeaderCellModel headerCellModel = (HeaderCellModel)cellModel;
 
-        String sortLink = null;
-
         _decorator.decorate(jspContext, appender, cellModel);
 
         if(headerCellModel.isSortable()) {
-            sortLink = buildSortLink(jspContext, headerCellModel);
+            String sortLink = buildSortLink(jspContext, headerCellModel);
             appender.append("&nbsp;");
             appender.append(sortLink);
         }

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=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r2=125363
==============================================================================
--- 
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
 Sun Jan 16 12:28:34 2005
@@ -28,6 +28,7 @@
 import org.apache.beehive.netui.databinding.datagrid.model.sort.DefaultSort;
 import org.apache.beehive.netui.databinding.datagrid.model.sort.SortModel;
 import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
+import org.apache.beehive.netui.databinding.datagrid.model.filter.FilterModel;
 
 /**
  * todo: need to support registering URL prefixes that have state service 
handlers and should be omitted from regular URL construction.
@@ -37,6 +38,7 @@
 
     private String _namespace = null;
     private SortModel _sortModel = null;
+    private FilterModel _filterModel = null;
 
     public static final DataGridStateService createInstance(ServletRequest 
request, String namespace) {
         assert request != null;
@@ -73,6 +75,10 @@
         if(_sortModel == null)
             _sortModel = new SortModel(_namespace);
         _sortModel.handleRequest(request);
+
+        if(_filterModel == null)
+            _filterModel = new FilterModel(_namespace);
+        _filterModel.handleRequest(request);
     }
 
     public String getNamespace() {
@@ -82,6 +88,10 @@
     /* todo: could add lookups here based on base-class as a generic way to 
get to a service implementation */
     public SortModel getSortModel() {
         return _sortModel;
+    }
+
+    public FilterModel getFilterModel() {
+        return _filterModel;
     }
 
     public Map<String, String[]> buildSortQueryParamsMap() {

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java&r2=125363
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java
 Sun Jan 16 12:28:34 2005
@@ -82,7 +82,7 @@
         HashMap<String, List<IFilter>> map = new HashMap<String, 
List<IFilter>>();
         for(int i = 0; i < queryParams.length; i++)
         {
-            // @todo: need to make this pluggable...
+            /* todo: need to make this pluggable */
             if(!queryParams[i].startsWith(namespace + "~"))
                 continue;
 
@@ -105,14 +105,14 @@
 
     private static final IFilter parse(String namespace, String filter) {
 
-        // @todo: need to figure out how to handle this case...
+        /* todo: need to figure out how to handle this case */
         if (!filter.startsWith(namespace))
             return null;
 
         // crack filter terms here
         String[] terms = filter.split(FILTER_DELIM);
 
-        // @todo: what did this mean?
+        /* todo: what did this mean? */
         if (terms.length == 3 && terms[2].equals("*"))
             return null;
         else if (terms.length == 4) {

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=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java&r2=125363
==============================================================================
--- 
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
   Sun Jan 16 12:28:34 2005
@@ -18,7 +18,6 @@
 package org.apache.beehive.netui.tags.databinding.datagrid;
 
 import java.io.IOException;
-import javax.servlet.jsp.tagext.JspTag;
 import javax.servlet.jsp.JspException;
 
 import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
@@ -73,11 +72,6 @@
      */
     public void doTag()
         throws JspException, IOException {
-
-        /* todo: this should be done in a TLV */
-        JspTag parent = findAncestorWithClass(this, Columns.class);
-        if (!(parent instanceof Columns))
-            throw new JspException("A Column tag must be contained inside of a 
Columns tag.");
 
         DataGridModel dataGridModel = 
DataGridUtil.getDataGridModel(getJspContext());
         assert dataGridModel != null;

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=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r2=125363
==============================================================================
--- 
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
       Sun Jan 16 12:28:34 2005
@@ -59,28 +59,49 @@
     private HeaderCellModel _headerCellModel = new HeaderCellModel();
 
     /**
+     * @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="Boolean switch that sets whether the default sort link should be 
rendered"
      */
-    public void setDisableSortRendering(boolean disableSortRendering) {
-        _headerCellModel.setDisableSortRendering(disableSortRendering);
+    public void setDisableFilterRendering(boolean disableFilterRendering) {
+        _headerCellModel.setDisableFilterRendering(disableFilterRendering);
     }
 
     /**
      * @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);
+    public void setFilterExpression(String filterExpression) {
+        _headerCellModel.setFilterExpression(filterExpression);
     }
 
     /**
-     * @netui:attribute required="false" rtexprvalue="true" 
description="Optional String scopeId that qualifies URL parameters into a 
particular scope"
+     * @netui:attribute required="false" rtexprvalue="true" description="The 
action to run when performing a filter on this column"
      */
-    public void setScopeId(String scopeId) {
-        _headerCellModel.setScopeId(scopeId);
+    public void setFilterAction(String filterAction) {
+        _headerCellModel.setFilterAction(filterAction);
+    }
+
+    /**
+     * @netui:attribute required="false" rtexprvalue="true" 
description="Boolean switch that sets whether the default filter 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 filter when 
filtering data in this column"
+     */
+    public void setSortExpression(String sortExpression) {
+        _headerCellModel.setSortExpression(sortExpression);
     }
 
     /**
-     * @netui:attribute required="false" rtexprvalue="true" description="The 
action to run when performing a sort on this column"
+     * @netui:attribute required="false" rtexprvalue="true" description="The 
action to run when performing a filter on this column"
      */
     public void setSortAction(String sortAction) {
         _headerCellModel.setSortAction(sortAction);
@@ -549,9 +570,7 @@
         _headerCellModel.setBodyContent(bodyContent);
         _headerCellModel.setHeaderText(getHeaderText());
 
-        if(_headerCellModel.isDisableSortRendering())
-            DEFAULT_HEADER_RENDERER.decorate(getJspContext(), appender, 
_headerCellModel);
-        else SORTED_HEADER_RENDERER.decorate(getJspContext(), appender, 
_headerCellModel);
+        SORTED_HEADER_RENDERER.decorate(getJspContext(), appender, 
_headerCellModel);
     }
 
     protected abstract void renderDataCellContents(AbstractRenderAppender 
appender);

Reply via email to