package fr.openwide.core.basicapp.web.application.administration.component;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.navigation.paging.IPageable;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.ResourceModel;
import fr.openwide.core.basicapp.core.business.user.model.User;
import fr.openwide.core.basicapp.web.application.administration.form.UserGroupDropDownSingleChoice;
import fr.openwide.core.basicapp.web.application.administration.model.AbstractUserDataProvider;
import fr.openwide.core.basicapp.web.application.common.form.UserQuickSearchComponent;
import fr.openwide.core.basicapp.web.application.common.typedescriptor.user.UserTypeDescriptor;
import fr.openwide.core.wicket.markup.html.form.PageableSearchForm;
import fr.openwide.core.wicket.more.markup.html.form.LabelPlaceholderBehavior;
public class UserSearchPanel<U extends User> extends Panel {
private static final long serialVersionUID = -6224313886789870489L;
public UserSearchPanel(String id, IPageable pageable, UserTypeDescriptor<U> typeDescriptor,
AbstractUserDataProvider<U> dataProvider) {
super(id);
// Quick search
UserQuickSearchComponent<?> userQuickSearch = new UserQuickSearchComponent<>("userQuickSearch", typeDescriptor);
userQuickSearch.setAutoUpdate(true);
userQuickSearch.getAutocompleteField().setLabel(new ResourceModel("common.quickAccess"));
userQuickSearch.getAutocompleteField().add(new LabelPlaceholderBehavior());
add(userQuickSearch);
// Search form
add(
new PageableSearchForm<Void>("form", pageable)
.add(
new TextField<String>("searchInput", dataProvider.getNameModel())
.setLabel(new ResourceModel("administration.user.search.name"))
.add(new LabelPlaceholderBehavior()),
new UserGroupDropDownSingleChoice("userGroup", dataProvider.getGroupModel())
.setLabel(new ResourceModel("administration.user.search.group"))
.add(new LabelPlaceholderBehavior()),
new CheckBox("active", dataProvider.getIncludeInactivesModel())
.setLabel(new ResourceModel("administration.user.search.includeInactives"))
)
);
}
}