From 31bcbea4c35e29d3b5147d33a41544cb125cf694 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 23 Dec 2011 16:55:43 -0500
Subject: [PATCH] Filters menu for Repositories page and Activity page (issue 27)

---
 src/com/gitblit/wicket/panels/NavigationPanel.java |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/com/gitblit/wicket/panels/NavigationPanel.java b/src/com/gitblit/wicket/panels/NavigationPanel.java
index 6ec461f..018bbb2 100644
--- a/src/com/gitblit/wicket/panels/NavigationPanel.java
+++ b/src/com/gitblit/wicket/panels/NavigationPanel.java
@@ -24,6 +24,7 @@
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
 
 import com.gitblit.wicket.PageRegistration;
+import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.pages.BasePage;
 
@@ -31,20 +32,32 @@
 
 	private static final long serialVersionUID = 1L;
 
-	public NavigationPanel(String id, final Class<? extends BasePage> pageClass, List<PageRegistration> registeredPages) {
+	public NavigationPanel(String id, final Class<? extends BasePage> pageClass,
+			List<PageRegistration> registeredPages) {
 		super(id);
-				
-		ListDataProvider<PageRegistration> refsDp = new ListDataProvider<PageRegistration>(registeredPages);
+
+		ListDataProvider<PageRegistration> refsDp = new ListDataProvider<PageRegistration>(
+				registeredPages);
 		DataView<PageRegistration> refsView = new DataView<PageRegistration>("navLink", refsDp) {
 			private static final long serialVersionUID = 1L;
 
 			public void populateItem(final Item<PageRegistration> item) {
 				PageRegistration entry = item.getModelObject();
-				Component c = new LinkPanel("link", null, getString(entry.translationKey), entry.pageClass, entry.params);
-				if (entry.pageClass.equals(pageClass)) {
-					WicketUtils.setCssClass(item, "active");
+				if (entry instanceof DropDownMenuRegistration) {
+					// drop down menu
+					DropDownMenuRegistration reg = (DropDownMenuRegistration) entry;
+					Component c = new DropDownMenu("link", getString(entry.translationKey), reg);
+					item.add(c);
+					WicketUtils.setCssClass(item, "menu");
+				} else {
+					// standard page link
+					Component c = new LinkPanel("link", null, getString(entry.translationKey),
+							entry.pageClass, entry.params);
+					if (entry.pageClass.equals(pageClass)) {
+						WicketUtils.setCssClass(item, "active");
+					}
+					item.add(c);
 				}
-				item.add(c);
 			}
 		};
 		add(refsView);

--
Gitblit v1.9.1