From 859deba551b5e6850fb6331084493a402cecce45 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 05 May 2014 11:19:31 -0400
Subject: [PATCH] Integrate admin menu into user menu and add user menu extension
---
src/main/java/com/gitblit/wicket/panels/DropDownMenu.java | 34 ++++++++++++++++++++++++++--------
1 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/gitblit/wicket/panels/DropDownMenu.java b/src/main/java/com/gitblit/wicket/panels/DropDownMenu.java
index 60a8a3d..f561143 100644
--- a/src/main/java/com/gitblit/wicket/panels/DropDownMenu.java
+++ b/src/main/java/com/gitblit/wicket/panels/DropDownMenu.java
@@ -21,7 +21,11 @@
import org.apache.wicket.markup.repeater.data.DataView;
import org.apache.wicket.markup.repeater.data.ListDataProvider;
-import com.gitblit.wicket.PageRegistration.DropDownMenuItem;
+import com.gitblit.models.Menu.MenuDivider;
+import com.gitblit.models.Menu.ExternalLinkMenuItem;
+import com.gitblit.models.Menu.MenuItem;
+import com.gitblit.models.Menu.PageLinkMenuItem;
+import com.gitblit.models.Menu.ParameterMenuItem;
import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration;
import com.gitblit.wicket.WicketUtils;
@@ -33,25 +37,39 @@
super(id);
add(new Label("label", label).setRenderBodyOnly(true));
- ListDataProvider<DropDownMenuItem> items = new ListDataProvider<DropDownMenuItem>(
+ ListDataProvider<MenuItem> items = new ListDataProvider<MenuItem>(
menu.menuItems);
- DataView<DropDownMenuItem> view = new DataView<DropDownMenuItem>("menuItems", items) {
+ DataView<MenuItem> view = new DataView<MenuItem>("menuItems", items) {
private static final long serialVersionUID = 1L;
- public void populateItem(final Item<DropDownMenuItem> item) {
- DropDownMenuItem entry = item.getModelObject();
- if (entry.isDivider()) {
+ @Override
+ public void populateItem(final Item<MenuItem> item) {
+ MenuItem entry = item.getModelObject();
+ if (entry instanceof PageLinkMenuItem) {
+ // link to another Wicket page
+ PageLinkMenuItem pageLink = (PageLinkMenuItem) entry;
+ item.add(new LinkPanel("menuItem", null, null, pageLink.toString(), pageLink.getPageClass(),
+ pageLink.getPageParameters(), false).setRenderBodyOnly(true));
+ } else if (entry instanceof ExternalLinkMenuItem) {
+ // link to a specified href
+ ExternalLinkMenuItem extLink = (ExternalLinkMenuItem) entry;
+ item.add(new LinkPanel("menuItem", null, extLink.toString(), extLink.getHref(),
+ extLink.openInNewWindow()).setRenderBodyOnly(true));
+ } else if (entry instanceof MenuDivider) {
+ // divider
item.add(new Label("menuItem").setRenderBodyOnly(true));
WicketUtils.setCssClass(item, "divider");
} else {
+ ParameterMenuItem parameter = (ParameterMenuItem) entry;
+ // parameter link for the current page
String icon = null;
- if (entry.isSelected()) {
+ if (parameter.isSelected()) {
icon = "icon-ok";
} else {
icon = "icon-ok-white";
}
item.add(new LinkPanel("menuItem", icon, null, entry.toString(), menu.pageClass,
- entry.getPageParameters(), false).setRenderBodyOnly(true));
+ parameter.getPageParameters(), false).setRenderBodyOnly(true));
}
}
};
--
Gitblit v1.9.1