Author: ekoneil
Date: Tue Aug 10 16:17:05 2004
New Revision: 36197
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/IPagerRenderer.java
(contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/TableRenderer.java
- copied, changed from rev 36156,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/TableRenderer.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java
(contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java
(contents, props changed)
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java
(contents, props changed)
Removed:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/TableRenderer.java
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
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/model/PagerModel.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/PagedDataSet.java
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.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/RenderPager.java
Log:
Start building the component rendering framework for the grid.
This breaks the pager rendering code out of the PagerModel and into an
IPagerRenderer interface with an AbstractPagerRenderer implementation. The two
current pager models extend this interface.
Fixup dependent classes to use these implementations and remove pagerStyle
support from the PagerModel.
Also disable the SortService and FilterService for the time being.
BB: self
DRT: NetUI pass
NetUI datagrid suite pass
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/ColumnModel.java
Tue Aug 10 16:17:05 2004
@@ -109,9 +109,6 @@
public void setFilterUri(String filterUri) {_filterUri = filterUri;}
public String getFilterUri() {return _filterUri;}
- public SortService getSortService() {return
_dataGridModel.getSortService();}
- public FilterService getFilterService() {return
_dataGridModel.getFilterService();}
-
public void addFormatter(FormatTag.Formatter formatter)
{
if(_formatters == null)
@@ -137,7 +134,7 @@
{
Object value = _headerText;
- SortService sortService = _dataGridModel.getSortService();
+ //SortService sortService = _dataGridModel.getSortService();
PageContext pageContext = _dataGridModel.getPageContext();
buffer.append(value);
@@ -173,9 +170,12 @@
public void openHeaderCell(StringBuffer buf)
{
int[] styles = null;
- if(getSortService().isPrimarySort(getSortExpression()))
+/*
+ if(_dataGridModel.getSortService().isPrimarySort(getSortExpression()))
styles = new int[] {StylePolicy.HEADER_CELL_CLASS,
StylePolicy.HEADER_CELL_SORTED_CLASS};
- else styles = new int[] {StylePolicy.HEADER_CELL_CLASS};
+ else
+*/
+ styles = new int[] {StylePolicy.HEADER_CELL_CLASS};
_dataGridModel.getTableRenderer().openHeaderCell(buf, styles);
}
@@ -194,7 +194,7 @@
{
_dataGridModel.getTableRenderer().closeTableCell(buf);
}
-
+
protected void renderEmptyCell(StringBuffer buffer)
{
buffer.append(EMPTY_CELL);
@@ -218,17 +218,17 @@
if (_formatters == null)
return text.toString();
- for (int i = 0;i<_formatters.size();i++)
+ for (int i = 0;i<_formatters.size();i++)
{
FormatTag.Formatter currentFormatter =
(FormatTag.Formatter)_formatters.get(i);
assert currentFormatter != null;
- try
+ try
{
if(_logger.isDebugEnabled()) _logger.debug("run formatter of
type \"" + currentFormatter.getClass().getName() + "\"");
text = currentFormatter.format(text);
}
- catch (JspException e)
+ catch (JspException e)
{
// todo: need a way to register errors
if(_logger.isErrorEnabled()) _logger.error("A formatter of
type \"" + currentFormatter.getClass().getName() + "\" threw an exception " +
e, e);
@@ -240,7 +240,7 @@
// todo: this should be done with cell decorators
private static final void renderSortLink(StringBuffer buffer,
DataGridModel dataGridModel,
- SortService sortService, String
sortUri,
+ SortService sortService, String
sortUri,
String sortExpression, Object
value)
{
assert sortService != null;
@@ -269,10 +269,10 @@
}
buffer.append(" ");
}
-
+
// todo: this should be done with cell decorators
private static final void renderFilterLink(StringBuffer buffer,
DataGridModel dataGridModel,
- String filterExpression, String
headerText,
+ String filterExpression, String
headerText,
String filterUri, Object value)
{
assert dataGridModel != null;
@@ -334,5 +334,5 @@
HttpServletRequest request =
(HttpServletRequest)dataGridModel.getPageContext().getRequest();
String uri = request.getContextPath() + resourceName;
return uri;
- }
+ }
}
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/model/DataGridModel.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/DataGridModel.java
Tue Aug 10 16:17:05 2004
@@ -21,11 +21,13 @@
import java.util.*;
import javax.servlet.jsp.PageContext;
+import org.apache.beehive.netui.databinding.datagrid.rendering.TableRenderer;
import org.apache.beehive.netui.databinding.datagrid.services.FilterService;
import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
import org.apache.beehive.netui.databinding.datagrid.services.SortService;
import org.apache.beehive.netui.databinding.datagrid.util.PagedDataSet;
-import org.apache.beehive.netui.databinding.datagrid.util.TableRenderer;
+import org.apache.beehive.netui.databinding.datagrid.rendering.IPagerRenderer;
+import
org.apache.beehive.netui.databinding.datagrid.rendering.impl.PreviousNextPagerRenderer;
import org.apache.beehive.netui.util.logging.Logger;
/**
@@ -45,6 +47,8 @@
private FilterService _filterService = null;
private PagerService _pagerService = null;
+ private IPagerRenderer _pagerRenderer = null;
+
private PagerModel _pagerModel = null;
private PageContext _pageContext;
@@ -108,8 +112,11 @@
public void renderPager(StringBuffer buf)
{
- assert _pagerModel != null;
- buf.append(_pagerModel.render());
+ // todo: should this be an assert or should it just return null?
+ if(_pagerRenderer == null)
+ _pagerRenderer = new PreviousNextPagerRenderer(this, _pagerModel);
+
+ buf.append(_pagerRenderer.render());
}
public void openTable(StringBuffer buf)
@@ -173,19 +180,25 @@
public void setSortService(SortService sortService) {_sortService =
sortService;}
public SortService getSortService()
{
+ throw new UnsupportedOperationException("NYI");
+/*
if(_sortService == null)
_sortService = SortService.getInstance(_pageContext.getRequest(),
_name);
return _sortService;
+*/
}
public void setFilterService(FilterService filterService) {_filterService
= filterService;}
public FilterService getFilterService()
{
+ throw new UnsupportedOperationException("NYI");
+/*
if(_filterService == null)
_filterService =
FilterService.getInstance(_pageContext.getRequest(), _name);
return _filterService;
+ */
}
public void setPagerService(PagerService pagerService) {_pagerService =
pagerService;}
@@ -195,6 +208,16 @@
_pagerService =
PagerService.getInstance(_pageContext.getRequest(), _name);
return _pagerService;
+ }
+
+ public void setPagerRenderer(IPagerRenderer pagerRenderer)
+ {
+ _pagerRenderer = pagerRenderer;
+ }
+
+ public IPagerRenderer getPagerRenderer()
+ {
+ return _pagerRenderer;
}
public String getName() {return _name;}
Modified:
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/PagerModel.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/model/PagerModel.java
Tue Aug 10 16:17:05 2004
@@ -25,17 +25,13 @@
/**
*
* todo: need to throw IllegalStateExceptions when pager model getters are
called before the PagerModel is intiailized
- * todo: need a IPagerRenderer interface and PagerRender extensibility model
- * todo: lots of i18n here
*/
public class PagerModel
{
private static final Logger _logger = Logger.getInstance(PagerModel.class);
private static final int DEFAULT_PAGE_SIZE = 10;
- private static final int FIRST_PAGE = 1;
- public static final int PREV_NEXT_STYLE = 1;
- public static final int FIRST_PREV_NEXT_LAST_STYLE = 2;
+ public static final int FIRST_PAGE = 1;
private DataGridModel _model = null;
private PagerService _pagerService = null;
@@ -50,7 +46,6 @@
private int _lastPage = -1;
private int _prevPage = -1;
private int _nextPage = -1;
- private int _pagerStyle = PREV_NEXT_STYLE;
public PagerModel(DataGridModel model)
{
@@ -81,19 +76,17 @@
public String getPageUri() {return _pageUri;}
public void setPageUri(String pageUri) {_pageUri = pageUri;}
+ public PagerService getPagerService() {return _pagerService;}
+
public int getCurrentPageFromURL() {return _pagerService.getCurrentPage();}
public int getDataSetSize() {return _dataSetSize;}
- public int getLastPageIndex() {return _lastPage;}
+ public int getLastPage() {return _lastPage;}
- public int getPagerStyle() {return _pagerStyle;}
+ public int getPreviousPage() {return _prevPage;}
- public void setPagerStyle(int pagerStyle)
- {
- // todo: error handling when the pagerStyle is out of range
- _pagerStyle = pagerStyle;
- }
+ public int getNextPage() {return _nextPage;}
public int getCurrentPage()
{
@@ -109,6 +102,7 @@
_currentPage = new Integer(currentPage);
}
+/*
public String getOutput()
{
StringBuilder buf = new StringBuilder();
@@ -149,7 +143,7 @@
renderFirstLastPrevNextStyle(buf);
}
}
-
+*/
private void calculatePageBoundaries()
{
assert _pagerService != null;
@@ -165,119 +159,5 @@
_prevPage = _currentPage-1;
_nextPage = _currentPage+1;
- }
-
- private void renderFirstLastPrevNextStyle(StringBuilder buf)
- {
- buf.append("Page ");
- buf.append(_currentPage);
- buf.append(" of ");
- buf.append(_lastPage);
- buf.append(" ");
-
- String pageUri = _pageUri;
- if(pageUri != null)
- pageUri =
PageflowTagUtils.createActionURL(_model.getPageContext(), pageUri);
-
- if(_currentPage > FIRST_PAGE)
- buildLiveFirstLink(buf, _pagerService, pageUri);
- else buildDeadFirstLink(buf);
-
- buf.append(" / ");
- if(_prevPage > 0)
- buildLivePreviousLink(buf, _pagerService, pageUri);
- else buildDeadPreviousLink(buf);
-
- buf.append(" ");
- if(_nextPage <= _lastPage)
- {
- buildLiveNextPageLink(buf, _pagerService, pageUri);
- }
- else buildDeadNextLink(buf);
-
- buf.append(" / ");
- if(_currentPage < _lastPage)
- buildLiveLastLink(buf, _pagerService, pageUri, _lastPage);
- else buildDeadLastLink(buf);
- }
-
- private void renderPrevNextStyle(StringBuilder buf)
- {
- buf.append("Page ");
- buf.append(_currentPage);
- buf.append(" of ");
- buf.append(_lastPage);
- buf.append(" ");
-
- String pageUri = (_pageUri != null ? _pageUri : null);
- if(pageUri != null)
- pageUri =
PageflowTagUtils.createActionURL(_model.getPageContext(), pageUri);
-
- if(_prevPage > 0)
- buildLivePreviousLink(buf, _pagerService, pageUri);
- else if(_lastPage > 1)
- buildDeadPreviousLink(buf);
-
- buf.append(" ");
- if(_nextPage <= _lastPage)
- buildLiveNextPageLink(buf, _pagerService, pageUri);
- else if(_lastPage > 1)
- buildDeadNextLink(buf);
- }
-
- private static final void buildLiveFirstLink(StringBuilder buf,
PagerService pagerService, String pageUri)
- {
- buf.append("<a href=\"");
- buf.append(pageUri);
- buf.append("?");
- buf.append(pagerService.buildQueryParamForPage(FIRST_PAGE));
- buf.append("\">First</a>");
- }
-
- private static final void buildDeadFirstLink(StringBuilder buf)
- {
- buf.append("First");
- }
-
- private static final void buildLivePreviousLink(StringBuilder buf,
PagerService pagerService, String pageUri)
- {
- buf.append("<a href=\"");
- buf.append(pageUri);
- buf.append("?");
- buf.append(pagerService.getPrevPageQueryParam());
- buf.append("\">Previous</a>");
- }
-
- private static final void buildDeadPreviousLink(StringBuilder buf)
- {
- buf.append("Previous");
- }
-
- private static final void buildLiveNextPageLink(StringBuilder buf,
PagerService pagerService, String pageUri)
- {
- buf.append("<a href=\"");
- buf.append(pageUri);
- buf.append("?");
- buf.append(pagerService.getNextPageQueryParam());
- buf.append("\">Next</a>");
- }
-
- private static final void buildDeadNextLink(StringBuilder buf)
- {
- buf.append("Next");
- }
-
- private static final void buildLiveLastLink(StringBuilder buf,
PagerService pagerService, String pageUri, int lastPage)
- {
- buf.append("<a href=\"");
- buf.append(pageUri);
- buf.append("?");
- buf.append(pagerService.buildQueryParamForPage(lastPage));
- buf.append("\">Last</a>");
- }
-
- private static final void buildDeadLastLink(StringBuilder buf)
- {
- buf.append("Last");
}
}
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/IPagerRenderer.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/IPagerRenderer.java
Tue Aug 10 16:17:05 2004
@@ -0,0 +1,29 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * 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.rendering;
+
+import org.apache.beehive.netui.databinding.datagrid.model.PagerModel;
+
+/**
+ *
+ */
+public interface IPagerRenderer
+{
+ public String render();
+}
Copied:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/TableRenderer.java
(from rev 36156,
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/TableRenderer.java)
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/TableRenderer.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/TableRenderer.java
Tue Aug 10 16:17:05 2004
@@ -16,7 +16,7 @@
*
* $Header:$
*/
-package org.apache.beehive.netui.databinding.datagrid.util;
+package org.apache.beehive.netui.databinding.datagrid.rendering;
import org.apache.beehive.netui.databinding.datagrid.model.StylePolicy;
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/AbstractPagerRenderer.java
Tue Aug 10 16:17:05 2004
@@ -0,0 +1,122 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * 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.rendering.impl;
+
+import org.apache.beehive.netui.util.logging.Logger;
+import org.apache.beehive.netui.databinding.datagrid.services.PagerService;
+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.rendering.IPagerRenderer;
+
+/**
+ * todo: lots of i18n here
+ */
+public abstract class AbstractPagerRenderer
+ implements IPagerRenderer
+{
+ private static final Logger _logger =
Logger.getInstance(AbstractPagerRenderer.class);
+
+ private PagerModel _pagerModel;
+ private DataGridModel _gridModel;
+
+ public AbstractPagerRenderer(DataGridModel gridModel, PagerModel
pagerModel)
+ {
+ super();
+ assert pagerModel != null;
+ assert gridModel != null;
+
+ _gridModel = gridModel;
+ _pagerModel = pagerModel;
+ }
+
+ public PagerModel getPagerModel() {return _pagerModel;}
+
+ public DataGridModel getDataGridModel() {return _gridModel;}
+
+ public String render()
+ {
+ if(_pagerModel.getDataSetSize() == 0)
+ return noDataRender();
+ else return internalRender();
+ }
+
+ protected String noDataRender()
+ {
+ return "No data to display";
+ }
+
+ protected abstract String internalRender();
+
+ protected static final void buildLiveFirstLink(StringBuilder buf,
PagerService pagerService, String pageUri)
+ {
+ buf.append("<a href=\"");
+ buf.append(pageUri);
+ buf.append("?");
+ buf.append(pagerService.buildQueryParamForPage(PagerModel.FIRST_PAGE));
+ buf.append("\">First</a>");
+ }
+
+ protected static final void buildDeadFirstLink(StringBuilder buf)
+ {
+ buf.append("First");
+ }
+
+ protected static final void buildLivePreviousLink(StringBuilder buf,
PagerService pagerService, String pageUri)
+ {
+ buf.append("<a href=\"");
+ buf.append(pageUri);
+ buf.append("?");
+ buf.append(pagerService.getPrevPageQueryParam());
+ buf.append("\">Previous</a>");
+ }
+
+ protected static final void buildDeadPreviousLink(StringBuilder buf)
+ {
+ buf.append("Previous");
+ }
+
+ protected static final void buildLiveNextPageLink(StringBuilder buf,
PagerService pagerService, String pageUri)
+ {
+ buf.append("<a href=\"");
+ buf.append(pageUri);
+ buf.append("?");
+ buf.append(pagerService.getNextPageQueryParam());
+ buf.append("\">Next</a>");
+ }
+
+ protected static final void buildDeadNextLink(StringBuilder buf)
+ {
+ buf.append("Next");
+ }
+
+ protected static final void buildLiveLastLink(StringBuilder buf,
PagerService pagerService, String pageUri, int lastPage)
+ {
+ buf.append("<a href=\"");
+ buf.append(pageUri);
+ buf.append("?");
+ buf.append(pagerService.buildQueryParamForPage(lastPage));
+ buf.append("\">Last</a>");
+ }
+
+ protected static final void buildDeadLastLink(StringBuilder buf)
+ {
+ buf.append("Last");
+ }
+
+}
\ No newline at end of file
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/FirstPreviousNextLastPagerRenderer.java
Tue Aug 10 16:17:05 2004
@@ -0,0 +1,79 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * 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.rendering.impl;
+
+import org.apache.beehive.netui.util.logging.Logger;
+import org.apache.beehive.netui.pageflow.util.PageflowTagUtils;
+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.services.PagerService;
+
+public class FirstPreviousNextLastPagerRenderer
+ extends AbstractPagerRenderer
+{
+ private static final Logger _logger =
Logger.getInstance(FirstPreviousNextLastPagerRenderer.class);
+
+ public FirstPreviousNextLastPagerRenderer(DataGridModel gridModel,
PagerModel pagerModel)
+ {
+ super(gridModel, pagerModel);
+ }
+
+ protected String internalRender()
+ {
+ StringBuilder buf = new StringBuilder();
+ PagerModel pagerModel = getPagerModel();
+ PagerService pagerService = pagerModel.getPagerService();
+ DataGridModel gridModel = getDataGridModel();
+ int currentPage = pagerModel.getCurrentPage();
+ int lastPage = pagerModel.getLastPage();
+
+ buf.append("Page ");
+ buf.append(currentPage);
+ buf.append(" of ");
+ buf.append(pagerModel.getLastPage());
+ buf.append(" ");
+
+ String pageUri = pagerModel.getPageUri();
+ if(pageUri != null)
+ pageUri =
PageflowTagUtils.createActionURL(gridModel.getPageContext(), pageUri);
+
+ if(currentPage > PagerModel.FIRST_PAGE)
+ buildLiveFirstLink(buf, pagerService, pageUri);
+ else buildDeadFirstLink(buf);
+
+ buf.append(" / ");
+ if(pagerModel.getPreviousPage() > 0)
+ buildLivePreviousLink(buf, pagerService, pageUri);
+ else buildDeadPreviousLink(buf);
+
+ buf.append(" ");
+ if(pagerModel.getNextPage()<= lastPage)
+ {
+ buildLiveNextPageLink(buf, pagerService, pageUri);
+ }
+ else buildDeadNextLink(buf);
+
+ buf.append(" / ");
+ if(currentPage < lastPage)
+ buildLiveLastLink(buf, pagerService, pageUri, lastPage);
+ else buildDeadLastLink(buf);
+
+ return buf.toString();
+ }
+}
\ No newline at end of file
Added:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/rendering/impl/PreviousNextPagerRenderer.java
Tue Aug 10 16:17:05 2004
@@ -0,0 +1,69 @@
+/*
+ * B E A S Y S T E M S
+ * Copyright 2002-2004 BEA Systems, Inc.
+ *
+ * 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.rendering.impl;
+
+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.services.PagerService;
+import org.apache.beehive.netui.pageflow.util.PageflowTagUtils;
+import org.apache.beehive.netui.util.logging.Logger;
+
+public class PreviousNextPagerRenderer
+ extends AbstractPagerRenderer
+{
+ private static final Logger _logger =
Logger.getInstance(PreviousNextPagerRenderer.class);
+
+ public PreviousNextPagerRenderer(DataGridModel gridModel, PagerModel
pagerModel)
+ {
+ super(gridModel, pagerModel);
+ }
+
+ protected String internalRender()
+ {
+ StringBuilder buf = new StringBuilder();
+ PagerModel pagerModel = getPagerModel();
+ PagerService pagerService = pagerModel.getPagerService();
+ DataGridModel gridModel = getDataGridModel();
+ int currentPage = pagerModel.getCurrentPage();
+ int lastPage = pagerModel.getLastPage();
+
+ buf.append("Page ");
+ buf.append(currentPage);
+ buf.append(" of ");
+ buf.append(lastPage);
+ buf.append(" ");
+
+ String pageUri = pagerModel.getPageUri();
+ if(pageUri != null)
+ pageUri =
PageflowTagUtils.createActionURL(gridModel.getPageContext(), pageUri);
+
+ if(pagerModel.getPreviousPage() > 0)
+ buildLivePreviousLink(buf, pagerService, pageUri);
+ else if(lastPage > 1)
+ buildDeadPreviousLink(buf);
+
+ buf.append(" ");
+ if(pagerModel.getNextPage() <= pagerModel.getLastPage())
+ buildLiveNextPageLink(buf, pagerService, pageUri);
+ else if(lastPage > 1)
+ buildDeadNextLink(buf);
+
+ return buf.toString();
+ }
+}
\ No newline at end of file
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/PagedDataSet.java
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/PagedDataSet.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/databinding/datagrid/util/PagedDataSet.java
Tue Aug 10 16:17:05 2004
@@ -35,15 +35,14 @@
private ArrayList _list = null;
private Iterator _dataSetIterator = null;
private Object _currentItem = null;
-
private String _dataSourceRef = null;
+
+ private boolean _advancedToPage = false;
+
private int _currentIndex = 0;
private int _dataSetSize = 0;
-
private int _startWindow = -1;
private int _endWindow = -1;
-
- private boolean _advancedToPage = false;
public PagedDataSet(String dataSourceRef, Iterator iterator)
{
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/Columns.java
Tue Aug 10 16:17:05 2004
@@ -18,12 +18,12 @@
*/
package org.apache.beehive.netui.tags.databinding.datagrid;
+import javax.servlet.jsp.JspException;
+
import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.tags.AbstractClassicTag;
import org.apache.beehive.netui.util.logging.Logger;
-
-import javax.servlet.jsp.JspException;
/**
*
Modified:
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/ConfigurePager.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/ConfigurePager.java
Tue Aug 10 16:17:05 2004
@@ -20,6 +20,9 @@
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.IPagerRenderer;
+import
org.apache.beehive.netui.databinding.datagrid.rendering.impl.FirstPreviousNextLastPagerRenderer;
+import
org.apache.beehive.netui.databinding.datagrid.rendering.impl.PreviousNextPagerRenderer;
import org.apache.beehive.netui.tags.AbstractSimpleTag;
import org.apache.beehive.netui.util.logging.Logger;
@@ -86,10 +89,13 @@
if(_pagerStyle != null)
{
+ IPagerRenderer pagerRenderer = null;
if(_pagerStyle.equals(FIRST_LAST_PREV_NEXT))
- pm.setPagerStyle(PagerModel.FIRST_PREV_NEXT_LAST_STYLE);
+ pagerRenderer = new
FirstPreviousNextLastPagerRenderer(dgm, pm);
else if(_pagerStyle.equals(PREV_NEXT))
- pm.setPagerStyle(PagerModel.PREV_NEXT_STYLE);
+ pagerRenderer = new PreviousNextPagerRenderer(dgm, pm);
+
+ dgm.setPagerRenderer(pagerRenderer);
}
if(_pageUri != null)
Modified:
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/DataGrid.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/DataGrid.java
Tue Aug 10 16:17:05 2004
@@ -21,27 +21,22 @@
import java.util.List;
import java.util.Iterator;
-import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.JspException;
-import org.apache.beehive.netui.databinding.datagrid.model.ColumnModel;
import org.apache.beehive.netui.databinding.datagrid.model.DataGridModel;
import org.apache.beehive.netui.databinding.datagrid.model.StylePolicy;
import
org.apache.beehive.netui.databinding.datagrid.model.impl.DefaultStylePolicy;
import
org.apache.beehive.netui.databinding.datagrid.model.impl.EmptyStylePolicy;
-import
org.apache.beehive.netui.databinding.datagrid.model.impl.LegacyStylePolicy;
import org.apache.beehive.netui.databinding.datagrid.util.PagedDataSet;
-import org.apache.beehive.netui.tags.AbstractClassicTag;
-import org.apache.beehive.netui.tags.ExpressionHandling;
import org.apache.beehive.netui.script.common.IDataAccessProvider;
import org.apache.beehive.netui.script.common.DataAccessProviderStack;
+import org.apache.beehive.netui.tags.AbstractClassicTag;
+import org.apache.beehive.netui.tags.ExpressionHandling;
import org.apache.beehive.netui.util.logging.Logger;
import org.apache.beehive.netui.util.iterator.IteratorFactory;
/**
- * todo: need to expose a ColumnIterator so that the "current" column can be
fetched by the child tags
- *
* @netui:tag name="dataGrid" description="Renders an HTML table containing a
data set"
* @netui.tldx:tag whitespace="indent"
renderer="workshop.netui.jspdesigner.tldx.GridRenderer"
* netuiexpressioninfo=""
Modified:
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/RenderPager.java
==============================================================================
---
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/RenderPager.java
(original)
+++
incubator/beehive/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/datagrid/RenderPager.java
Tue Aug 10 16:17:05 2004
@@ -47,9 +47,10 @@
DataGridModel dgm = (DataGridModel)jspContext.getAttribute("dataGrid");
assert dgm != null : "RenderPager did not find a DataGridModel";
- String output = dgm.getPagerModel().render();
+ String output = dgm.getPagerRenderer().render();
if(output != null)
write(output);
+
return;
}
}