You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by df...@apache.org on 2004/06/07 12:44:50 UTC
cvs commit: jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table TablePager.java
dflorey 2004/06/07 03:44:50
Modified: proposals/projector/src/java/org/apache/slide/projector/processor/table
TablePager.java
Log:
Improved generic table pager
Revision Changes Path
1.4 +20 -14 jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TablePager.java
Index: TablePager.java
===================================================================
RCS file: /home/cvs/jakarta-slide/proposals/projector/src/java/org/apache/slide/projector/processor/table/TablePager.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TablePager.java 3 Jun 2004 14:53:15 -0000 1.3
+++ TablePager.java 7 Jun 2004 10:44:50 -0000 1.4
@@ -92,13 +92,13 @@
}
StringBuffer buffer = new StringBuffer();
if (pre != null) pre.evaluate(buffer, parameters);
- parameters.put(TableHandler.TARGET_POSITION, new NumberValue(new Integer(0)));
+ createHandler(0, handlerUrl, storeName, id, parameters);
if ( firstSelected != null && !hasPrevious ) {
firstSelected.evaluate(buffer, parameters);
} else if ( first != null) {
first.evaluate(buffer, parameters);
}
- parameters.put(TableHandler.TARGET_POSITION, new NumberValue(new Integer(currentPosition - itemsPerPage)));
+ createHandler(Math.max(0, currentPosition - itemsPerPage), handlerUrl, storeName, id, parameters);
if (hasPrevious) {
if ( previous != null) previous.evaluate(buffer, parameters);
} else {
@@ -107,19 +107,16 @@
int step = itemsPerPage > 0 ? itemsPerPage : 1;
boolean first = true;
lastItem = 0;
+ int itemsInRange = range * step;
+ int lowerBorder = currentPosition - itemsInRange;
+ int upperBorder = currentPosition + itemsInRange;
for (int i = 0; i < length; i += step) {
lastItem = i;
parameters.put(CURRENT_PAGE, new NumberValue(new Integer(i / itemsPerPage + 1)));
- parameters.put(TableHandler.TARGET_POSITION, new NumberValue(new Integer(i)));
- StringBuffer handlerBuffer = new StringBuffer(128);
- handlerBuffer.append(handlerUrl).append('?').append(TableHandler.TARGET_POSITION).append('=').append(i).
- append('&').append(TableHandler.STORE).append('=').append(storeName).append('&').append(TableHandler.ID).append('=').append(id);
- parameters.put(HANDLER_URL, new StringValue(handlerBuffer.toString()));
+ createHandler(i, handlerUrl, storeName, id, parameters);
int rangeState = IN;
- if (showRange && (i < currentPosition - range * step || i > currentPosition + range * step))
- rangeState = OUT;
- if (showRange && (i == currentPosition - range * step || i == currentPosition + range * step))
- rangeState = BORDER;
+ if (showRange && (i < lowerBorder || i > upperBorder)) rangeState = OUT;
+ if (showRange && (i == lowerBorder || i == upperBorder)) rangeState = BORDER;
boolean pagingTemplate = false;
Template templateToUse = null;
if (i == currentPosition && selectedPage != null) {
@@ -144,13 +141,13 @@
templateToUse.evaluate(buffer, parameters);
}
}
- parameters.put(TableHandler.TARGET_POSITION, new NumberValue(new Integer(currentPosition + itemsPerPage)));
+ createHandler(currentPosition + itemsPerPage, handlerUrl, storeName, id, parameters);
if (hasNext) {
if ( next != null) next.evaluate(buffer, parameters);
} else {
if ( nextDisabled != null) nextDisabled.evaluate(buffer, parameters);
}
- parameters.put(TableHandler.TARGET_POSITION, new NumberValue(new Integer(currentPosition + itemsPerPage)));
+ createHandler(length - itemsPerPage, handlerUrl, storeName, id, parameters);
if ( lastSelected != null && !hasNext ) {
lastSelected.evaluate(buffer, parameters);
} else if ( last != null) {
@@ -161,6 +158,14 @@
return result;
}
+ protected void createHandler(int i, String handlerUrl, String storeName, String id, Map parameters) {
+ parameters.put(TableHandler.TARGET_POSITION, new NumberValue(new Integer(i)));
+ StringBuffer handlerBuffer = new StringBuffer(128);
+ handlerBuffer.append(handlerUrl).append('?').append(TableHandler.TARGET_POSITION).append('=').append(i).
+ append('&').append(TableHandler.STORE).append('=').append(storeName).append('&').append(TableHandler.ID).append('=').append(id);
+ parameters.put(HANDLER_URL, new StringValue(handlerBuffer.toString()));
+ }
+
public void configure(StreamableValue config) throws ConfigurationException {
super.configure(config);
ParameterDescriptor []parentParameterDescriptors = super.getParameterDescriptors();
@@ -191,6 +196,7 @@
page = getOptionalFragment(PAGE_FRAGMENT);
pageSeparator = getOptionalFragment(PAGE_SEPARATOR_FRAGMENT);
selectedPage = getOptionalFragment(SELECTED_PAGE_FRAGMENT);
+ etc = getOptionalFragment(ETC_FRAGMENT);
}
public ParameterDescriptor[] getParameterDescriptors() {
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org