Author: ekoneil
Date: Thu Jan 13 07:38:15 2005
New Revision: 125081

URL: http://svn.apache.org/viewcvs?view=rev&rev=125081
Log:
Checkpoint some data grid filter work.

- reorganizing the filter support to get this structured in the url service / 
filter model structure

DRT: Beehive pass
BVT: NetUI pass (10 failures)

Added:
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java
   (contents, props changed)
Modified:
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/IFilter.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/DefaultSort.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/ISort.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/SortModel.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/databinding/datagrid/services/sort/SortFactory.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortService.java
   
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
   
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/DefaultSortTest.java
   
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortServiceTest.java

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java
    (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java
    Thu Jan 13 07:38:15 2005
@@ -19,65 +19,59 @@
 
 import java.util.HashMap;
 
-import 
org.apache.beehive.netui.databinding.datagrid.services.filter.IllegalFilterException;
-import org.apache.beehive.netui.util.logging.Logger;
-
 /**
  *
  */
 public class DefaultFilter
     implements IFilter {
 
-    private static final Logger LOGGER = 
Logger.getInstance(DefaultFilter.class);
-
-    private static final HashMap STRING_TO_INT;
-    private static final HashMap INT_TO_STRING;
-    private static final String FILTER_DELIM = "~";
+    private static final HashMap<String, FilterOperation> STRING_TO_FILTER;
+    private static final HashMap<FilterOperation, String> FILTER_TO_STRING;
 
-    /* todo: support the rest of the operations! */
+    /* todo: additional operations */
     static {
-        STRING_TO_INT = new HashMap();
-        STRING_TO_INT.put("eq", new Integer(IFilter.EQUALS));
-        STRING_TO_INT.put("ne", new Integer(IFilter.NOT_EQUAL));
+        STRING_TO_FILTER = new HashMap<String, FilterOperation>();
+        STRING_TO_FILTER.put("eq", FilterOperation.EQUAL);
+        STRING_TO_FILTER.put("ne", FilterOperation.NOT_EQUAL);
 
-        INT_TO_STRING = new HashMap();
-        INT_TO_STRING.put(new Integer(IFilter.EQUALS), "eq");
-        INT_TO_STRING.put(new Integer(IFilter.NOT_EQUAL), "ne");
+        FILTER_TO_STRING = new HashMap<FilterOperation, String>();
+        FILTER_TO_STRING.put(FilterOperation.EQUAL, "eq");
+        FILTER_TO_STRING.put(FilterOperation.NOT_EQUAL, "ne");
     }
 
-    private String _filterExpr;
-    private int _op;
+    private String _filterExpression;
+    private FilterOperation _filterOperation;
     private Object _value;
 
     public DefaultFilter() {
     }
 
-    public DefaultFilter(String filterExpression, String operation, Object 
value) {
-        this(filterExpression, mapStringToInt(operation), value);
+    public DefaultFilter(String filterExpression, String filterOperation, 
Object value) {
+        this(filterExpression, mapStringToInt(filterOperation), value);
     }
 
-    public DefaultFilter(String filterExpression, int operation, Object value) 
{
+    public DefaultFilter(String filterExpression, FilterOperation 
filterOperation, Object value) {
         this();
 
-        _filterExpr = filterExpression;
-        _op = operation;
+        _filterExpression = filterExpression;
+        _filterOperation = filterOperation;
         _value = value;
     }
 
     public void setFilterExpression(String filterExpression) {
-        _filterExpr = filterExpression;
+        _filterExpression = filterExpression;
     }
 
     public String getFilterExpression() {
-        return _filterExpr;
+        return _filterExpression;
     }
 
-    public void setOperation(int operation) {
-        _op = operation;
+    public void setOperation(FilterOperation filterOperation) {
+        _filterOperation = filterOperation;
     }
 
-    public int getOperation() {
-        return _op;
+    public FilterOperation getOperation() {
+        return _filterOperation;
     }
 
     public void setValue(Object value) {
@@ -89,54 +83,28 @@
     }
 
     public String getOperationText() {
-        return mapIntToString(_op);
-    }
-
-    public static final IFilter parse(String namespace, String filter) {
-
-        // @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?
-        if (terms.length == 3 && terms[2].equals("*"))
-            return null;
-        else if (terms.length == 4) {
-            try {
-                // the namespace is ignored here since all filter terms are 
scoped into a namespace already
-                DefaultFilter f = new DefaultFilter(terms[1], terms[2], 
terms[3]);
-                return f;
-            } catch (NumberFormatException nfe) {
-                if (LOGGER.isErrorEnabled())
-                    LOGGER.error("An error occurred parsing a URL filter with 
syntax \"" + filter + "\".");
-                throw new IllegalFilterException("An exception occurred 
parsing the filter \"" + filter + "\".  Cause: " + nfe, nfe);
-            }
-        } else
-            throw new IllegalFilterException("The syntax of the filter \"" + 
filter + "\" is illegal.");
+        return _filterOperation.toString();
     }
 
     public String write(String namespace) {
         assert namespace != null;
         StringBuilder buf = new StringBuilder();
         buf.append(namespace);
-        buf.append(FILTER_DELIM);
+        buf.append("\texpression: ");
         buf.append(getFilterExpression());
-        buf.append(FILTER_DELIM);
-        buf.append(mapIntToString(getOperation()));
-        buf.append(FILTER_DELIM);
+        buf.append("\toperation: ");
+        buf.append(getOperation());
+        buf.append("\tvalue: ");
         buf.append(getValue());
         return buf.toString();
     }
 
-    private static final int mapStringToInt(String operation) {
-        Integer i = (Integer) STRING_TO_INT.get(operation);
-        return i.intValue();
+    private static final FilterOperation mapStringToInt(String operation) {
+        assert STRING_TO_FILTER.get(operation) != null : "Found a null 
FilterOperation in the filter operation map.";
+        return STRING_TO_FILTER.get(operation);
     }
 
-    private static final String mapIntToString(int operation) {
-        return (String) INT_TO_STRING.get(new Integer(operation));
+    private static final String mapIntToString(FilterOperation operation) {
+        return FILTER_TO_STRING.get(operation.getId());
     }
 }

Added: 
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=auto&rev=125081
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java
      Thu Jan 13 07:38:15 2005
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package org.apache.beehive.netui.databinding.datagrid.model.filter;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import javax.servlet.ServletRequest;
+
+import 
org.apache.beehive.netui.databinding.datagrid.services.filter.FilterService;
+
+/**
+ *
+ */
+public class FilterModel {
+
+    private String _namespace = null;
+    private String _filterParamKey = null;
+    private Map<String, List<IFilter>> _filters = null;
+
+    public FilterModel(String name) {
+        _namespace = name;
+    }
+
+    public void handleRequest(ServletRequest request) {
+        FilterService filterService = FilterService.getInstance(request, 
_namespace);
+        _filters = filterService.getFilters();
+    }
+
+    public String getFilterParamKey() {
+        return _filterParamKey;
+    }
+
+    public List<IFilter> getFilters(String filterExpression) {
+        if(_filters == null)
+            return null;
+
+        return lookupFilters(filterExpression);
+    }
+
+    public boolean isFiltered(String filterExpression) {
+        if(_filters == null)
+            return false;
+
+        if(_filters.containsKey(filterExpression)) {
+            assert ((List)_filters.get(filterExpression)).size() > 0;
+            return true;
+        } else
+            return false;
+    }
+
+    /**
+     * Build a map of query parameters that represent all filters available
+     * in a data grid.
+     *
+     * @return
+     */
+    public Map<String, String[]> getFilterParamsMap() {
+        return buildFilterParamsMapInternal(null);
+    }
+
+    public void removeFilters(String filterExpression) {
+        if(_filters == null)
+            return;
+
+        _filters.remove(filterExpression);
+    }
+
+    public void removeAllFilters() {
+        if(_filters == null)
+            return;
+
+        _filters.clear();
+    }
+
+    public void addFilters(IFilter[] filters) {
+        throw new UnsupportedOperationException("NYI");
+    }
+
+    public void removeFilters(IFilter[] filters) {
+        throw new UnsupportedOperationException("NYI");
+    }
+
+    public String toString() {
+        throw new UnsupportedOperationException("NYI");
+    }
+
+    private Map<String, String[]> buildFilterParamsMapInternal(String 
omitFilterExpression) {
+        if(_filters == null)
+            return null;
+
+        ArrayList<String> params = new ArrayList<String>();
+        for(String filterExpr : _filters.keySet()) {
+            assert filterExpr != null;
+
+            if(omitFilterExpression != null && 
filterExpr.equals(omitFilterExpression))
+                continue;
+
+            List<IFilter> filters = _filters.get(filterExpr);
+            assert filters != null;
+            for(IFilter filter : filters) {
+                params.add(filter.write(_namespace));
+            }
+        }
+
+        HashMap<String, String[]> map = new HashMap<String, String[]>();
+        map.put(getFilterParamKey(), params.toArray(new String[0]));
+        return map;
+    }
+
+    private List<IFilter> lookupFilters(String filterExpression) {
+        assert filterExpression != null;
+        assert !filterExpression.equals("");
+
+        if(_filters == null)
+            return null;
+
+        return _filters.get(filterExpression);
+    }
+}

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/IFilter.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/IFilter.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/IFilter.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/IFilter.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/IFilter.java
  (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/IFilter.java
  Thu Jan 13 07:38:15 2005
@@ -23,17 +23,28 @@
 public interface IFilter
 {
     String FILTER_PARAM_KEY = "netui_filter";
-    
-    int EQUALS = 1;
-    int NOT_EQUAL = 2;
+
+    enum FilterOperation {
+        EQUAL(1),
+        NOT_EQUAL(2);
+
+        private int _id;
+        FilterOperation(int id) {
+            _id = id;
+        }
+
+        public int getId() {
+            return _id;
+        }
+    }
 
     String getFilterExpression();
 
     void setFilterExpression(String filterExpression);
 
-    int getOperation();
+    FilterOperation getOperation();
     
-    void setOperation(int operation);
+    void setOperation(FilterOperation operation);
     
     Object getValue();
     

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/DefaultSort.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/DefaultSort.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/DefaultSort.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/DefaultSort.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/DefaultSort.java
        (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/DefaultSort.java
        Thu Jan 13 07:38:15 2005
@@ -25,13 +25,13 @@
     implements ISort {
 
     private String _sortExpression;
-    private Direction _sortDirection;
+    private SortDirection _sortDirection;
 
     public DefaultSort() {
         super();
     }
 
-    public DefaultSort(String sortExpression, Direction sortDirection) {
+    public DefaultSort(String sortExpression, SortDirection sortDirection) {
         this();
         _sortExpression = sortExpression;
         _sortDirection = sortDirection;
@@ -47,11 +47,11 @@
         _sortExpression = expression;
     }
 
-    public Direction getDirection() {
+    public SortDirection getDirection() {
         return _sortDirection;
     }
 
-    public void setDirection(Direction sortDirection) {
+    public void setDirection(SortDirection sortDirection) {
         _sortDirection = sortDirection;
     }
 
@@ -81,20 +81,20 @@
 
     private String writeSortParam(String namespace, boolean flipDirection) {
 
-        Direction direction = _sortDirection;
+        SortDirection sortDirection = _sortDirection;
         if (flipDirection)
             /* todo: break this dependency.  switch ISort to AbstractSort with 
utility methods */
-            direction = direction.flipDirection();
+            sortDirection = sortDirection.flipDirection();
 
-        return writeSortParam(namespace, _sortExpression, direction);
+        return writeSortParam(namespace, _sortExpression, sortDirection);
     }
 
-    public static final String writeSortParam(String namespace, String 
sortExpression, Direction sortDirection) {
+    public static final String writeSortParam(String namespace, String 
sortExpression, SortDirection sortDirection) {
         StringBuilder builder = new StringBuilder();
 
         builder.append(namespace);
         builder.append("~");
-        if(sortDirection == Direction.DESCENDING)
+        if(sortDirection == SortDirection.DESCENDING)
             builder.append("-");
         builder.append(sortExpression);
         return builder.toString();

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/ISort.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/ISort.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/ISort.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/ISort.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/ISort.java
      (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/ISort.java
      Thu Jan 13 07:38:15 2005
@@ -24,15 +24,15 @@
 {
     String SORT_PARAM_KEY = "netui_sort";
 
-    enum Direction{
+    enum SortDirection{
         NONE, ASCENDING, DESCENDING;
 
-        Direction flipDirection() {
-            if(this == Direction.ASCENDING)
-                return Direction.DESCENDING;
-            else if(this == Direction.DESCENDING)
-                return Direction.ASCENDING;
-            else return Direction.ASCENDING;
+        SortDirection flipDirection() {
+            if(this == SortDirection.ASCENDING)
+                return SortDirection.DESCENDING;
+            else if(this == SortDirection.DESCENDING)
+                return SortDirection.ASCENDING;
+            else return SortDirection.ASCENDING;
         }
     };
 
@@ -40,9 +40,9 @@
 
     void setSortExpression(String sortExpression);
 
-    Direction getDirection();
+    SortDirection getDirection();
     
-    void setDirection(Direction sortDirection);
+    void setDirection(SortDirection sortDirection);
 
     String write(String namespace);
 

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/SortModel.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/SortModel.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/SortModel.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/SortModel.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/SortModel.java
  (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/SortModel.java
  Thu Jan 13 07:38:15 2005
@@ -20,7 +20,7 @@
 import java.util.List;
 import javax.servlet.ServletRequest;
 
-import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.Direction;
+import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
 import org.apache.beehive.netui.databinding.datagrid.services.sort.SortService;
 
 /**
@@ -64,15 +64,15 @@
 
     public boolean isSorted(String sortExpression) {
         ISort term = findTerm(sortExpression);
-        if (term == null || term.getDirection() == Direction.NONE)
+        if (term == null || term.getDirection() == SortDirection.NONE)
             return false;
         else
             return true;
     }
 
-    public Direction getSortDirection(String sortExpression) {
+    public SortDirection getSortDirection(String sortExpression) {
         ISort term = findTerm(sortExpression);
-        return term == null ? Direction.NONE : term.getDirection();
+        return term == null ? SortDirection.NONE : term.getDirection();
     }
 
     public boolean removeSort(String sortExpression) {
@@ -84,7 +84,7 @@
         else return false;
     }
 
-    public void addSort(String sortExpression, Direction sortDirection) {
+    public void addSort(String sortExpression, SortDirection sortDirection) {
         DefaultSort sort = new DefaultSort(sortExpression, sortDirection);
         _sorts.add(sort);
     }

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=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java&r2=125081
==============================================================================
--- 
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
    Thu Jan 13 07:38:15 2005
@@ -32,7 +32,7 @@
 import org.apache.beehive.netui.databinding.datagrid.model.CellModel;
 import 
org.apache.beehive.netui.databinding.datagrid.model.cell.HeaderCellModel;
 import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
-import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.Direction;
+import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
 import org.apache.beehive.netui.databinding.datagrid.model.sort.SortModel;
 import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
 import 
org.apache.beehive.netui.databinding.datagrid.services.DataGridStateService;
@@ -87,7 +87,7 @@
         AnchorTag.State aTag = new AnchorTag.State();
         ImageTag.State imgTag = new ImageTag.State();
 
-        Direction sortDirection = 
sortModel.getSortDirection(cellModel.getSortExpression());
+        SortDirection sortDirection = 
sortModel.getSortDirection(cellModel.getSortExpression());
 
         /* build icon for existing sort */
         if(sortModel.isSorted(cellModel.getSortExpression()))

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=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r2=125081
==============================================================================
--- 
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
 Thu Jan 13 07:38:15 2005
@@ -27,7 +27,7 @@
 import org.apache.beehive.netui.databinding.datagrid.model.sort.ISort;
 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.Direction;
+import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
 
 /**
  * todo: need to support registering URL prefixes that have state service 
handlers and should be omitted from regular URL construction.
@@ -101,7 +101,7 @@
         return map;
     }
 
-    public Map<String, String[]> buildSortQueryParamsMap(String 
sortExpression, Direction sortDirection) {
+    public Map<String, String[]> buildSortQueryParamsMap(String 
sortExpression, SortDirection sortDirection) {
 
         /* todo: consolidate the query param map construction methods */
         assert sortExpression != null;
@@ -109,14 +109,14 @@
         List<ISort> sorts = _sortModel.getSorts();
 
         ArrayList valueList = new ArrayList(5);
-        if(sortDirection != Direction.NONE && 
!_sortModel.isSorted(sortExpression))
+        if(sortDirection != SortDirection.NONE && 
!_sortModel.isSorted(sortExpression))
             valueList.add(DefaultSort.writeSortParam(_namespace, 
sortExpression, sortDirection));
 
         if(sorts != null) {
             /* todo: deal with additional query params here */
             for(ISort sort : sorts) {
                 if(sort.getSortExpression().equals(sortExpression)) {
-                    if(sortDirection != Direction.NONE)
+                    if(sortDirection != SortDirection.NONE)
                         /* todo: broke encapsulation here.  bad bad bad. */
                         /* @todo: need to move this parameter handling into 
some sort of URLParams class that can be *fast* */
                        valueList.add(DefaultSort.writeSortParam(_namespace, 
sort.getSortExpression(), sortDirection));
@@ -130,13 +130,13 @@
         return map;
     }
 
-    public String getSortImagePath(String contextPath, Direction direction) {
-        if(direction == Direction.ASCENDING)
+    public String getSortImagePath(String contextPath, SortDirection 
sortDirection) {
+        if(sortDirection == SortDirection.ASCENDING)
             return contextPath + "/resources/images/sortdown.gif";
-        else if(direction == Direction.DESCENDING)
+        else if(sortDirection == SortDirection.DESCENDING)
             return contextPath + "/resources/images/sortup.gif";
         else {
-            assert direction == Direction.NONE : "Encountered an invalid sort 
direction.";
+            assert sortDirection == SortDirection.NONE : "Encountered an 
invalid sort direction.";
             /* todo: need to flag on whether this is sort up or down and set 
the image accordingly */
             return getDefaultSortImagePath(contextPath);
         }
@@ -148,14 +148,14 @@
     }
 
     public Map<String, String[]> getSortQueryParamsMap(String sortExpression) {
-        Direction sortDirection = _sortModel.getSortDirection(sortExpression);
+        SortDirection sortDirection = 
_sortModel.getSortDirection(sortExpression);
 
-        if(sortDirection == Direction.NONE)
-            return buildSortQueryParamsMap(sortExpression, 
Direction.ASCENDING);
-        else if(sortDirection == Direction.ASCENDING)
-            return buildSortQueryParamsMap(sortExpression, 
Direction.DESCENDING);
-        else if(sortDirection == Direction.DESCENDING)
-            return buildSortQueryParamsMap(sortExpression, Direction.NONE);
+        if(sortDirection == SortDirection.NONE)
+            return buildSortQueryParamsMap(sortExpression, 
SortDirection.ASCENDING);
+        else if(sortDirection == SortDirection.ASCENDING)
+            return buildSortQueryParamsMap(sortExpression, 
SortDirection.DESCENDING);
+        else if(sortDirection == SortDirection.DESCENDING)
+            return buildSortQueryParamsMap(sortExpression, SortDirection.NONE);
         else throw new IllegalStateException("Received invalid sort direction 
\"" + sortDirection + "\"");
     }
 }

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=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java&r2=125081
==============================================================================
--- 
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
 Thu Jan 13 07:38:15 2005
@@ -18,7 +18,6 @@
 package org.apache.beehive.netui.databinding.datagrid.services.filter;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -27,351 +26,74 @@
 import javax.servlet.jsp.JspContext;
 
 import org.apache.beehive.netui.databinding.datagrid.model.filter.IFilter;
+import 
org.apache.beehive.netui.databinding.datagrid.model.filter.DefaultFilter;
 import org.apache.beehive.netui.util.logging.Logger;
 
+/* Beehive filter format: netui_filter=<namespace>~<filterExpr>~<op>~<value> */
 /**
- * Beehive: netui_sort=<namespace>~<filterExpr>~<op>~<value>
+ *
  */
 public class FilterService
 {
     private static final Logger LOGGER = 
Logger.getInstance(FilterService.class);
+    private static final String FILTER_DELIM = "~";
 
     public static FilterService getInstance(JspContext jspContext, String 
namespace)
     {
-        return FilterService.getInstance(jspContext, namespace, null);
-    }
-
-    public static FilterService getInstance(JspContext jspContext, String 
namespace, String queryString)
-    {
         if(jspContext instanceof PageContext)
         {
             ServletRequest request = ((PageContext)jspContext).getRequest();
-            FilterService svc = new FilterService(request, namespace);
-            return svc;
+            return getInstance(request, namespace);
         }
         else throw new IllegalArgumentException("Can not create a 
FilterService from a JspContext of type " +
                                                 (jspContext != null ? 
jspContext.getClass().getName() : "null"));
     }
 
-    private ServletRequest _request = null;
+    public static FilterService getInstance(ServletRequest request, String 
namespace) {
+        return new FilterService(request, namespace);
+    }
+
     private String _namespace = null;
-    private Map _filters = null;
-    private String _queryString = null;
-    private Map _altParams = null;
+    private HashMap<String, List<IFilter>> _filters = null;
+    private ServletRequest _request = null;
 
     private FilterService(ServletRequest request, String namespace)
     {
         super();
         _request = request;
         _namespace = namespace;
+        _filters = internalGetFilters();
     }
 
-    private FilterService(ServletRequest request, String namespace, String 
queryString)
-    {
-        this(request, namespace);
-        _queryString = queryString;
-    }
-
-    public boolean isFiltered(String filterExpression)
-    {
-        ensureFilterList();
-        
-        if(_filters == null) return false;
-        
-        if(_filters.containsKey(filterExpression))
-        {
-            assert ((ArrayList)_filters.get(filterExpression)).size() > 0;
-            return true;
-        }
-        else return false;
-    }
-
-    // @todo: need to return all filters here
-    public IFilter[] getFilters()
-    {
-        ensureFilterList();
-
-        if(_filters == null) return null;
-        
-        ArrayList allFilters = new ArrayList();
-        Iterator iterator = _filters.keySet().iterator();
-        while(iterator.hasNext())
-        {
-            String filterExpr = (String)iterator.next();
-            ArrayList list = (ArrayList)_filters.get(filterExpr);
-            for(int i = 0; i < list.size(); i++)
-            {
-                allFilters.add(list.get(i));
-            }
-        }
-
-        IFilter[] filterAry = new IFilter[allFilters.size()];
-        for(int i = 0; i < filterAry.length; i++)
-        {
-            filterAry[i] = (IFilter)allFilters.get(i);
-        }
-
-        return filterAry;
-    }
-    
-    public IFilter[] getFilters(String filterExpression)
-    {
-        ensureFilterList();
-        
-        if(_filters == null) return null;
-
-        return findFilters(filterExpression);
-    }
-    
-    public String getFilterQueryString()
-    {
-        return getFilterQueryStringInternal(null);
-    }
-    
-    public String getFilterQueryStringOmitFilter(String filterExpression)
-    {
-        if(LOGGER.isDebugEnabled()) LOGGER.debug("get query string omit 
filter: " + filterExpression);
-        return getFilterQueryStringInternal(filterExpression);
-    }
-
-    public String getFilterQueryStringOmitAllFilters()
-    {
-        return null;
-    }
-
-    public Map getFilterParamsMap()
-    {
-        return getFilterParamsMapInternal(null);
-    }
-
-    public Map getFilterParamsMapOmitFilter(String filterExpression)
-    {
-        return getFilterParamsMapInternal(null);
-    }
-
-    public Map getFilterParamsMapOmitAllFilters()
-    {
-        return null;
-    }
-
-    public void removeFilters(String filterExpression)
-    {
-        ensureFilterList();
-        
-        if(_filters == null) return;
-        
-        _filters.remove(filterExpression);
+    public Map<String, List<IFilter>> getFilters() {
+        return _filters;
     }
 
-    public void removeAllFilters()
-    {
-        _filters.clear();
-    }
-    
-    // @todo
-    public void addFilters(IFilter[] filters)
+    private HashMap<String, List<IFilter>> internalGetFilters()
     {
-        return;
+        String[] filters = 
_request.getParameterValues(IFilter.FILTER_PARAM_KEY);
+        return createFilters(_namespace, filters);
     }
 
-    // @todo
-    public void removeFilters(IFilter[] filters)
-    {
-        return;
-    }
-    
-    public String toString()
-    {
-        StringBuilder buf = new StringBuilder(256);
-        
-        return buf.toString();
-    }
-
-    // @todo: should this map be immutable?
-    private Map getFilterParamsMapInternal(String filterFilter)
-    {
-        ensureFilterList();
-
-        if(_filters == null) return null;
-
-        HashMap map = new HashMap();
-        ArrayList params = new ArrayList();
-        Iterator iterator = _filters.keySet().iterator();
-        while(iterator.hasNext())
-        {
-            String filterExpr = (String)iterator.next();
-            assert filterExpr != null;
-
-            if(filterFilter != null && filterExpr.equals(filterExpr))
-                continue;
-
-            assert _filters.get(filterExpr) instanceof ArrayList;
-            ArrayList list = (ArrayList)_filters.get(filterExpr);
-            assert list != null;
-            for(int i = 0; i < list.size(); i++)
-            {
-                params.add(((IFilter)list.get(i)).write(_namespace));
-            }
-        }
-        
-        // @todo: fix -- shouldn't have to convert List -> String[] here
-        String[] paramAry = new String[params.size()];
-        for(int i = 0; i < paramAry.length; i++)
-        {
-            paramAry[i] = (String)params.get(i);
-        }
-
-        map.put(IFilter.FILTER_PARAM_KEY, paramAry);
-
-        if(_altParams != null)
-        {
-            iterator = _altParams.keySet().iterator();
-            while(iterator.hasNext())
-            {
-                String key = (String)iterator.next();
-                assert key != null;
-
-                String[] values = (String[])_altParams.get(key);
-                assert values != null;
-
-                map.put(key, values);
-            }
-        }
-                
-        return map;
-    }
-
-    /**
-     * @param filterFilter the filter expression to omit from the returned 
filter String
-     */
-    private String getFilterQueryStringInternal(String filterFilter)
-    {
-        // @todo: caching of the alt query string
-        ensureFilterList();
-        
-        StringBuilder buf = new StringBuilder();
-        if(_filters != null) 
-        {
-            
-            Iterator iterator = _filters.keySet().iterator();
-            while(iterator.hasNext())
-            {
-                String filterExpr = (String)iterator.next();
-                assert filterExpr != null;
-                
-                // filter expression to omit
-                if(filterFilter != null && filterExpr.equals(filterFilter))
-                    continue;
-                
-                // @todo: encoding!
-                assert _filters.get(filterExpr) instanceof ArrayList;
-                ArrayList list = (ArrayList)_filters.get(filterExpr);
-                assert list != null;            
-                for(int i = 0; i < list.size(); i++)
-                {
-                    IFilter f = (IFilter)list.get(i);
-                    buf.append(IFilter.FILTER_PARAM_KEY);
-                    buf.append("=");
-                    buf.append(((IFilter)list.get(i)).write(_namespace));
-                }
-                
-                if(iterator.hasNext()) 
-                    buf.append("&");
-            }
-        }
-
-        if(LOGGER.isDebugEnabled()) LOGGER.debug("filter query string: " + 
buf.toString());
-        if(LOGGER.isDebugEnabled()) LOGGER.debug("alt params size: " + 
_altParams != null ? "" + _altParams.size() : "null");
-
-        if(_altParams != null && _altParams.size() > 0)
-        {
-            Iterator i2 = _altParams.keySet().iterator();
-            while(i2.hasNext())
-            {
-                String key = (String)i2.next();
-                assert key != null;
-
-                String[] values = (String[])_altParams.get(key);
-                assert values != null;
-
-                // @todo: encoding!
-                for(int i = 0; i < values.length; i++)
-                {
-                    buf.append("&");
-                    buf.append(key);
-                    buf.append("=");
-                    buf.append(values[i]);
-                }
-            }
-        }
-
-        if(LOGGER.isDebugEnabled()) LOGGER.debug("filter query string with alt 
params: " + buf.toString());
-
-        return buf.toString();
-    }
-
-    private IFilter[] findFilters(String filterExpression)
-    {
-        if(_filters == null) return null;
-        
-        ArrayList list = (ArrayList)_filters.get(filterExpression);
-        
-        if(list == null) return null;
-
-        // @todo: need a fast data structure for this
-        // convert List -> IFilter[]
-        IFilter[] filterAry = new IFilter[list.size()];
-        for(int i = 0; i < filterAry.length; i++)
-        {
-            filterAry[i] = (IFilter)list.get(i);
-        }
-        
-        return filterAry;
-    }
-
-    // @todo: performance
-    private final void ensureFilterList()
-    {
-        if(_filters == null)
-        {
-            if(_queryString == null)
-            {
-                Map params = _request.getParameterMap();
-                String[] filters = 
_request.getParameterValues(IFilter.FILTER_PARAM_KEY);
-                _filters = createFilters(filters, _namespace);
-                _altParams = findAltParams(params, _namespace);
-            }
-            else
-            {
-                Map params = splitQueryString(_queryString);
-                String[] filters = 
(String[])params.get(IFilter.FILTER_PARAM_KEY);
-                _filters = createFilters(filters, _namespace);
-                _altParams = findAltParams(params, _namespace);
-            }
-        }
-
-        if(LOGGER.isDebugEnabled()) LOGGER.debug("alt params map: " + 
mapToString(_altParams));
-    }
-
-    private static final Map createFilters(String[] queryParams, String 
namespace)
+    private static final HashMap<String, List<IFilter>> createFilters(String 
namespace, String[] queryParams)
     {
         if(queryParams == null) return null;
         
-        HashMap map = new HashMap();
+        HashMap<String, List<IFilter>> map = new HashMap<String, 
List<IFilter>>();
         for(int i = 0; i < queryParams.length; i++)
         {
             // @todo: need to make this pluggable...
             if(!queryParams[i].startsWith(namespace + "~"))
                 continue;
 
-            IFilter f = 
org.apache.beehive.netui.databinding.datagrid.model.filter.DefaultFilter.parse(namespace,
 queryParams[i]);
+            IFilter f = parse(namespace, queryParams[i]);
 
             assert f != null;
 
-            ArrayList list = (ArrayList)map.get(f.getFilterExpression());
+            List<IFilter> list = map.get(f.getFilterExpression());
             if(list == null) 
             {
-                list = new ArrayList();
+                list = new ArrayList<IFilter>();
                 map.put(f.getFilterExpression(), list);
             }
             
@@ -381,126 +103,29 @@
         return map;
     }
 
-    private static Map findAltParams(Map params, String gridName)
-    {
-        HashMap map = new HashMap();
-
-        if(params == null) return null;
-
-        Iterator keys = params.keySet().iterator();
-        while(keys.hasNext())
-        {
-            String key = (String)keys.next();
-            String[] values = (String[])params.get(key);
-            if(key.equals(IFilter.FILTER_PARAM_KEY))
-            {
-                ArrayList list = new ArrayList();
-                for(int i = 0; i < values.length; i++)
-                {
-                    if(values[i].startsWith(gridName + "~"))
-                        continue;
-                    else list.add(values[i]);
-                }
-                
-                values = new String[list.size()];
-                for(int i = 0; i < list.size(); i++)
-                    values[i] = (String)list.get(i);
-            }
-
-            map.put(key, values);
-        }
-        
-        return map;
-    }
-
-    private static Map splitQueryString(String search)
-    {
-        if(search == null) return null;
-
-        if(search.startsWith("?"))
-            search = search.substring(1);
-
-        String[] query = search.split("&");
-        HashMap params = new HashMap();
-        if(query != null)
-        {
-            for(int i = 0; i < query.length; i++)
-            {
-                if(query[i].equals(""))
-                    continue;
-                
-                if(LOGGER.isDebugEnabled()) LOGGER.debug("split query param: 
'" + query[i] + "'");
-
-                assert query[i].indexOf("=") > -1;
-
-                String key = query[i].substring(0, query[i].indexOf("="));
-
-                String value = query[i].substring(query[i].indexOf("=")+1);
-                ArrayList list = (ArrayList)params.get(key);
-                if(list == null)
-                {
-                    list = new ArrayList();
-                    params.put(key, list);
-                }
-                
-                list.add(value);
-            }
-
-            Iterator iterator = params.keySet().iterator();
-            while(iterator.hasNext())
-            {
-                String key = (String)iterator.next();
-                ArrayList list = (ArrayList)params.get(key);
-                
-                String[] ary = new String[list.size()];
-                for(int i = 0; i < list.size(); i++)
-                {
-                    ary[i] = (String)list.get(i);
-                }
-                
-                params.put(key, ary);
-            }
-        }
-    
-        return params;
-    }
-
-    private static final String mapToString(Map map)
-    {
-        if(map == null)
-            return "Map is null";
-        if(map.size() == 0)
-            return "Map is empty";
-
-        StringBuilder buf = new StringBuilder();
-        buf.append("Map:::::\n");
+    private static final IFilter parse(String namespace, String filter) {
 
-        Iterator iterator = map.keySet().iterator();
-        while(iterator.hasNext())
-        {
-            String key = (String)iterator.next();
-            buf.append("key: " + key + "\n");
-            Object value = map.get(key);
-            if(value instanceof List)
-            {
-                List l = (List)value;
-                for(int i = 0; i < l.size(); i++)
-                {
-                    buf.append("  value[" + i + "]: " + l.get(i) + "\n");
-                }
-            }
-            else if(value instanceof String[])
-            {
-                String[] ary = (String[])value;
-                for(int i = 0; i < ary.length; i++)
-                {
-                    buf.append("  value[" + i + "]: " + ary[i] + "\n");
-                }
+        // @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?
+        if (terms.length == 3 && terms[2].equals("*"))
+            return null;
+        else if (terms.length == 4) {
+            try {
+                // the namespace is ignored here since all filter terms are 
scoped into a namespace already
+                DefaultFilter f = new DefaultFilter(terms[1], terms[2], 
terms[3]);
+                return f;
+            } catch (NumberFormatException nfe) {
+                if (LOGGER.isErrorEnabled())
+                    LOGGER.error("An error occurred parsing a URL filter with 
syntax \"" + filter + "\".");
+                throw new IllegalFilterException("An exception occurred 
parsing the filter \"" + filter + "\".  Cause: " + nfe, nfe);
             }
         }
-
-        buf.append(":::::\n");
-
-        return buf.toString();
+        else throw new IllegalFilterException("The syntax of the filter \"" + 
filter + "\" is illegal.");
     }
 }

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortFactory.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortFactory.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortFactory.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortFactory.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortFactory.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortFactory.java
     Thu Jan 13 07:38:15 2005
@@ -18,7 +18,7 @@
 package org.apache.beehive.netui.databinding.datagrid.services.sort;
 
 import org.apache.beehive.netui.databinding.datagrid.model.sort.ISort;
-import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.Direction;
+import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
 import org.apache.beehive.netui.databinding.datagrid.model.sort.DefaultSort;
 
 /**
@@ -29,7 +29,7 @@
     /* do not construct */
     private SortFactory() {}
 
-    public static final ISort getInstance(String sortExpression, Direction 
sortDirection) {
+    public static final ISort getInstance(String sortExpression, SortDirection 
sortDirection) {
         return new DefaultSort(sortExpression, sortDirection);
     }
 

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortService.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortService.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortService.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortService.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortService.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortService.java
     Thu Jan 13 07:38:15 2005
@@ -22,7 +22,7 @@
 import javax.servlet.ServletRequest;
 
 import org.apache.beehive.netui.databinding.datagrid.model.sort.ISort;
-import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.Direction;
+import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
 import org.apache.beehive.netui.databinding.datagrid.model.sort.DefaultSort;
 
 /**
@@ -75,11 +75,11 @@
 
                 for (int j = 0; j < cols.length; j++) {
                     String t = cols[j];
-                    Direction sortDirection = Direction.NONE;
+                    SortDirection sortDirection = SortDirection.NONE;
                     if(cols[j].startsWith("-"))
-                        sortDirection = Direction.DESCENDING;
-                    else sortDirection = Direction.ASCENDING;
-                    String sortExpression = (sortDirection == 
Direction.DESCENDING ? cols[j].substring(1) : cols[j]);
+                        sortDirection = SortDirection.DESCENDING;
+                    else sortDirection = SortDirection.ASCENDING;
+                    String sortExpression = (sortDirection == 
SortDirection.DESCENDING ? cols[j].substring(1) : cols[j]);
                     ISort sort = new DefaultSort(sortExpression, 
sortDirection);
                     sorts.add(sort);
                 }

Modified: 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java&r1=125080&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
 Thu Jan 13 07:38:15 2005
@@ -50,8 +50,8 @@
  *                 renderer="workshop.netui.jspdesigner.tldx.GridRenderer"
  */
 public class DataGrid
-        extends AbstractSimpleTag
-        implements IDataAccessProvider {
+    extends AbstractSimpleTag
+    implements IDataAccessProvider {
 
     private static final String DEFAULT_STYLE_POLICY_VALUE = "default";
     private static final String NO_STYLE_POLICY_VALUE = "none";

Modified: 
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/DefaultSortTest.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/DefaultSortTest.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/DefaultSortTest.java&r1=125080&p2=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/DefaultSortTest.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/DefaultSortTest.java
       (original)
+++ 
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/DefaultSortTest.java
       Thu Jan 13 07:38:15 2005
@@ -19,7 +19,7 @@
 
 import org.apache.beehive.netui.databinding.datagrid.model.sort.ISort;
 import org.apache.beehive.netui.databinding.datagrid.model.sort.DefaultSort;
-import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.Direction;
+import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
 import org.apache.beehive.netui.databinding.datagrid.services.sort.SortFactory;
 
 import junit.framework.Test;
@@ -42,11 +42,11 @@
         ISort sort = createSort();
         sort.setSortExpression("customername");
 
-        sort.setDirection(Direction.ASCENDING);
+        sort.setDirection(SortDirection.ASCENDING);
         String str = sort.write(gridName);
         assertTrue("testgrid~customername".equals(str));
 
-        sort.setDirection(Direction.DESCENDING);
+        sort.setDirection(SortDirection.DESCENDING);
         str = sort.write(gridName);
         assertTrue("testgrid~-customername".equals(str));
     }
@@ -54,15 +54,15 @@
     public void testChangeSortDirection() {
         ISort sort = createSort();
 
-        sort.setDirection(Direction.ASCENDING);
+        sort.setDirection(SortDirection.ASCENDING);
         sort.setSortExpression("customername");
-        assertTrue(sort.getDirection() == Direction.ASCENDING);
+        assertTrue(sort.getDirection() == SortDirection.ASCENDING);
 
         ((DefaultSort)sort).changeSortDirection();
-        assertTrue(sort.getDirection() == Direction.DESCENDING);
+        assertTrue(sort.getDirection() == SortDirection.DESCENDING);
 
         ((DefaultSort)sort).changeSortDirection();
-        assertTrue(sort.getDirection() == Direction.ASCENDING);
+        assertTrue(sort.getDirection() == SortDirection.ASCENDING);
     }
 
     protected void setUp() {

Modified: 
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortServiceTest.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortServiceTest.java?view=diff&rev=125081&p1=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortServiceTest.java&r1=125080&p2=incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortServiceTest.java&r2=125081
==============================================================================
--- 
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortServiceTest.java
       (original)
+++ 
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortServiceTest.java
       Thu Jan 13 07:38:15 2005
@@ -24,7 +24,7 @@
 
 import org.apache.beehive.netui.databinding.datagrid.services.sort.SortService;
 import org.apache.beehive.netui.databinding.datagrid.model.sort.ISort;
-import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.Direction;
+import 
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
 import org.apache.beehive.netui.test.servlet.ServletFactory;
 import org.apache.beehive.netui.test.servlet.HttpServletRequestHandler;
 
@@ -56,7 +56,7 @@
 
         assert svc.getSorts() != null;
         assert sorts.size()== 1;
-        assert sorts.get(0).getDirection() == Direction.ASCENDING;
+        assert sorts.get(0).getDirection() == SortDirection.ASCENDING;
         assert sorts.get(0).getSortExpression().equals("CUSTOMERNAME");
     }
 
@@ -69,16 +69,16 @@
 
         assert svc.getSorts() != null;
         assert sorts.size() == 2;
-        assert sorts.get(0).getDirection() == Direction.ASCENDING;
+        assert sorts.get(0).getDirection() == SortDirection.ASCENDING;
         assert sorts.get(0).getSortExpression().equals("CUSTOMERNAME");
-        assert sorts.get(1).getDirection() == Direction.DESCENDING;
+        assert sorts.get(1).getDirection() == SortDirection.DESCENDING;
         assert sorts.get(1).getSortExpression().equals("UNITPRICE");
 
         SortService productSvc = SortService.getInstance(getRequest(), 
"productGrid");
         assert productSvc.getSorts() != null;
         assert productSvc.getSorts().size() == 1;
         sorts = productSvc.getSorts();
-        assert sorts.get(0).getDirection() == Direction.ASCENDING;
+        assert sorts.get(0).getDirection() == SortDirection.ASCENDING;
         assert sorts.get(0).getSortExpression().equals("QUANTITY");
     }
 
@@ -89,7 +89,7 @@
 
         assert svc.getSorts() != null;
         assert sorts.size() == 1;
-        assert sorts.get(0).getDirection() == Direction.DESCENDING;
+        assert sorts.get(0).getDirection() == SortDirection.DESCENDING;
         assert sorts.get(0).getSortExpression().equals("CUSTOMERNAME");
     }
 

Reply via email to