package fr.openwide.maven.artifact.notifier.web.application.administration.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 org.apache.wicket.spring.injection.annot.SpringBean; 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; import fr.openwide.maven.artifact.notifier.core.business.user.model.UserGroup; import fr.openwide.maven.artifact.notifier.core.business.user.service.IUserGroupService; import fr.openwide.maven.artifact.notifier.core.util.binding.Binding; import fr.openwide.maven.artifact.notifier.web.application.administration.component.UserGroupDescriptionPanel; import fr.openwide.maven.artifact.notifier.web.application.administration.component.UserGroupMembersPanel; import fr.openwide.maven.artifact.notifier.web.application.administration.template.AdministrationTemplate; public class AdministrationUserGroupDescriptionPage extends AdministrationTemplate { private static final long serialVersionUID = -5780326896837623229L; @SpringBean private IUserGroupService userGroupService; private IModel<UserGroup> userGroupModel; public static IPageLinkDescriptor linkDescriptor(IModel<UserGroup> userGroupModel) { return new LinkDescriptorBuilder() .page(AdministrationUserGroupDescriptionPage.class) .map(CommonParameters.ID, userGroupModel, UserGroup.class).mandatory() .build(); } public AdministrationUserGroupDescriptionPage(PageParameters parameters) { super(parameters); userGroupModel = new GenericEntityModel<Long, UserGroup>(null); linkDescriptor(userGroupModel).extractSafely(parameters, AdministrationUserGroupPortfolioPage.linkDescriptor()); addBreadCrumbElement(new BreadCrumbElement(new ResourceModel("navigation.administration.usergroup"), AdministrationUserGroupPortfolioPage.linkDescriptor())); addBreadCrumbElement(new BreadCrumbElement(BindingModel.of(userGroupModel, Binding.userGroup().name()), AdministrationUserGroupDescriptionPage.linkDescriptor(userGroupModel))); add(new Label("pageTitle", BindingModel.of(userGroupModel, Binding.userGroup().name()))); add(new UserGroupDescriptionPanel("description", userGroupModel)); add(new UserGroupMembersPanel("members", userGroupModel)); } @Override protected Class<? extends WebPage> getSecondMenuPage() { return AdministrationUserGroupPortfolioPage.class; } @Override protected void onDetach() { super.onDetach(); if (userGroupModel != null) { userGroupModel.detach(); } } }