package fr.openwide.maven.artifact.notifier.web.application.artifact.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.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
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.template.model.BreadCrumbElement;
import fr.openwide.maven.artifact.notifier.web.application.artifact.component.ArtifactSearchResultsPanel;
import fr.openwide.maven.artifact.notifier.web.application.artifact.component.RecommendedArtifactPortfolioPanel;
import fr.openwide.maven.artifact.notifier.web.application.artifact.form.ArtifactSearchPanel;
import fr.openwide.maven.artifact.notifier.web.application.artifact.model.ArtifactBeanDataProvider;
import fr.openwide.maven.artifact.notifier.web.application.artifact.model.RecommendedArtifactDataProvider;
import fr.openwide.maven.artifact.notifier.web.application.common.template.MainTemplate;
import fr.openwide.maven.artifact.notifier.web.application.navigation.util.LinkUtils;
public class ArtifactSearchPage extends MainTemplate {
private static final long serialVersionUID = 2780987980751053482L;
public static IPageLinkDescriptor linkDescriptor() {
return new LinkDescriptorBuilder()
.page(ArtifactSearchPage.class)
.build();
}
public ArtifactSearchPage(PageParameters parameters) {
super(parameters);
String term = parameters.get(LinkUtils.SEARCH_TERM_PARAMETER).toString();
long pageNumber = LinkUtils.extractPageNumberParameter(parameters);
IModel<String> globalSearchModel = new Model<String>(term);
IModel<String> searchGroupModel = new Model<String>();
IModel<String> searchArtifactModel = new Model<String>();
addBreadCrumbElement(new BreadCrumbElement(new ResourceModel("artifact.follow.search.pageTitle"), ArtifactSearchPage.linkDescriptor()));
add(new Label("pageTitle", new ResourceModel("artifact.follow.search.pageTitle")));
add(new RecommendedArtifactPortfolioPanel("recommendedArtifacts",
new RecommendedArtifactDataProvider(globalSearchModel, searchGroupModel, searchArtifactModel), Integer.MAX_VALUE));
ArtifactSearchResultsPanel artifactSearchResultsPanel = new ArtifactSearchResultsPanel("artifactSearchResultsPanel",
new ArtifactBeanDataProvider(globalSearchModel, searchGroupModel, searchArtifactModel));
artifactSearchResultsPanel.getDataView().setCurrentPage(pageNumber);
add(artifactSearchResultsPanel);
add(new ArtifactSearchPanel("artifactSearchPanel", artifactSearchResultsPanel.getDataView(), globalSearchModel,
searchGroupModel, searchArtifactModel));
}
@Override
protected Class<? extends WebPage> getFirstMenuPage() {
return ArtifactSearchPage.class;
}
@Override
protected Class<? extends WebPage> getSecondMenuPage() {
return ArtifactSearchPage.class;
}
}