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");