package org.openbakery.racecontrol.web; import org.apache.wicket.AttributeModifier; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.markup.repeater.RepeatingView; import org.apache.wicket.model.AbstractReadOnlyModel; import org.openbakery.racecontrol.web.bean.MenuItem; import org.openbakery.racecontrol.web.bean.Visibility; /** * User: rene * Date: 24/11/14 */ public class MenuPanel extends Panel { public MenuPanel(Class currentPage) { super("menuPanel"); RepeatingView menu = new RepeatingView("menuItems"); for (MenuItem item : getSession().getMenuItems()) { if (!getSession().isSignedIn() && item.getVisibility() == Visibility.AUTHENTICATED) { continue; } WebMarkupContainer container = new WebMarkupContainer(menu.newChildId()); menu.add(container); BookmarkablePageLink link = new BookmarkablePageLink("link", item.getDestination()); container.add(link); link.add(new Label("caption", item.getCaption())); if (item.getDestination() == currentPage) { link.add(new AttributeModifier("class", new AbstractReadOnlyModel() { public Object getObject() { return "active"; } })); } } add(menu); } public RaceControlSession getSession() { return (RaceControlSession) super.getSession(); } }