package fr.openwide.maven.artifact.notifier.web.application.console.notification.page;
import java.util.List;
import org.apache.wicket.Page;
import org.apache.wicket.core.request.handler.PageProvider;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import com.google.inject.internal.Lists;
import fr.openwide.core.wicket.more.console.template.ConsoleTemplate;
import fr.openwide.maven.artifact.notifier.web.application.console.notification.template.ConsoleNotificationTemplate;
public class ConsoleNotificationIndexPage extends ConsoleNotificationTemplate {
private static final long serialVersionUID = -6767518941118385548L;
public static final String DEFAULT_USERNAME = "admin@artifact-listener.org";
public ConsoleNotificationIndexPage(PageParameters parameters) {
super(parameters);
addHeadPageTitleKey("console.notifications");
add(new ListView<PageProvider>("notifications", getNotificationPages()) {
private static final long serialVersionUID = 1L;
@SuppressWarnings("unchecked")
@Override
protected void populateItem(ListItem<PageProvider> item) {
Class<? extends Page> pageClass = (Class<? extends Page>) item.getModelObject().getPageClass();
Link<Void> link = new BookmarkablePageLink<Void>("link", pageClass);
link.add(new Label("label", new ResourceModel("console.notifications." + pageClass.getSimpleName(), pageClass.getSimpleName())));
item.add(link);
}
});
add(new WebMarkupContainer("emptyList") {
private static final long serialVersionUID = 6700720373087584498L;
@Override
public boolean isVisible() {
return getNotificationPages().isEmpty();
}
});
}
private List<PageProvider> getNotificationPages() {
return Lists.newArrayList(
new PageProvider(ConfirmRegistrationHtmlNotificationDemoPage.class),
new PageProvider(ResetPasswordHtmlNotificationDemoPage.class),
new PageProvider(ConfirmEmailHtmlNotificationDemoPage.class),
new PageProvider(DeleteEmailHtmlNotificationDemoPage.class),
new PageProvider(NewVersionsHtmlNotificationDemoPage.class),
new PageProvider(NewVersionsAdditionalEmailHtmlNotificationDemoPage.class)
);
}
@Override
protected Class<? extends ConsoleTemplate> getMenuItemPageClass() {
return ConsoleNotificationIndexPage.class;
}
}