package com.wooki.components.menu; import java.util.ArrayList; import java.util.List; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.SetupRender; import org.apache.tapestry5.ioc.annotations.Inject; import com.wooki.links.Link; import com.wooki.services.security.WookiSecurityContext; /** * This component is in charge of displaying the menu bar on wooki's pages. * * @author ccordenier */ public class Menu { @Parameter(autoconnect = true) private List<Link> adminLinks; @Parameter(autoconnect = true) private List<Link> publicLinks; @Inject private WookiSecurityContext securityContext; @Property private List<Link> availableAdminLinks; @Property private List<Link> availablePublicLinks; /** * Check which links should be displayed in the menu bar, in function of the current security * context. */ @SetupRender void setupAvailableLinks() { if (adminLinks != null && adminLinks.size() > 0) { availableAdminLinks = new ArrayList<Link>(); for (Link lnk : adminLinks) { if (lnk.isAuthorized(securityContext)) { availableAdminLinks.add(lnk); } } } if (publicLinks != null && publicLinks.size() > 0) { availablePublicLinks = new ArrayList<Link>(); for (Link lnk : publicLinks) { if (lnk.isAuthorized(securityContext)) { availablePublicLinks.add(lnk); } } } } }