Author: ekoneil
Date: Fri Apr  8 10:21:27 2005
New Revision: 160565

URL: http://svn.apache.org/viewcvs?view=rev&rev=160565
Log:
Bug fix:

BEEHIVE-507      it's hard to build data grid UI that is aware of a column's 
sort direction

  This change renames the file that contains the data grid related JSP 2.0 
functions from FilterUtil to JspFunctions and adds two new functions for 
determining if a column is sorted ascending or descending.

The sortModel also has a new public method to lookup a specific Sort given a 
sort expression.

BB: self
DRT: NetUI pass
BVT: NetUI pass (one failure)



Added:
    
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/JspFunctions.java
      - copied, changed from r160503, 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/FilterUtil.java
Removed:
    
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/FilterUtil.java
Modified:
    
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java
    
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortModel.java

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java?view=diff&r1=160564&r2=160565
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/DataGridState.java
 Fri Apr  8 10:21:27 2005
@@ -24,7 +24,7 @@
 /**
  *
  */
-public class DataGridState {
+public class DataGridState { 
 
     private FilterModel _filterModel;
     private SortModel _sortModel;

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortModel.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortModel.java?view=diff&r1=160564&r2=160565
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortModel.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortModel.java
 Fri Apr  8 10:21:27 2005
@@ -24,6 +24,8 @@
  */
 public class SortModel {
 
+    /* todo: consider exposing a Map getSortMap() that would be JSP 2.0 EL 
bindable */
+
     private SortStrategy _sortStrategy = null;
     private List<Sort> _sorts = null;
 
@@ -74,7 +76,11 @@
         return term == null ? SortDirection.NONE : term.getDirection();
     }
 
-    private Sort findSort(String sortExpression) {
+    public Sort lookupSort(String sortExpression) {
+        return findSort(sortExpression);
+    }
+
+    private final Sort findSort(String sortExpression) {
         if(_sorts == null)
             return null;
 

Copied: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/JspFunctions.java
 (from r160503, 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/FilterUtil.java)
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/JspFunctions.java?view=diff&rev=160565&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/FilterUtil.java&r1=160503&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/JspFunctions.java&r2=160565
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/FilterUtil.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/util/JspFunctions.java
 Fri Apr  8 10:21:27 2005
@@ -22,14 +22,18 @@
 import javax.servlet.jsp.JspContext;
 
 import org.apache.beehive.netui.databinding.datagrid.api.filter.Filter;
+import org.apache.beehive.netui.databinding.datagrid.api.DataGridConfigFactory;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.Sort;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortDirection;
 
 /**
  * @netui:jspfunctions
  */
-public final class FilterUtil {
+public final class JspFunctions {
 
     private static final List<Filter> DEFAULT_FILTER_LIST;
-    private static final Filter DEFAULT_FILTER = new Filter();
+    private static final Filter DEFAULT_FILTER = 
DataGridConfigFactory.getInstance().createFilter();
 
     static {
         DEFAULT_FILTER_LIST = new ArrayList<Filter>();
@@ -37,7 +41,45 @@
         DEFAULT_FILTER_LIST.add(DEFAULT_FILTER);
     }
 
-    private FilterUtil() {}
+    private JspFunctions() {}
+
+    /**
+     *
+     * @param sortModel
+     * @param sortExpression
+     * @return
+     * @netui:jspfunction
+     *     name="isSortedAscending"
+     *     signature="boolean 
isSortedAscending(org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel,java.lang.String)"
+     */
+    public static boolean isSortedAscending(SortModel sortModel, String 
sortExpression) {
+        if(sortModel == null || sortExpression == null)
+            return false;
+
+        Sort sort = sortModel.lookupSort(sortExpression);
+        if(sort != null && sort.getDirection() == SortDirection.ASCENDING)
+            return true;
+        else return false;
+    }
+
+    /**
+     *
+     * @param sortModel
+     * @param sortExpression
+     * @return
+     * @netui:jspfunction
+     *     name="isSortedDescending"
+     *     signature="boolean 
isSortedDescending(org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel,java.lang.String)"
+     */
+    public static boolean isSortedDescending(SortModel sortModel, String 
sortExpression) {
+        if(sortModel == null || sortExpression == null)
+            return false;
+
+        Sort sort = sortModel.lookupSort(sortExpression);
+        if(sort != null && sort.getDirection() == SortDirection.DESCENDING)
+            return true;
+        else return false;
+    }
 
     /**
      * Function that normalizes the data set that is used to render the
@@ -48,7 +90,7 @@
      * @param jspContext
      * @param attrName
      * @netui:jspfunction name="ensureFilters"
-     *                    signature="void 
ensureFilters(javax.servlet.jsp.JspContext java.lang.String)"
+     *                    signature="void 
ensureFilters(javax.servlet.jsp.JspContext,java.lang.String)"
      */
     public static void ensureFilters(JspContext jspContext, String attrName) {
         List<Filter> filters = 
(List<Filter>)jspContext.getAttribute("filters");


Reply via email to