Author: ekoneil Date: Sun Jan 16 12:28:34 2005 New Revision: 125363 URL: http://svn.apache.org/viewcvs?view=rev&rev=125363 Log: Data grid updates.
- Fix JIRA 157 - implement ability to change filter query param key - fix API for sort / filter information in AbstractHtmlColumn BB: self DRT: Beehive pass BVT: NetUI pass Removed: incubator/beehive/trunk/netui/test/src/junitTests/org/apache/beehive/netui/util/ Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java&r2=125363 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/cell/HeaderCellModel.java Sun Jan 16 12:28:34 2005 @@ -34,6 +34,10 @@ private String _sortExpression = null; private String _sortAction = null; + private boolean _disableFilterRendering = false; + private String _filterExpression = null; + private String _filterAction = null; + public String getScopeId() { return _scopeId; } @@ -68,6 +72,30 @@ public void setSortExpression(String sortExpression) { _sortExpression = sortExpression; + } + + public boolean isDisableFilterRendering() { + return _disableFilterRendering; + } + + public void setDisableFilterRendering(boolean disableFilterRendering) { + _disableFilterRendering = disableFilterRendering; + } + + public String getFilterExpression() { + return _filterExpression; + } + + public void setFilterExpression(String filterExpression) { + _filterExpression = filterExpression; + } + + public String getFilterAction() { + return _filterAction; + } + + public void setFilterAction(String filterAction) { + _filterAction = filterAction; } public String getHeaderText() { Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java&r2=125363 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/filter/FilterModel.java Sun Jan 16 12:28:34 2005 @@ -44,7 +44,9 @@ } public String getFilterParamKey() { - return _filterParamKey; + if(_filterParamKey == null) + return IFilter.FILTER_PARAM_KEY; + else return _filterParamKey; } public List<IFilter> getFilters(String filterExpression) { @@ -59,10 +61,9 @@ return false; if(_filters.containsKey(filterExpression)) { - assert ((List)_filters.get(filterExpression)).size() > 0; + assert _filters.get(filterExpression).size() > 0; return true; - } else - return false; + } else return false; } /** Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java&r2=125363 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/cell/SortedCellDecorator.java Sun Jan 16 12:28:34 2005 @@ -58,12 +58,10 @@ assert cellModel instanceof HeaderCellModel; HeaderCellModel headerCellModel = (HeaderCellModel)cellModel; - String sortLink = null; - _decorator.decorate(jspContext, appender, cellModel); if(headerCellModel.isSortable()) { - sortLink = buildSortLink(jspContext, headerCellModel); + String sortLink = buildSortLink(jspContext, headerCellModel); appender.append(" "); appender.append(sortLink); } Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java&r2=125363 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/DataGridStateService.java Sun Jan 16 12:28:34 2005 @@ -28,6 +28,7 @@ import org.apache.beehive.netui.databinding.datagrid.model.sort.DefaultSort; import org.apache.beehive.netui.databinding.datagrid.model.sort.SortModel; import org.apache.beehive.netui.databinding.datagrid.model.sort.ISort.SortDirection; +import org.apache.beehive.netui.databinding.datagrid.model.filter.FilterModel; /** * todo: need to support registering URL prefixes that have state service handlers and should be omitted from regular URL construction. @@ -37,6 +38,7 @@ private String _namespace = null; private SortModel _sortModel = null; + private FilterModel _filterModel = null; public static final DataGridStateService createInstance(ServletRequest request, String namespace) { assert request != null; @@ -73,6 +75,10 @@ if(_sortModel == null) _sortModel = new SortModel(_namespace); _sortModel.handleRequest(request); + + if(_filterModel == null) + _filterModel = new FilterModel(_namespace); + _filterModel.handleRequest(request); } public String getNamespace() { @@ -82,6 +88,10 @@ /* todo: could add lookups here based on base-class as a generic way to get to a service implementation */ public SortModel getSortModel() { return _sortModel; + } + + public FilterModel getFilterModel() { + return _filterModel; } public Map<String, String[]> buildSortQueryParamsMap() { Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java&r2=125363 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/services/filter/FilterService.java Sun Jan 16 12:28:34 2005 @@ -82,7 +82,7 @@ HashMap<String, List<IFilter>> map = new HashMap<String, List<IFilter>>(); for(int i = 0; i < queryParams.length; i++) { - // @todo: need to make this pluggable... + /* todo: need to make this pluggable */ if(!queryParams[i].startsWith(namespace + "~")) continue; @@ -105,14 +105,14 @@ private static final IFilter parse(String namespace, String filter) { - // @todo: need to figure out how to handle this case... + /* todo: need to figure out how to handle this case */ if (!filter.startsWith(namespace)) return null; // crack filter terms here String[] terms = filter.split(FILTER_DELIM); - // @todo: what did this mean? + /* todo: what did this mean? */ if (terms.length == 3 && terms[2].equals("*")) return null; else if (terms.length == 4) { Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java&r2=125363 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractColumn.java Sun Jan 16 12:28:34 2005 @@ -18,7 +18,6 @@ package org.apache.beehive.netui.tags.databinding.datagrid; import java.io.IOException; -import javax.servlet.jsp.tagext.JspTag; import javax.servlet.jsp.JspException; import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel; @@ -73,11 +72,6 @@ */ public void doTag() throws JspException, IOException { - - /* todo: this should be done in a TLV */ - JspTag parent = findAncestorWithClass(this, Columns.class); - if (!(parent instanceof Columns)) - throw new JspException("A Column tag must be contained inside of a Columns tag."); DataGridModel dataGridModel = DataGridUtil.getDataGridModel(getJspContext()); assert dataGridModel != null; Modified: incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java?view=diff&rev=125363&p1=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r1=125362&p2=incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java&r2=125363 ============================================================================== --- incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java (original) +++ incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/AbstractHtmlColumn.java Sun Jan 16 12:28:34 2005 @@ -59,28 +59,49 @@ private HeaderCellModel _headerCellModel = new HeaderCellModel(); /** + * @netui:attribute required="false" rtexprvalue="true" description="Optional String scopeId that qualifies URL parameters into a particular scope" + */ + public void setScopeId(String scopeId) { + _headerCellModel.setScopeId(scopeId); + } + + /** * @netui:attribute required="false" rtexprvalue="true" description="Boolean switch that sets whether the default sort link should be rendered" */ - public void setDisableSortRendering(boolean disableSortRendering) { - _headerCellModel.setDisableSortRendering(disableSortRendering); + public void setDisableFilterRendering(boolean disableFilterRendering) { + _headerCellModel.setDisableFilterRendering(disableFilterRendering); } /** * @netui:attribute required="false" rtexprvalue="true" description="String expression that represents the field to sort when sorting data in this column" */ - public void setSortExpression(String sortExpression) { - _headerCellModel.setSortExpression(sortExpression); + public void setFilterExpression(String filterExpression) { + _headerCellModel.setFilterExpression(filterExpression); } /** - * @netui:attribute required="false" rtexprvalue="true" description="Optional String scopeId that qualifies URL parameters into a particular scope" + * @netui:attribute required="false" rtexprvalue="true" description="The action to run when performing a filter on this column" */ - public void setScopeId(String scopeId) { - _headerCellModel.setScopeId(scopeId); + public void setFilterAction(String filterAction) { + _headerCellModel.setFilterAction(filterAction); + } + + /** + * @netui:attribute required="false" rtexprvalue="true" description="Boolean switch that sets whether the default filter link should be rendered" + */ + public void setDisableSortRendering(boolean disableSortRendering) { + _headerCellModel.setDisableSortRendering(disableSortRendering); + } + + /** + * @netui:attribute required="false" rtexprvalue="true" description="String expression that represents the field to filter when filtering data in this column" + */ + public void setSortExpression(String sortExpression) { + _headerCellModel.setSortExpression(sortExpression); } /** - * @netui:attribute required="false" rtexprvalue="true" description="The action to run when performing a sort on this column" + * @netui:attribute required="false" rtexprvalue="true" description="The action to run when performing a filter on this column" */ public void setSortAction(String sortAction) { _headerCellModel.setSortAction(sortAction); @@ -549,9 +570,7 @@ _headerCellModel.setBodyContent(bodyContent); _headerCellModel.setHeaderText(getHeaderText()); - if(_headerCellModel.isDisableSortRendering()) - DEFAULT_HEADER_RENDERER.decorate(getJspContext(), appender, _headerCellModel); - else SORTED_HEADER_RENDERER.decorate(getJspContext(), appender, _headerCellModel); + SORTED_HEADER_RENDERER.decorate(getJspContext(), appender, _headerCellModel); } protected abstract void renderDataCellContents(AbstractRenderAppender appender);
