From bc57cd86db78fccf6b981375425d74bab540ad7b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 29 Dec 2011 19:35:40 -0500
Subject: [PATCH] Integrated selectable days back filtering in filters menu

---
 src/com/gitblit/wicket/PageRegistration.java |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/src/com/gitblit/wicket/PageRegistration.java b/src/com/gitblit/wicket/PageRegistration.java
index f7ddcc5..6c13b82 100644
--- a/src/com/gitblit/wicket/PageRegistration.java
+++ b/src/com/gitblit/wicket/PageRegistration.java
@@ -76,6 +76,7 @@
 
 		private static final long serialVersionUID = 1L;
 
+		final PageParameters params;
 		final String displayText;
 		final String parameter;
 		final String value;
@@ -87,6 +88,7 @@
 			displayText = null;
 			parameter = null;
 			value = null;
+			params = null;
 		}
 
 		/**
@@ -97,9 +99,33 @@
 		 * @param value
 		 */
 		public DropDownMenuItem(String displayText, String parameter, String value) {
+			this(displayText, parameter, value, null);
+		}
+
+		/**
+		 * Standard Menu Item constructor that preserves aggregate parameters.
+		 * 
+		 * @param displayText
+		 * @param parameter
+		 * @param value
+		 */
+		public DropDownMenuItem(String displayText, String parameter, String value,
+				PageParameters params) {
 			this.displayText = displayText;
 			this.parameter = parameter;
 			this.value = value;
+			if (params == null) {
+				this.params = new PageParameters();
+			} else {
+				this.params = new PageParameters(params);
+			}
+			if (!StringUtils.isEmpty(parameter)) {
+				if (StringUtils.isEmpty(value)) {
+					this.params.remove(parameter);
+				} else {
+					this.params.put(parameter, value);	
+				}
+			}
 		}
 
 		public String formatParameter() {
@@ -109,6 +135,10 @@
 			return parameter + "=" + value;
 		}
 
+		public PageParameters getPageParameters() {
+			return params;
+		}
+
 		public boolean isDivider() {
 			return displayText == null && value == null && parameter == null;
 		}

--
Gitblit v1.9.1