package fr.openwide.maven.artifact.notifier.web.application.navigation.page;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.springframework.util.StringUtils;
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.core.config.application.MavenArtifactNotifierConfigurer;
import fr.openwide.maven.artifact.notifier.web.application.common.template.MainTemplate;
import fr.openwide.maven.artifact.notifier.web.application.navigation.model.ExternalLinks;
public class AboutPage extends MainTemplate {
private static final long serialVersionUID = -6767518941118385548L;
@SpringBean
private MavenArtifactNotifierConfigurer configurer;
public static IPageLinkDescriptor linkDescriptor() {
return new LinkDescriptorBuilder()
.page(AboutPage.class)
.build();
}
public AboutPage(PageParameters parameters) {
super(parameters);
addBreadCrumbElement(new BreadCrumbElement(new ResourceModel("about.pageTitle"), linkDescriptor()));
add(new Label("pageTitle", new ResourceModel("about.pageTitle")));
final Model<ExternalLinks> externalLinksModel = Model.of(ExternalLinks.get(configurer));
add(new Label("content", new StringResourceModel("about.content", externalLinksModel)).setEscapeModelStrings(false));
WebMarkupContainer gitHubProjectContainer = new WebMarkupContainer("gitHubProjectContainer") {
private static final long serialVersionUID = 1L;
@Override
protected void onConfigure() {
super.onConfigure();
setVisible(StringUtils.hasText(externalLinksModel.getObject().getGitHubProject()));
}
};
add(gitHubProjectContainer);
gitHubProjectContainer.add(new Label("gitHubProjectInsert", new StringResourceModel("about.insert.gitHubProject", externalLinksModel)).setEscapeModelStrings(false));
add(new Label("hireInsert", new StringResourceModel("about.insert.hire", externalLinksModel)).setEscapeModelStrings(false));
}
@Override
protected Class<? extends WebPage> getFirstMenuPage() {
return AboutPage.class;
}
}