package fr.openwide.core.showcase.web.application.portfolio.page; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.IModel; import org.apache.wicket.model.ResourceModel; import org.apache.wicket.request.mapper.parameter.PageParameters; import fr.openwide.core.showcase.core.business.user.model.User; import fr.openwide.core.showcase.core.util.binding.Bindings; import fr.openwide.core.showcase.web.application.portfolio.component.UserProfilePanel; import fr.openwide.core.showcase.web.application.util.template.MainTemplate; import fr.openwide.core.wicket.more.link.descriptor.IPageLinkDescriptor; import fr.openwide.core.wicket.more.link.descriptor.builder.LinkDescriptorBuilder; import fr.openwide.core.wicket.more.link.descriptor.parameter.CommonParameters; import fr.openwide.core.wicket.more.markup.html.template.model.BreadCrumbElement; import fr.openwide.core.wicket.more.model.BindingModel; import fr.openwide.core.wicket.more.model.GenericEntityModel; public class UserDescriptionPage extends MainTemplate { private static final long serialVersionUID = -3229942018297644108L; public static final IPageLinkDescriptor linkDescriptor(IModel<User> userModel) { return LinkDescriptorBuilder.start() .map(CommonParameters.ID, userModel, User.class).mandatory() .page(UserDescriptionPage.class); } public UserDescriptionPage(PageParameters parameters) { super(parameters); setHeadPageTitleReversed(true); IModel<User> userModel = new GenericEntityModel<Long, User>(null); linkDescriptor(userModel).extractSafely(parameters, PortfolioMainPage.linkDescriptor()); setDefaultModel(userModel); addBreadCrumbElement(new BreadCrumbElement(new ResourceModel("portfolio.pageTitle"), PortfolioMainPage.linkDescriptor())); addBreadCrumbElement(new BreadCrumbElement(BindingModel.of(userModel, Bindings.user().displayName()), UserDescriptionPage.linkDescriptor(userModel))); add(new Label("pageTitle", BindingModel.of(userModel, Bindings.user().displayName()))); add(new UserProfilePanel("profilePanel", userModel)); } @Override protected Class<? extends WebPage> getFirstMenuPage() { return PortfolioMainPage.class; } @Override protected Class<? extends WebPage> getSecondMenuPage() { return null; } }