Author: ekoneil
Date: Mon Feb 14 10:05:13 2005
New Revision: 153816
URL: http://svn.apache.org/viewcvs?view=rev&rev=153816
Log:
Cleanup some data grid APIs.
- remove IFilter and replace with Filter concrete class
- remove ISort and replace with Sort concrete class
- add a FilterOperation concrete class
- add a FilterOperationHint enum that provides some context to the operation
that FilterOperation actually represents. For example, a FilterOperation can
be marked as "equals" now.
- move the publically exposed / stable APIs into datagrid/api
- move the internal APIs into datagrid/runtime
- delete a bunch of unused stuff
BB: self
DRT: NetUI pass / datagrid pass
BVT: NetUI pass
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/Filter.java
- copied, changed from r153679,
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/api/filter/FilterModel.java
- copied, changed from r153679,
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/api/filter/FilterOperation.java
(with props)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java
- copied, changed from r153679,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/Sort.java
- copied, changed from r153679,
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/api/sort/SortDirection.java
(with props)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortModel.java
- copied, changed from r153679,
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/runtime/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridState.java
(with props)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridStateFactory.java
(with props)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridURLService.java
- copied, changed from r153679,
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/runtime/codec/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/FilterCodec.java
- copied, changed from r153679,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterCodec.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/PagerCodec.java
- copied, changed from r153679,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/pager/PagerCodec.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/SortCodec.java
- copied, changed from r153679,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortCodec.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/filter/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sort/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLFilterService.java
(with props)
Removed:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
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/FilterModel.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/services/DataGridStateService.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/pager/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.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/rendering/pager/FirstPreviousNextLastPagerRenderer.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PagerRenderer.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PreviousNextPagerRenderer.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/FilterUtil.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/DataGridTestUtil.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/FilterCodecTest.java
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/FilterModelTest.java
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/PagerCodecTest.java
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/PagerModelTest.java
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/PagerRendererTest.java
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortCodecTest.java
incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/test/datagrid/SortModelTest.java
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/WEB-INF/tags/org/apache/beehive/netui/test/databinding/tagfiles/jumpToPage.tag
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/Filter.java
(from r153679,
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/api/filter/Filter.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/DefaultFilter.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/Filter.java&r2=153816
==============================================================================
---
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/api/filter/Filter.java
Mon Feb 14 10:05:13 2005
@@ -15,28 +15,21 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.model.filter;
-
-import
org.apache.beehive.netui.databinding.datagrid.exceptions.IllegalFilterException;
+package org.apache.beehive.netui.databinding.datagrid.api.filter;
/**
*
*/
-public class DefaultFilter
- implements IFilter {
+public class Filter {
private String _filterExpression;
private FilterOperation _filterOperation;
private Object _value;
- public DefaultFilter() {
- }
-
- public DefaultFilter(String filterExpression, String filterOperation,
Object value) {
- this(filterExpression, mapStringToInt(filterOperation), value);
+ public Filter() {
}
- public DefaultFilter(String filterExpression, FilterOperation
filterOperation, Object value) {
+ public Filter(String filterExpression, FilterOperation filterOperation,
Object value) {
this();
_filterExpression = filterExpression;
@@ -66,18 +59,5 @@
public Object getValue() {
return _value;
- }
-
- public String getOperationString() {
- return _filterOperation != null ? _filterOperation.getAbbreviation() :
"";
- }
-
- private static final FilterOperation mapStringToInt(String operation) {
- for(FilterOperation fOp : FilterOperation.values()) {
- if(fOp.getAbbreviation().equals(operation))
- return fOp;
- }
-
- throw new IllegalFilterException("Can not map the operation name \"" +
operation + "\" to a filter operation");
}
}
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/FilterModel.java
(from r153679,
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/api/filter/FilterModel.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/FilterModel.java&r2=153816
==============================================================================
---
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/api/filter/FilterModel.java
Mon Feb 14 10:05:13 2005
@@ -15,37 +15,30 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.model.filter;
+package org.apache.beehive.netui.databinding.datagrid.api.filter;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
-import java.util.HashMap;
import java.util.Collections;
-import javax.servlet.ServletRequest;
-
-import
org.apache.beehive.netui.databinding.datagrid.services.filter.FilterCodec;
/**
*
*/
public class FilterModel {
- private String _namespace = null;
- private List<IFilter> _filters = null;
+ private List<Filter> _filters = null;
- public FilterModel(String name, List<IFilter> filters) {
- _namespace = name;
+ public FilterModel(List<Filter> filters) {
_filters = filters;
}
- public List<IFilter> getFilters() {
+ public List<Filter> getFilters() {
if(_filters == null)
return null;
else return Collections.unmodifiableList(_filters);
}
- public List<IFilter> getFilters(String filterExpression) {
+ public List<Filter> getFilters(String filterExpression) {
if(_filters == null)
return null;
else return
Collections.unmodifiableList(lookupFilters(filterExpression));
@@ -60,13 +53,13 @@
else return false;
}
- private List<IFilter> lookupFilters(String filterExpression) {
+ private List<Filter> lookupFilters(String filterExpression) {
assert filterExpression != null;
assert !filterExpression.equals("");
/* todo: perf. need to do this with FilterModelArrayList */
- ArrayList<IFilter> filters = new ArrayList<IFilter>();
- for(IFilter filter : _filters) {
+ ArrayList<Filter> filters = new ArrayList<Filter>();
+ for(Filter filter : _filters) {
if(filter.getFilterExpression().equals(filterExpression))
filters.add(filter);
}
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/FilterOperation.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/FilterOperation.java?view=auto&rev=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/FilterOperation.java
(added)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/FilterOperation.java
Mon Feb 14 10:05:13 2005
@@ -0,0 +1,53 @@
+/*
+ * 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.api.filter;
+
+/**
+ *
+ */
+public class FilterOperation {
+
+ private int _id;
+ private String _abbreviation;
+ private String _resourceKey;
+
+ private FilterOperationHint _operationHint;
+
+ public FilterOperation(int id, String abbreviation, String resourceKey,
FilterOperationHint operationHint) {
+ _id = id;
+ _abbreviation = abbreviation;
+ _operationHint = operationHint;
+ _resourceKey = resourceKey;
+ }
+
+ public int getId() {
+ return _id;
+ }
+
+ public String getAbbreviation() {
+ return _abbreviation;
+ }
+
+ public String getResourceKey() {
+ return _resourceKey;
+ }
+
+ public FilterOperationHint getOperationHint() {
+ return _operationHint;
+ }
+}
Propchange:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/filter/FilterOperation.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java
(from r153679,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java)
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/pager/PagerModel.java
Mon Feb 14 10:05:13 2005
@@ -15,7 +15,7 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.model;
+package org.apache.beehive.netui.databinding.datagrid.api.pager;
/**
*
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/Sort.java
(from r153679,
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/api/sort/Sort.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/DefaultSort.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/Sort.java&r2=153816
==============================================================================
---
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/api/sort/Sort.java
Mon Feb 14 10:05:13 2005
@@ -15,23 +15,22 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.model.sort;
+package org.apache.beehive.netui.databinding.datagrid.api.sort;
/**
*
*/
-public class DefaultSort
- implements ISort {
+public class Sort {
private String _sortExpression;
private SortDirection _sortDirection;
- public DefaultSort() {
- super();
+ public Sort() {
}
- public DefaultSort(String sortExpression, SortDirection sortDirection) {
+ public Sort(String sortExpression, SortDirection sortDirection) {
this();
+
_sortExpression = sortExpression;
_sortDirection = sortDirection;
}
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortDirection.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortDirection.java?view=auto&rev=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortDirection.java
(added)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortDirection.java
Mon Feb 14 10:05:13 2005
@@ -0,0 +1,32 @@
+/*
+ * 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.api.sort;
+
+/**
+ */
+public enum SortDirection {
+ ASCENDING, DESCENDING, NONE;
+
+ public SortDirection flipDirection() {
+ if(this == SortDirection.ASCENDING)
+ return SortDirection.DESCENDING;
+ else if(this == SortDirection.DESCENDING)
+ return SortDirection.ASCENDING;
+ else return SortDirection.ASCENDING;
+ }
+}
Propchange:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortDirection.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortModel.java
(from r153679,
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/api/sort/SortModel.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/sort/SortModel.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/api/sort/SortModel.java&r2=153816
==============================================================================
---
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/api/sort/SortModel.java
Mon Feb 14 10:05:13 2005
@@ -15,27 +15,23 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.model.sort;
+package org.apache.beehive.netui.databinding.datagrid.api.sort;
import java.util.List;
import java.util.Collections;
-import
org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection;
-
/**
*
*/
public class SortModel {
- private String _name = null;
- private List<ISort> _sorts = null;
+ private List<Sort> _sorts = null;
- public SortModel(String name, List<ISort> sorts) {
- _name = name;
+ public SortModel(List<Sort> sorts) {
_sorts = sorts;
}
- public List<ISort> getSorts() {
+ public List<Sort> getSorts() {
if(_sorts != null)
return Collections.unmodifiableList(_sorts);
else return null;
@@ -52,7 +48,7 @@
}
public boolean isSorted(String sortExpression) {
- ISort term = findSort(sortExpression);
+ Sort term = findSort(sortExpression);
if(term == null || term.getDirection() == SortDirection.NONE)
return false;
else
@@ -60,28 +56,14 @@
}
public SortDirection getSortDirection(String sortExpression) {
- ISort term = findSort(sortExpression);
+ Sort term = findSort(sortExpression);
return term == null ? SortDirection.NONE : term.getDirection();
}
- public boolean removeSort(String sortExpression) {
- ISort term = findSort(sortExpression);
- if(term != null) {
- _sorts.remove(term);
- return true;
- } else
- return false;
- }
-
- public void addSort(String sortExpression, SortDirection sortDirection) {
- DefaultSort sort = new DefaultSort(sortExpression, sortDirection);
- _sorts.add(sort);
- }
-
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("SortModel:\n");
- for(ISort sort : _sorts) {
+ for(Sort sort : _sorts) {
sb.append("\t");
sb.append(sort.toString());
sb.append("\n");
@@ -89,11 +71,11 @@
return sb.toString();
}
- private ISort findSort(String sortExpression) {
+ private Sort findSort(String sortExpression) {
if(_sorts == null)
return null;
- for(ISort sort : _sorts) {
+ for(Sort sort : _sorts) {
if(sort.getSortExpression().equals(sortExpression))
return sort;
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java?view=diff&r1=153815&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
Mon Feb 14 10:05:13 2005
@@ -17,33 +17,33 @@
*/
package org.apache.beehive.netui.databinding.datagrid.model;
-import java.util.ResourceBundle;
import java.util.Map;
-import java.text.MessageFormat;
import javax.servlet.jsp.JspContext;
-import javax.servlet.jsp.PageContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.beehive.netui.databinding.datagrid.model.style.StylePolicy;
-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.model.filter.FilterModel;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortDirection;
import
org.apache.beehive.netui.databinding.datagrid.rendering.table.TableRenderer;
import
org.apache.beehive.netui.databinding.datagrid.rendering.pager.PagerRenderer;
import
org.apache.beehive.netui.databinding.datagrid.rendering.pager.PreviousNextPagerRenderer;
+import
org.apache.beehive.netui.databinding.datagrid.runtime.DataGridURLService;
+import org.apache.beehive.netui.databinding.datagrid.runtime.DataGridState;
import org.apache.beehive.netui.databinding.datagrid.util.PagedDataSet;
import org.apache.beehive.netui.databinding.datagrid.util.IDataGridMessageKeys;
import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
import
org.apache.beehive.netui.databinding.datagrid.util.DataGridResourceProvider;
-import
org.apache.beehive.netui.databinding.datagrid.services.DataGridStateService;
import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
-import org.apache.beehive.netui.util.Bundle;
/**
*
*/
public class DataGridModel {
+ /*
+ todo: refactor.
+ need a DataGridURL type that hides URL keys / creation.
+ */
public static final int START_RENDER_STATE = 10;
public static final int CAPTION_RENDER_STATE = 20;
public static final int GRID_RENDER_STATE = 30;
@@ -58,8 +58,9 @@
private PagerRenderer _pagerRenderer = null;
private PagedDataSet _dataSet = null;
private TableRenderer _tableRenderer = null;
- private DataGridStateService _dgss = null;
+ private DataGridURLService _dgss = null;
private DataGridResourceProvider _resourceProvider = null;
+ private DataGridState _dataGridState = null;
private JspContext _jspContext = null;
private HttpServletRequest _request = null;
@@ -67,10 +68,13 @@
public DataGridModel(JspContext jspContext, String name, PagedDataSet
dataSet) {
super();
+ /* todo: refactor. this assembly could should be externalized */
_name = name;
_jspContext = jspContext;
_dataSet = dataSet;
- _dgss = DataGridStateService.getInstance(jspContext);
+ _dgss = DataGridURLService.getInstance(jspContext);
+ _dataGridState = _dgss.getDataGridState(name);
+ _dataGridState.getPagerModel().setDataSetSize(_dataSet.getSize());
_request = JspUtil.getRequest(_jspContext);
@@ -185,13 +189,18 @@
appender.append(getPagerRenderer().render());
}
+ /* -------------------------------------------------------------
+
+ Move these methods to a DataGridURL class.
+
+ ------------------------------------------------------------- */
public Map buildSortQueryParamsMap() {
return _dgss.buildSortQueryParamsMap(_name);
}
public Map<String, String[]> getSortQueryParamsMap(String sortExpression) {
- SortModel sortModel = _dgss.getSortModel(_name);
+ SortModel sortModel = _dataGridState.getSortModel();
SortDirection sortDirection =
sortModel.getSortDirection(sortExpression);
if(sortDirection == SortDirection.NONE)
@@ -203,18 +212,8 @@
else throw new IllegalStateException("Received invalid sort direction
\"" + sortDirection + "\"");
}
- public SortModel getSortModel() {
- return _dgss.getSortModel(_name);
- }
-
- public FilterModel getFilterModel() {
- return _dgss.getFilterModel(_name);
- }
-
- public PagerModel getPagerModel() {
- PagerModel pm = _dgss.getPagerModel(_name);
- pm.setDataSetSize(_dataSet.getSize());
- return pm;
+ public DataGridState getDataGridState() {
+ return _dataGridState;
}
public Map getQueryParamsForFirstPage() {
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&r1=153815&r2=153816
==============================================================================
---
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
Mon Feb 14 10:05:13 2005
@@ -32,8 +32,8 @@
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.SortDirection;
-import org.apache.beehive.netui.databinding.datagrid.model.sort.SortModel;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortDirection;
import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
import org.apache.beehive.netui.util.logging.Logger;
@@ -72,7 +72,7 @@
DataGridModel dgm = cellModel.getDataGridModel();
assert dgm != null;
- SortModel sortModel = dgm.getSortModel();
+ SortModel sortModel = dgm.getDataGridState().getSortModel();
StringBuilder builder = new StringBuilder();
AbstractRenderAppender appender = new
StringBuilderRenderAppender(builder);
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/FirstPreviousNextLastPagerRenderer.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/FirstPreviousNextLastPagerRenderer.java?view=diff&r1=153815&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/FirstPreviousNextLastPagerRenderer.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/FirstPreviousNextLastPagerRenderer.java
Mon Feb 14 10:05:13 2005
@@ -17,9 +17,8 @@
*/
package org.apache.beehive.netui.databinding.datagrid.rendering.pager;
-import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
-import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.util.IDataGridMessageKeys;
+import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
/**
*
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PagerRenderer.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PagerRenderer.java?view=diff&r1=153815&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PagerRenderer.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PagerRenderer.java
Mon Feb 14 10:05:13 2005
@@ -20,14 +20,12 @@
import java.util.Map;
import java.net.URISyntaxException;
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.PageContext;
-import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
+import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
import org.apache.beehive.netui.databinding.datagrid.util.IDataGridMessageKeys;
import
org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecoratorException;
-import org.apache.beehive.netui.pageflow.internal.InternalUtils;
import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.tags.rendering.AnchorTag;
import org.apache.beehive.netui.tags.rendering.TagRenderingBase;
@@ -59,7 +57,7 @@
assert gridModel != null;
_gridModel = gridModel;
- _pagerModel = _gridModel.getPagerModel();
+ _pagerModel = _gridModel.getDataGridState().getPagerModel();
_request = JspUtil.getRequest(_gridModel.getJspContext());
_anchorTag =
TagRenderingBase.Factory.getRendering(TagRenderingBase.ANCHOR_TAG, _request);
}
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PreviousNextPagerRenderer.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PreviousNextPagerRenderer.java?view=diff&r1=153815&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PreviousNextPagerRenderer.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/pager/PreviousNextPagerRenderer.java
Mon Feb 14 10:05:13 2005
@@ -17,9 +17,8 @@
*/
package org.apache.beehive.netui.databinding.datagrid.rendering.pager;
-import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
-import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.util.IDataGridMessageKeys;
+import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
public class PreviousNextPagerRenderer
extends PagerRenderer {
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridState.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridState.java?view=auto&rev=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridState.java
(added)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridState.java
Mon Feb 14 10:05:13 2005
@@ -0,0 +1,56 @@
+/*
+ * 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.runtime;
+
+import org.apache.beehive.netui.databinding.datagrid.api.filter.FilterModel;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel;
+import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
+
+/**
+ *
+ */
+public class DataGridState {
+
+ private FilterModel _filterModel;
+ private SortModel _sortModel;
+ private PagerModel _pagerModel;
+
+ public SortModel getSortModel() {
+ return _sortModel;
+ }
+
+ public void setSortModel(SortModel sortModel) {
+ _sortModel = sortModel;
+ }
+
+ public FilterModel getFilterModel() {
+ return _filterModel;
+ }
+
+ public void setFilterModel(FilterModel filterModel) {
+ _filterModel = filterModel;
+ }
+
+ public PagerModel getPagerModel() {
+ return _pagerModel;
+ }
+
+ public void setPagerModel(PagerModel pagerModel) {
+ _pagerModel = pagerModel;
+ }
+}
Propchange:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridState.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridStateFactory.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridStateFactory.java?view=auto&rev=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridStateFactory.java
(added)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridStateFactory.java
Mon Feb 14 10:05:13 2005
@@ -0,0 +1,35 @@
+/*
+ * 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.runtime;
+
+import javax.servlet.ServletRequest;
+
+/**
+ *
+ */
+public class DataGridStateFactory {
+
+ private DataGridStateFactory() {
+ }
+
+ public static Object instantiate(ServletRequest request, Class type) {
+ if(type == DataGridState.class)
+ return new DataGridState();
+ else throw new IllegalArgumentException("Could not find a factory for
type \"" + type + "\"");
+ }
+}
Propchange:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridStateFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridURLService.java
(from r153679,
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/runtime/DataGridURLService.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/DataGridURLService.java&r2=153816
==============================================================================
---
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/runtime/DataGridURLService.java
Mon Feb 14 10:05:13 2005
@@ -15,7 +15,7 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.services;
+package org.apache.beehive.netui.databinding.datagrid.runtime;
import java.util.Map;
import java.util.List;
@@ -26,15 +26,15 @@
import javax.servlet.jsp.JspContext;
import javax.servlet.jsp.PageContext;
-import org.apache.beehive.netui.databinding.datagrid.model.sort.ISort;
-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.PagerModel;
-import org.apache.beehive.netui.databinding.datagrid.model.filter.IFilter;
-import org.apache.beehive.netui.databinding.datagrid.model.filter.FilterModel;
-import org.apache.beehive.netui.databinding.datagrid.services.sort.SortCodec;
-import org.apache.beehive.netui.databinding.datagrid.services.pager.PagerCodec;
-import
org.apache.beehive.netui.databinding.datagrid.services.filter.FilterCodec;
+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;
+import org.apache.beehive.netui.databinding.datagrid.api.filter.FilterModel;
+import org.apache.beehive.netui.databinding.datagrid.api.filter.Filter;
+import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
+import org.apache.beehive.netui.databinding.datagrid.runtime.codec.SortCodec;
+import org.apache.beehive.netui.databinding.datagrid.runtime.codec.FilterCodec;
+import org.apache.beehive.netui.databinding.datagrid.runtime.codec.PagerCodec;
/**
* A DataGridStateService is an object that is shared between all data grids
@@ -46,44 +46,55 @@
* The DataGridStateService is scoped to a single ServletRequest and is
* able to cache the ServletRequest object itself.
*/
-public class DataGridStateService {
+public class DataGridURLService {
+
+ /*
+ todo: this class isn't right yet...
+ requirements:
+ - URLs that are *cheap* to construct
+ - each data grid is responsible for its own URL state
+ - Sort / Filter objects can be constructed for each grid
+ */
private static final int FIRST_PAGE = 0;
- private static final String KEY = DataGridStateService.class.getName() +
"REQUEST_KEY";
+ private static final String KEY = DataGridURLService.class.getName() +
"REQUEST_KEY";
private static final String EMPTY_STRING = "";
- public static DataGridStateService getInstance(JspContext jspContext) {
+ public static DataGridURLService getInstance(JspContext jspContext) {
assert jspContext instanceof PageContext;
return getInstance(((PageContext)jspContext).getRequest());
}
- public static DataGridStateService getInstance(ServletRequest request) {
+ public static DataGridURLService getInstance(ServletRequest request) {
Object obj = request.getAttribute(KEY);
if(obj != null) {
- assert obj instanceof DataGridStateService;
+ assert obj instanceof DataGridURLService;
- return (DataGridStateService)obj;
+ return (DataGridURLService)obj;
} else {
- DataGridStateService dgss = new DataGridStateService(request);
+ DataGridURLService dgss = new DataGridURLService(request);
request.setAttribute(KEY, dgss);
return dgss;
}
}
+ private ServletRequest _request = null;
private Map _urlParams = null;
+ private HashMap<String, DataGridState> _state = null;
+ /* start: need to delete these */
private SortCodec _sortCodec = null;
- private Map<String, List<ISort>> _sorts = null;
-
+ private Map<String, List<Sort>> _sorts = null;
private PagerCodec _pagerCodec = null;
private Map<String, PagerModel> _pagers = null;
-
private FilterCodec _filterCodec = null;
- private Map<String, List<IFilter>> _filters = null;
+ private Map<String, List<Filter>> _filters = null;
+ /* end: need to delete these */
- private DataGridStateService(ServletRequest request) {
+ private DataGridURLService(ServletRequest request) {
+ _request = request;
_urlParams = request.getParameterMap();
_sortCodec = new SortCodec();
@@ -94,30 +105,28 @@
_filterCodec = new FilterCodec();
_filters = _filterCodec.decode(_urlParams);
- }
- public String getPagerRowQueryParamKey() {
- return _pagerCodec.getRowQueryParamKey();
+ _state = new HashMap<String, DataGridState>();
}
- public PagerModel getPagerModel(String namespace) {
- PagerModel pm = _pagers.get(namespace);
- if(pm == null) {
- pm = new PagerModel();
- _pagers.put(namespace, pm);
- }
+ public DataGridState getDataGridState(String name) {
+ if(name == null || name.equals(""))
+ throw new IllegalArgumentException("Unable to create data grid
state for invalid name: " + name);
- return pm;
- }
+ DataGridState dgs = _state.get(name);
+ if(dgs == null) {
+ dgs = (DataGridState)DataGridStateFactory.instantiate(_request,
DataGridState.class);
+ dgs.setPagerModel(getPagerModel(name));
+ dgs.setFilterModel(new FilterModel(getFilters(name)));
+ dgs.setSortModel(new SortModel(getSorts(name)));
+ _state.put(name, dgs);
+ }
- public SortModel getSortModel(String namespace) {
- /* todo: caching */
- return new SortModel(namespace, getSorts(namespace));
+ return dgs;
}
- public FilterModel getFilterModel(String namespace) {
- /* todo: caching */
- return new FilterModel(namespace, getFilters(namespace));
+ public String getPagerRowQueryParamKey() {
+ return _pagerCodec.getRowQueryParamKey();
}
/* --------------------------------------------------
@@ -126,7 +135,7 @@
-------------------------------------------------- */
public Map buildSortQueryParamsMap(String namespace) {
- List<ISort> sorts = getSorts(namespace);
+ List<Sort> sorts = getSorts(namespace);
if(sorts == null)
return buildQueryParamMap_sort(null, null);
@@ -140,9 +149,9 @@
assert sortExpression != null;
assert sortDirection != null;
- List<ISort> sorts = getSorts(namespace);
+ List<Sort> sorts = getSorts(namespace);
String sortParamValue = null;
- boolean isSorted = getSortModel(namespace).isSorted(sortExpression);
+ boolean isSorted =
getDataGridState(namespace).getSortModel().isSorted(sortExpression);
if(sorts != null) {
sortParamValue = _sortCodec.encode(namespace, sorts,
sortExpression, sortDirection, isSorted);
} else if(sortDirection != SortDirection.NONE && !isSorted) {
@@ -169,22 +178,22 @@
}
public Map getQueryParamsForPreviousPage(String namespace) {
- PagerModel pagerModel = getPagerModel(namespace);
+ PagerModel pagerModel = getDataGridState(namespace).getPagerModel();
return buildQueryParamMap_pager(namespace,
pagerModel.getPreviousPage());
}
public Map getQueryParamsForNextPage(String namespace) {
- PagerModel pagerModel = getPagerModel(namespace);
+ PagerModel pagerModel = getDataGridState(namespace).getPagerModel();
return buildQueryParamMap_pager(namespace, pagerModel.getNextPage());
}
public Map getQueryParamsForLastPage(String namespace) {
- PagerModel pagerModel = getPagerModel(namespace);
+ PagerModel pagerModel = getDataGridState(namespace).getPagerModel();
return buildQueryParamMap_pager(namespace, pagerModel.getLastPage());
}
public String[] getPagerParamValues(String namespace) {
- PagerModel pagerModel = getPagerModel(namespace);
+ PagerModel pagerModel = getDataGridState(namespace).getPagerModel();
String[] params = new String[pagerModel.getLastPage() + 1];
@@ -222,7 +231,7 @@
if(_filters != null) {
ArrayList filterList = new ArrayList();
for(String curNamespace : _filters.keySet()) {
- List<IFilter> filters = _filters.get(curNamespace);
+ List<Filter> filters = _filters.get(curNamespace);
filterList.add(_filterCodec.encode(curNamespace, filters,
filterExpression));
}
@@ -253,7 +262,7 @@
if(curNamespace.equals(namespace))
continue;
- List<IFilter> filters = _filters.get(curNamespace);
+ List<Filter> filters = _filters.get(curNamespace);
String filterParamValue = _filterCodec.encode(curNamespace,
filters);
filterList.add(filterParamValue);
}
@@ -269,14 +278,14 @@
-------------------------------------------------- */
- private List<ISort> getSorts(String namespace) {
+ private List<Sort> getSorts(String namespace) {
if(_sorts != null)
return _sorts.get(namespace);
else
return null;
}
- private List<IFilter> getFilters(String namespace) {
+ private List<Filter> getFilters(String namespace) {
if(_filters != null)
return _filters.get(namespace);
else return null;
@@ -360,5 +369,15 @@
params.put(_sortCodec.getQueryParamKey(), new String[]
{paramValue});
return params;
+ }
+
+ private PagerModel getPagerModel(String namespace) {
+ PagerModel pm = _pagers.get(namespace);
+ if(pm == null) {
+ pm = new PagerModel();
+ _pagers.put(namespace, pm);
+ }
+
+ return pm;
}
}
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/FilterCodec.java
(from r153679,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterCodec.java)
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/FilterCodec.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterCodec.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/FilterCodec.java&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterCodec.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/FilterCodec.java
Mon Feb 14 10:05:13 2005
@@ -15,17 +15,16 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.services.filter;
+package org.apache.beehive.netui.databinding.datagrid.runtime.codec;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
import java.util.Map;
-import java.util.Collections;
+import java.util.List;
import java.util.LinkedHashMap;
+import java.util.ArrayList;
-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.databinding.datagrid.api.filter.Filter;
+import
org.apache.beehive.netui.databinding.datagrid.api.filter.FilterOperation;
+import
org.apache.beehive.netui.databinding.datagrid.runtime.sql.SQLFilterService;
import org.apache.beehive.netui.util.logging.Logger;
/* Beehive filter format:
netui_filter=<namespace>;<fExpr>~<fOp>~<fVal>,<fExpr>~<fOp>~<fVal> */
@@ -44,13 +43,13 @@
return "netui_filter";
}
- public Map<String, List<IFilter>> decode(Map params) {
+ public Map<String, List<Filter>> decode(Map params) {
String[] queryParams = (String[])params.get(getQueryParamKey());
if(queryParams == null)
return null;
- LinkedHashMap<String, List<IFilter>> map = new LinkedHashMap<String,
List<IFilter>>();
+ LinkedHashMap<String, List<Filter>> map = new LinkedHashMap<String,
List<Filter>>();
for(String filterParam : queryParams) {
String[] nameAndFilters = filterParam.split(GRID_NAME_DELIM);
@@ -60,17 +59,18 @@
String namespace = nameAndFilters[0];
String[] filters = nameAndFilters[1].split(FILTER_DELIM);
- ArrayList<IFilter> gridFilters = new ArrayList<IFilter>();
+ ArrayList<Filter> gridFilters = new ArrayList<Filter>();
for(int i = 0; i < filters.length; i++) {
String[] terms = filters[i].split(FILTER_TERM_DELIM);
- IFilter filter = null;
+ Filter filter = null;
if(terms.length == 2 && terms[1].equals("*"))
continue;
else if(terms.length == 3) {
try {
- // the namespace is ignored here since all filter
terms are scoped into a namespace already
- filter = new DefaultFilter(terms[0], terms[1],
terms[2]);
+ /* todo: refactor. need to map String to
FilterOperation */
+ FilterOperation fOp =
SQLFilterService.mapStringToOperation(terms[1]);
+ filter = new Filter(terms[0], fOp, terms[2]);
} catch(NumberFormatException nfe) {
if(LOGGER.isErrorEnabled())
LOGGER.error("An error occurred parsing a URL
filter with syntax \"" + filter + "\".");
@@ -92,11 +92,11 @@
return map;
}
- public String encode(String namespace, List<IFilter> filters) {
+ public String encode(String namespace, List<Filter> filters) {
return encode(namespace, filters, null);
}
- public String encode(String namespace, List<IFilter> filters, String
omitFilterExpression) {
+ public String encode(String namespace, List<Filter> filters, String
omitFilterExpression) {
if(filters == null || filters.size() == 0)
return null;
@@ -106,7 +106,7 @@
sb.append(namespace);
sb.append(GRID_NAME_DELIM);
for(int i = 0; i < filters.size(); i++) {
- IFilter filter = filters.get(i);
+ Filter filter = filters.get(i);
if(omitFilterExpression != null &&
filter.getFilterExpression().equals(omitFilterExpression))
continue;
@@ -115,7 +115,7 @@
sb.append(filter.getFilterExpression());
sb.append(FILTER_TERM_DELIM);
- sb.append(filter.getOperationString());
+ sb.append(filter.getOperation().getAbbreviation());
sb.append(FILTER_TERM_DELIM);
sb.append(filter.getValue());
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/PagerCodec.java
(from r153679,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/pager/PagerCodec.java)
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/PagerCodec.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/pager/PagerCodec.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/PagerCodec.java&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/pager/PagerCodec.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/PagerCodec.java
Mon Feb 14 10:05:13 2005
@@ -15,13 +15,13 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.services.pager;
+package org.apache.beehive.netui.databinding.datagrid.runtime.codec;
import java.util.Map;
import java.util.HashMap;
import org.apache.beehive.netui.util.logging.Logger;
-import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
+import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
/**
*
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/SortCodec.java
(from r153679,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortCodec.java)
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/SortCodec.java?view=diff&rev=153816&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortCodec.java&r1=153679&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/SortCodec.java&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/sort/SortCodec.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/codec/SortCodec.java
Mon Feb 14 10:05:13 2005
@@ -15,16 +15,15 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.services.sort;
+package org.apache.beehive.netui.databinding.datagrid.runtime.codec;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
-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.SortDirection;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.Sort;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortDirection;
/**
*
@@ -37,17 +36,17 @@
private static final String SORT_TERM_DELIM = ",";
public String getQueryParamKey() {
- return ISort.SORT_PARAM_KEY;
+ return "netui_sort";
}
- public Map<String, List<ISort>> decode(Map params) {
+ public Map<String, List<Sort>> decode(Map params) {
String[] queryParams = (String[])params.get(getQueryParamKey());
if(queryParams == null)
return null;
- Map<String, List<ISort>> map = new HashMap<String, List<ISort>>();
+ Map<String, List<Sort>> map = new HashMap<String, List<Sort>>();
for(String sortParam : queryParams) {
String[] terms = sortParam.split(SORT_DELIM);
@@ -59,7 +58,7 @@
// two columns of the bugs grid would be sorted as:
//
// netui_sort=bugs~id,-priority
- ArrayList<ISort> sorts = new ArrayList<ISort>();
+ ArrayList<Sort> sorts = new ArrayList<Sort>();
String[] cols = terms[1].split(SORT_TERM_DELIM);
for(String sortExpr : cols) {
SortDirection sortDirection = SortDirection.NONE;
@@ -68,8 +67,7 @@
else sortDirection = SortDirection.ASCENDING;
String sortExpression = (sortDirection ==
SortDirection.DESCENDING ? sortExpr.substring(1) : sortExpr);
- /* todo: pluggability */
- ISort sort = new DefaultSort(sortExpression, sortDirection);
+ Sort sort = new Sort(sortExpression, sortDirection);
sorts.add(sort);
}
@@ -81,22 +79,22 @@
return map;
}
- public String encode(String namespace, List<ISort> sorts) {
+ public String encode(String namespace, List<Sort> sorts) {
return buildSortParamValue(namespace, sorts, null, null, false);
}
- public String encode(String namespace, List<ISort> sorts, String
sortExpression, SortDirection sortDirection, boolean isSorted) {
+ public String encode(String namespace, List<Sort> sorts, String
sortExpression, SortDirection sortDirection, boolean isSorted) {
return buildSortParamValue(namespace, sorts, sortExpression,
sortDirection, isSorted);
}
- private String buildSortParamValue(String namespace, List<ISort> sorts,
String sortExpression, SortDirection sortDirection, boolean isSorted) {
+ private String buildSortParamValue(String namespace, List<Sort> sorts,
String sortExpression, SortDirection sortDirection, boolean isSorted) {
StringBuilder sb = new StringBuilder();
sb.append(namespace);
sb.append("~");
boolean hasTerms = false;
for(int i = 0; i < sorts.size(); i++) {
- ISort sort = sorts.get(i);
+ Sort sort = sorts.get(i);
if(sortExpression != null &&
sortExpression.equals(sort.getSortExpression())) {
if(sortDirection != SortDirection.NONE) {
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLFilterService.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLFilterService.java?view=auto&rev=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLFilterService.java
(added)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLFilterService.java
Mon Feb 14 10:05:13 2005
@@ -0,0 +1,184 @@
+/*
+ * 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.runtime.sql;
+
+import java.util.Map;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import
org.apache.beehive.netui.databinding.datagrid.api.filter.FilterOperation;
+import
org.apache.beehive.netui.databinding.datagrid.api.filter.FilterOperationHint;
+import org.apache.beehive.netui.databinding.datagrid.api.filter.Filter;
+import
org.apache.beehive.netui.databinding.datagrid.exceptions.IllegalFilterException;
+
+/**
+ * @netui:jspfunctions
+ */
+public class SQLFilterService {
+
+ private static final String EMPTY_STRING = "";
+ private static final FilterOperation[] FILTER_OPERATIONS;
+
+ static {
+ FILTER_OPERATIONS = new FilterOperation[] {
+ new FilterOperation(0, "*", "filter.sql.none.",
FilterOperationHint.NONE),
+ new FilterOperation(1, "eq", "filter.sql.equal",
FilterOperationHint.EQUAL),
+ new FilterOperation(2, "ne", "filter.sql.notequal",
FilterOperationHint.NOT_EQUAL),
+ new FilterOperation(3, "gt", "filter.sql.greaterthan",
FilterOperationHint.GREATER_THAN),
+ new FilterOperation(4, "lt", "filter.sql.lessthan",
FilterOperationHint.LESS_THAN),
+ new FilterOperation(5, "ge", "filter.sql.greaterthanorequal",
FilterOperationHint.GREATER_THAN_OR_EQUAL),
+ new FilterOperation(6, "le", "filter.sql.lessthanorequal",
FilterOperationHint.LESS_THAN_OR_EQUAL),
+ new FilterOperation(7, "in", "filter.sql.isoneof",
FilterOperationHint.IS_ONE_OF),
+ new FilterOperation(8, "startswith", "filter.sql.startswith",
FilterOperationHint.STARTS_WITH),
+ new FilterOperation(9, "contains", "filter.sql.contains",
FilterOperationHint.CONTAINS),
+ new FilterOperation(10, "isempty", "filter.sql.isempty",
FilterOperationHint.IS_EMPTY),
+ new FilterOperation(11, "isnotempty", "filter.sql.isnotempty",
FilterOperationHint.IS_NOT_EMPTY)
+ };
+ }
+
+ private static final String TYPE_HINT_STRING = "string";
+ private static final String TYPE_HINT_DATE = "date";
+
+ private static final FilterOperation STRING_FILTER_OPERATION =
FILTER_OPERATIONS[9];
+ private static final FilterOperation OTHER_FILTER_OPERATION =
FILTER_OPERATIONS[1];
+
+ private SQLFilterService() {}
+
+ /**
+ * @param typeHint
+ * @return
+ * @netui:jspfunction name="lookupFilterOperations"
+ * signature="java.util.Map
lookupFilterOperations(java.lang.String)"
+ */
+ public static Map lookupFilterOperations(String typeHint) {
+ LinkedHashMap ops = new LinkedHashMap<String, String>();
+
+ /* todo: i18n */
+ ops.put(FILTER_OPERATIONS[0].getAbbreviation(), "No Filter");
+ ops.put(FILTER_OPERATIONS[1].getAbbreviation(), "Equals");
+ ops.put(FILTER_OPERATIONS[2].getAbbreviation(), "Not Equal");
+ ops.put(FILTER_OPERATIONS[3].getAbbreviation(), "Greater Than");
+ ops.put(FILTER_OPERATIONS[4].getAbbreviation(), "Less Than");
+ ops.put(FILTER_OPERATIONS[5].getAbbreviation(), "Is Greater Than or
Equal To");
+ ops.put(FILTER_OPERATIONS[6].getAbbreviation(), "Is Less Than or Equal
To");
+
+ if(!typeHint.equals(TYPE_HINT_DATE)) {
+ ops.put(FILTER_OPERATIONS[7].getAbbreviation(), "Is One Of (eg:
1;2;3)");
+ }
+
+ if(typeHint == null || typeHint.equals(TYPE_HINT_STRING)) {
+ ops.put(FILTER_OPERATIONS[8].getAbbreviation(), "Starts With");
+ ops.put(FILTER_OPERATIONS[9].getAbbreviation(), "Contains");
+ ops.put(FILTER_OPERATIONS[10].getAbbreviation(), "Is Empty");
+ ops.put(FILTER_OPERATIONS[11].getAbbreviation(), "Is Not Empty");
+ }
+
+ return ops;
+ }
+
+ /**
+ * @param typeHint
+ * @return
+ * @netui:jspfunction name="lookupDefaultFilterOperation"
+ * signature="java.lang.String
lookupDefaultFilterOperations(java.lang.String)"
+ */
+ public static String lookupDefaultFilterOperation(String typeHint) {
+ FilterOperation fOp = OTHER_FILTER_OPERATION;
+ if(typeHint == null || typeHint.equals(TYPE_HINT_STRING))
+ fOp = STRING_FILTER_OPERATION;
+
+ return fOp.getAbbreviation();
+ }
+
+ public String createWhereFragment(List<Filter> filters) {
+ if(filters == null || filters.size() == 0)
+ return EMPTY_STRING;
+
+ StringBuilder sb = new StringBuilder(64);
+ internalCreateWhereFragment(sb, filters);
+ return sb.toString();
+ }
+
+ public String createWhereClause(List<Filter> filters) {
+ if(filters == null || filters.size() == 0)
+ return EMPTY_STRING;
+
+ StringBuilder sb = new StringBuilder();
+ sb.append("WHERE ");
+ internalCreateWhereFragment(sb, filters);
+ return sb.toString();
+ }
+
+ public static final FilterOperation mapStringToOperation(String abbrev) {
+ for(FilterOperation fOp : FILTER_OPERATIONS) {
+ if(fOp.getAbbreviation().equals(abbrev))
+ return fOp;
+ }
+ return null;
+ }
+
+ private void internalCreateWhereFragment(StringBuilder sb, List<Filter>
filters) {
+
+ for(int i = 0; i < filters.size(); i++) {
+ Filter filter = filters.get(i);
+
+ /* todo: pluggable conjunctions AND and OR here */
+ if(i > 0)
+ sb.append(" AND ");
+
+ sb.append(filter.getFilterExpression());
+ FilterOperation op = filter.getOperation();
+ sb.append(" ");
+
+ /* todo: need to map the ID to an operator in a
filter-implementation specific way */
+ sb.append(mapIdToOperator(op));
+ sb.append(" ");
+
+ /* todo: handling type hints and quoting */
+ sb.append("\"");
+ sb.append(filter.getValue());
+ sb.append("\"");
+ }
+ }
+
+ private String mapIdToOperator(FilterOperation op) {
+ if(op.getOperationHint() == FilterOperationHint.EQUAL)
+ return "=";
+ else if(op.getOperationHint() == FilterOperationHint.NOT_EQUAL)
+ return "!=";
+ else if(op.getOperationHint() == FilterOperationHint.GREATER_THAN)
+ return ">";
+ else if(op.getOperationHint() == FilterOperationHint.LESS_THAN)
+ return "<";
+ else if(op.getOperationHint() ==
FilterOperationHint.GREATER_THAN_OR_EQUAL)
+ return ">=";
+ else if(op.getOperationHint() ==
FilterOperationHint.LESS_THAN_OR_EQUAL)
+ return "<=";
+ else if(op.getOperationHint() == FilterOperationHint.IS_ONE_OF)
+ return "NYI";
+ else if(op.getOperationHint() == FilterOperationHint.STARTS_WITH)
+ return "NYI";
+ else if(op.getOperationHint() == FilterOperationHint.CONTAINS)
+ return "NYI";
+ else if(op.getOperationHint() == FilterOperationHint.IS_EMPTY)
+ return "NYI";
+ else if(op.getOperationHint() == FilterOperationHint.IS_NOT_EMPTY)
+ return "NYI";
+ else throw new IllegalFilterException("Can not create a SQL statement
from the unknown filter operation " + op);
+ }
+}
Propchange:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/runtime/sql/SQLFilterService.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/FilterUtil.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/FilterUtil.java?view=diff&r1=153815&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/FilterUtil.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/FilterUtil.java
Mon Feb 14 10:05:13 2005
@@ -19,30 +19,20 @@
import java.util.List;
import java.util.ArrayList;
-import java.util.Map;
-import java.util.LinkedHashMap;
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.databinding.datagrid.model.filter.IFilter.FilterOperation;
+import org.apache.beehive.netui.databinding.datagrid.api.filter.Filter;
/**
* @netui:jspfunctions
*/
public class FilterUtil {
- private static final List<IFilter> DEFAULT_FILTER_LIST;
- private static final IFilter DEFAULT_FILTER = new DefaultFilter();
-
- private static final String TYPE_HINT_STRING = "string";
- private static final String TYPE_HINT_DATE = "date";
-
- private static final FilterOperation STRING_FILTER_OPERATION =
FilterOperation.CONTAINS;
- private static final FilterOperation OTHER_FILTER_OPERATION =
FilterOperation.EQUAL;
+ private static final List<Filter> DEFAULT_FILTER_LIST;
+ private static final Filter DEFAULT_FILTER = new Filter();
static {
- DEFAULT_FILTER_LIST = new ArrayList<IFilter>();
+ DEFAULT_FILTER_LIST = new ArrayList<Filter>();
DEFAULT_FILTER_LIST.add(DEFAULT_FILTER);
DEFAULT_FILTER_LIST.add(DEFAULT_FILTER);
}
@@ -50,52 +40,6 @@
private FilterUtil() {}
/**
- * @param typeHint
- * @return
- * @netui:jspfunction name="lookupFilterOperations"
- * signature="java.util.Map
lookupFilterOperations(java.lang.String)"
- */
- public static Map lookupFilterOperations(String typeHint) {
- LinkedHashMap ops = new LinkedHashMap<String, String>();
-
- /* todo: i18n */
- ops.put(FilterOperation.NOT_EQUAL.getAbbreviation(), "No Filter");
- ops.put(FilterOperation.EQUAL.getAbbreviation(), "Equals");
- ops.put(FilterOperation.NOT_EQUAL.getAbbreviation(), "Not Equal");
- ops.put(FilterOperation.GREATER_THAN.getAbbreviation(), "Greater
Than");
- ops.put(FilterOperation.LESS_THAN.getAbbreviation(), "Less Than");
- ops.put(FilterOperation.GREATER_THAN_OR_EQUAL.getAbbreviation(), "Is
Greater Than or Equal To");
- ops.put(FilterOperation.LESS_THAN_OR_EQUAL.getAbbreviation(), "Is Less
Than or Equal To");
-
- if(!typeHint.equals(TYPE_HINT_DATE)) {
- ops.put(FilterOperation.IS_ONE_OF.getAbbreviation(), "Is One Of
(eg: 1;2;3)");
- }
-
- if(typeHint == null || typeHint.equals(TYPE_HINT_STRING)) {
- ops.put(FilterOperation.STARTS_WITH.getAbbreviation(), "Starts
With");
- ops.put(FilterOperation.CONTAINS.getAbbreviation(), "Contains");
- ops.put(FilterOperation.IS_EMPTY.getAbbreviation(), "Is Empty");
- ops.put(FilterOperation.IS_NOT_EMPTY.getAbbreviation(), "Is Not
Empty");
- }
-
- return ops;
- }
-
- /**
- * @param typeHint
- * @return
- * @netui:jspfunction name="lookupDefaultFilterOperation"
- * signature="java.lang.String
lookupDefaultFilterOperations(java.lang.String)"
- */
- public static String lookupDefaultFilterOperation(String typeHint) {
- FilterOperation fOp = OTHER_FILTER_OPERATION;
- if(typeHint == null || typeHint.equals(TYPE_HINT_STRING))
- fOp = STRING_FILTER_OPERATION;
-
- return fOp.getAbbreviation();
- }
-
- /**
* Function that normalizes the data set that is used to render the
* filter window UI. This function is needed because the NetUI
* tags require that dataSource expressions evaluate to live values
@@ -107,8 +51,8 @@
* signature="void
ensureFilters(javax.servlet.jsp.JspContext java.lang.String)"
*/
public static void ensureFilters(JspContext jspContext, String attrName) {
- List<IFilter> filters =
(List<IFilter>)jspContext.getAttribute("filters");
- List<IFilter> pcFilters = new ArrayList<IFilter>();
+ List<Filter> filters =
(List<Filter>)jspContext.getAttribute("filters");
+ List<Filter> pcFilters = new ArrayList<Filter>();
if(filters == null || filters.size() == 0)
pcFilters = DEFAULT_FILTER_LIST;
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java?view=diff&r1=153815&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlTableCell.java
Mon Feb 14 10:05:13 2005
@@ -24,8 +24,8 @@
import javax.servlet.jsp.JspException;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
-import org.apache.beehive.netui.databinding.datagrid.model.sort.SortModel;
import
org.apache.beehive.netui.databinding.datagrid.rendering.table.TableRenderer;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel;
import org.apache.beehive.netui.tags.IAttributeConsumer;
import org.apache.beehive.netui.tags.html.HtmlConstants;
import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
@@ -283,7 +283,7 @@
/* todo: extensibility in supporting style decorators */
ArrayList<String> styleClasses = new ArrayList<String>();
- SortModel sortModel = dataGridModel.getSortModel();
+ SortModel sortModel = dataGridModel.getDataGridState().getSortModel();
if(sortModel.isSorted(_sortExpression))
styleClasses.add(dataGridModel.getStylePolicy().getDataCellSortedClass());
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java?view=diff&r1=153815&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java
Mon Feb 14 10:05:13 2005
@@ -21,12 +21,12 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
-import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
import
org.apache.beehive.netui.databinding.datagrid.rendering.pager.PagerRenderer;
import
org.apache.beehive.netui.databinding.datagrid.rendering.pager.FirstPreviousNextLastPagerRenderer;
import
org.apache.beehive.netui.databinding.datagrid.rendering.pager.PreviousNextPagerRenderer;
import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
import
org.apache.beehive.netui.databinding.datagrid.exceptions.DataGridExtensionException;
+import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.util.logging.Logger;
@@ -114,7 +114,7 @@
DataGridModel dgm = DataGridUtil.getDataGridModel(getJspContext());
assert dgm != null;
- PagerModel pm = dgm.getPagerModel();
+ PagerModel pm = dgm.getDataGridState().getPagerModel();
assert pm != null;
PagerRenderer pagerRenderer = null;
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&r1=153815&r2=153816
==============================================================================
---
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
Mon Feb 14 10:05:13 2005
@@ -28,12 +28,12 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
-import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
import org.apache.beehive.netui.databinding.datagrid.model.style.StylePolicy;
import
org.apache.beehive.netui.databinding.datagrid.model.style.DefaultStylePolicy;
import
org.apache.beehive.netui.databinding.datagrid.model.style.EmptyStylePolicy;
import org.apache.beehive.netui.databinding.datagrid.util.PagedDataSet;
import
org.apache.beehive.netui.databinding.datagrid.rendering.table.TableRenderer;
+import org.apache.beehive.netui.databinding.datagrid.api.pager.PagerModel;
import org.apache.beehive.netui.script.common.IDataAccessProvider;
import org.apache.beehive.netui.script.common.DataAccessProviderStack;
import org.apache.beehive.netui.tags.ExpressionHandling;
@@ -176,7 +176,7 @@
fragment.invoke(sw);
/* todo: this needs to move into the DataGridModel */
- PagerModel pm = _gridModel.getPagerModel();
+ PagerModel pm = _gridModel.getDataGridState().getPagerModel();
_gridModel.getDataSet().createWindow(pm.getRow(), pm.getRow() +
pm.getPageSize());
/* now that the model objects have been initialized, it's time to
start rendering */
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java
URL:
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java?view=diff&r1=153815&r2=153816
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/HeaderCell.java
Mon Feb 14 10:05:13 2005
@@ -31,12 +31,12 @@
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.CellModel;
-import org.apache.beehive.netui.databinding.datagrid.model.sort.SortModel;
import
org.apache.beehive.netui.databinding.datagrid.rendering.cell.CellDecorator;
import
org.apache.beehive.netui.databinding.datagrid.rendering.cell.HeaderCellDecorator;
import
org.apache.beehive.netui.databinding.datagrid.rendering.cell.SortedCellDecorator;
import
org.apache.beehive.netui.databinding.datagrid.rendering.table.TableRenderer;
import org.apache.beehive.netui.databinding.datagrid.util.JspUtil;
+import org.apache.beehive.netui.databinding.datagrid.api.sort.SortModel;
import org.apache.beehive.netui.util.Bundle;
/**
@@ -47,16 +47,20 @@
extends AbstractCell
implements IAttributeConsumer {
+ private static final String TAG_NAME = "HeaderCell";
+
private static final String FACET_HEADER_NAME = "header";
private static final String FACET_RENDERER_NAME = "renderer";
- private static final String FACET_RENDERER_NAME_NEW = "extends";
+ private static final String FACET_RENDERER_NAME_DEFAULT = "default";
+ private static final String FACET_RENDERER_NAME_SORT = "sort";
+ private static final String FACET_RENDERER_NAME_EXTENDS = "extends";
- private static final CellDecorator DEFAULT_HEADER_RENDERER;
- private static final CellDecorator SORTED_HEADER_RENDERER;
+ private static final CellDecorator DECORATOR_HEADER_DEFAULT;
+ private static final CellDecorator DECORATOR_HEADER_SORTED;
static {
- DEFAULT_HEADER_RENDERER = new HeaderCellDecorator();
- SORTED_HEADER_RENDERER = new
SortedCellDecorator(DEFAULT_HEADER_RENDERER);
+ DECORATOR_HEADER_DEFAULT = new HeaderCellDecorator();
+ DECORATOR_HEADER_SORTED = new
SortedCellDecorator(DECORATOR_HEADER_DEFAULT);
}
private String _headerText = null;
@@ -65,7 +69,7 @@
private CellDecorator _cellDecorator = null;
public String getTagName() {
- return "HeaderCell";
+ return TAG_NAME;
}
/**
@@ -356,13 +360,22 @@
}
else if(facet != null && facet.equals(FACET_RENDERER_NAME)) {
/* provides a way to extend the existing decorators */
- if(name.equals(FACET_RENDERER_NAME_NEW)) {
+ if(name.equals(FACET_RENDERER_NAME_EXTENDS)) {
CellDecorator cellDecorator =
(CellDecorator)DataGridUtil.instantiateClass(value, CellDecorator.class);
cellDecorator.setNestedDecorator(getCellDecorator());
_cellDecorator = cellDecorator;
return;
}
- /* todo: provide a way to override the existing decorators
(core/sorted/etc) */
+ else if(name.equals(FACET_RENDERER_NAME_SORT)) {
+ CellDecorator cellDecorator =
(CellDecorator)DataGridUtil.instantiateClass(value, CellDecorator.class);
+ cellDecorator.setNestedDecorator(DECORATOR_HEADER_SORTED);
+ _cellDecorator = cellDecorator;
+ }
+ /* replace the core cell decorator with a new default */
+ else if(name.equals(FACET_RENDERER_NAME_DEFAULT)) {
+ CellDecorator cellDecorator =
(CellDecorator)DataGridUtil.instantiateClass(value, CellDecorator.class);
+ _cellDecorator = cellDecorator;
+ }
}
String s = Bundle.getString("Tags_AttributeFacetNotSupported", new
Object[]{facet});
@@ -383,7 +396,7 @@
assert tableRenderer != null;
ArrayList<String> styleClasses = new ArrayList<String>();
- SortModel sortModel = dataGridModel.getSortModel();
+ SortModel sortModel = dataGridModel.getDataGridState().getSortModel();
if(sortModel.isSorted(_headerCellModel.getSortExpression()))
styleClasses.add(dataGridModel.getStylePolicy().getHeaderCellSortedClass());
@@ -453,8 +466,8 @@
if(_cellDecorator != null)
return _cellDecorator;
else {
- assert SORTED_HEADER_RENDERER != null;
- return SORTED_HEADER_RENDERER;
+ assert DECORATOR_HEADER_SORTED != null;
+ return DECORATOR_HEADER_SORTED;
}
}
}