package fr.openwide.core.basicapp.web.application.administration.page; import static fr.openwide.core.basicapp.web.application.property.BasicApplicationWebappPropertyIds.PORTFOLIO_ITEMS_PER_PAGE; import java.util.List; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.model.IModel; import org.apache.wicket.model.LoadableDetachableModel; import org.apache.wicket.model.ResourceModel; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.apache.wicket.spring.injection.annot.SpringBean; import org.wicketstuff.wiquery.core.events.MouseEvent; import fr.openwide.core.basicapp.core.business.user.model.UserGroup; import fr.openwide.core.basicapp.core.business.user.service.IUserGroupService; import fr.openwide.core.basicapp.web.application.administration.component.UserGroupPortfolioPanel; import fr.openwide.core.basicapp.web.application.administration.form.UserGroupPopup; import fr.openwide.core.basicapp.web.application.administration.template.AdministrationTemplate; import fr.openwide.core.spring.property.service.IPropertyService; 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.markup.html.link.BlankLink; import fr.openwide.core.wicket.more.markup.html.template.js.jquery.plugins.bootstrap.modal.behavior.AjaxModalOpenBehavior; import fr.openwide.core.wicket.more.markup.html.template.model.BreadCrumbElement; public class AdministrationUserGroupPortfolioPage extends AdministrationTemplate { private static final long serialVersionUID = 2733071974944289365L; public static final IPageLinkDescriptor linkDescriptor() { return LinkDescriptorBuilder.start() .page(AdministrationUserGroupPortfolioPage.class); } @SpringBean private IPropertyService propertyService; @SpringBean private IUserGroupService userGroupService; public AdministrationUserGroupPortfolioPage(PageParameters parameters) { super(parameters); addBreadCrumbElement(new BreadCrumbElement(new ResourceModel("navigation.administration.usergroup"), AdministrationUserGroupPortfolioPage.linkDescriptor())); IModel<List<UserGroup>> userGroupListModel = new LoadableDetachableModel<List<UserGroup>>() { private static final long serialVersionUID = 1L; @Override protected List<UserGroup> load() { return userGroupService.list(); } }; UserGroupPopup addPopup = new UserGroupPopup("addPopup"); add( new UserGroupPortfolioPanel("portfolio", userGroupListModel, propertyService.get(PORTFOLIO_ITEMS_PER_PAGE)), addPopup, new BlankLink("addButton") .add(new AjaxModalOpenBehavior(addPopup, MouseEvent.CLICK)) ); } @Override protected Class<? extends WebPage> getSecondMenuPage() { return AdministrationUserGroupPortfolioPage.class; } }