From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 25 Feb 2013 08:40:30 -0500 Subject: [PATCH] Merge pull request #75 from thefake/master --- src/com/gitblit/wicket/panels/NavigationPanel.java | 36 +++++++++++++++++++++++++++++------- 1 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/com/gitblit/wicket/panels/NavigationPanel.java b/src/com/gitblit/wicket/panels/NavigationPanel.java index 6ec461f..558cc71 100644 --- a/src/com/gitblit/wicket/panels/NavigationPanel.java +++ b/src/com/gitblit/wicket/panels/NavigationPanel.java @@ -24,6 +24,8 @@ import org.apache.wicket.markup.repeater.data.ListDataProvider; import com.gitblit.wicket.PageRegistration; +import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration; +import com.gitblit.wicket.PageRegistration.OtherPageLink; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.pages.BasePage; @@ -31,20 +33,40 @@ 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 OtherPageLink) { + // other link + OtherPageLink link = (OtherPageLink) entry; + Component c = new LinkPanel("link", null, getString(entry.translationKey), link.url); + c.setRenderBodyOnly(true); + item.add(c); + } else if (entry instanceof DropDownMenuRegistration) { + // drop down menu + DropDownMenuRegistration reg = (DropDownMenuRegistration) entry; + Component c = new DropDownMenu("link", getString(entry.translationKey), reg); + c.setRenderBodyOnly(true); + item.add(c); + WicketUtils.setCssClass(item, "dropdown"); + } else { + // standard page link + Component c = new LinkPanel("link", null, getString(entry.translationKey), + entry.pageClass, entry.params); + c.setRenderBodyOnly(true); + if (entry.pageClass.equals(pageClass)) { + WicketUtils.setCssClass(item, "active"); + } + item.add(c); } - item.add(c); } }; add(refsView); -- Gitblit v1.9.1