James Moger
2014-04-21 856f3fc2a8365c141d1418d3cfff502be233c104
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,26 +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;
         @Override
         public void populateItem(final Item<DropDownMenuItem> item) {
            DropDownMenuItem entry = item.getModelObject();
            if (entry.isDivider()) {
         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));
            }
         }
      };