From 74e73c7f2cd1f0ecc4e65d009e0d8ce2d9160e97 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sun, 25 Mar 2012 18:10:33 -0400
Subject: [PATCH] Corrected timestamp on activity panel from author time to committer time
---
src/com/gitblit/wicket/PageRegistration.java | 77 +++++++++++++++++++++++++++++++++++++-
1 files changed, 74 insertions(+), 3 deletions(-)
diff --git a/src/com/gitblit/wicket/PageRegistration.java b/src/com/gitblit/wicket/PageRegistration.java
index f7ddcc5..e8eeaba 100644
--- a/src/com/gitblit/wicket/PageRegistration.java
+++ b/src/com/gitblit/wicket/PageRegistration.java
@@ -49,6 +49,24 @@
}
/**
+ * Represents a page link to a non-Wicket page. Might be external.
+ *
+ * @author James Moger
+ *
+ */
+ public static class OtherPageLink extends PageRegistration {
+
+ private static final long serialVersionUID = 1L;
+
+ public final String url;
+
+ public OtherPageLink(String translationKey, String url) {
+ super(translationKey, null);
+ this.url = url;
+ }
+ }
+
+ /**
* Represents a DropDownMenu for the topbar
*
* @author James Moger
@@ -76,17 +94,17 @@
private static final long serialVersionUID = 1L;
+ final PageParameters parameters;
final String displayText;
final String parameter;
final String value;
+ final boolean isSelected;
/**
* Divider constructor.
*/
public DropDownMenuItem() {
- displayText = null;
- parameter = null;
- value = null;
+ this(null, null, null, null);
}
/**
@@ -97,9 +115,54 @@
* @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) {
+ // no parameters specified
+ parameters = new PageParameters();
+ setParameter(parameter, value);
+ isSelected = false;
+ } else {
+ parameters = new PageParameters(params);
+ if (parameters.containsKey(parameter)) {
+ isSelected = params.getString(parameter).equals(value);
+ if (isSelected) {
+ // already selected, so remove this enables toggling
+ parameters.remove(parameter);
+ } else {
+ // set the new selection value
+ setParameter(parameter, value);
+ }
+ } else {
+ // not currently selected
+ isSelected = false;
+ setParameter(parameter, value);
+ }
+ }
+ }
+
+ private void setParameter(String parameter, String value) {
+ if (!StringUtils.isEmpty(parameter)) {
+ if (StringUtils.isEmpty(value)) {
+ this.parameters.remove(parameter);
+ } else {
+ this.parameters.put(parameter, value);
+ }
+ }
}
public String formatParameter() {
@@ -109,10 +172,18 @@
return parameter + "=" + value;
}
+ public PageParameters getPageParameters() {
+ return parameters;
+ }
+
public boolean isDivider() {
return displayText == null && value == null && parameter == null;
}
+ public boolean isSelected() {
+ return isSelected;
+ }
+
@Override
public int hashCode() {
if (isDivider()) {
--
Gitblit v1.9.1