Package fr.openwide.maven.artifact.notifier.web.application.navigation.page

Source Code of fr.openwide.maven.artifact.notifier.web.application.navigation.page.DashboardPage

package fr.openwide.maven.artifact.notifier.web.application.navigation.page;

import java.util.Collections;
import java.util.List;

import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
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 fr.openwide.core.jpa.security.business.authority.util.CoreAuthorityConstants;
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.business.artifact.model.FollowedArtifact;
import fr.openwide.maven.artifact.notifier.core.business.user.service.IUserService;
import fr.openwide.maven.artifact.notifier.web.application.MavenArtifactNotifierSession;
import fr.openwide.maven.artifact.notifier.web.application.common.template.MainTemplate;
import fr.openwide.maven.artifact.notifier.web.application.navigation.component.DashboardArtifactPortfolioPanel;
import fr.openwide.maven.artifact.notifier.web.application.navigation.component.DashboardNotificationListViewPanel;
import fr.openwide.maven.artifact.notifier.web.application.navigation.model.NotificationsModel;

@AuthorizeInstantiation(CoreAuthorityConstants.ROLE_AUTHENTICATED)
public class DashboardPage extends MainTemplate {

  private static final long serialVersionUID = -6767518941118385548L;

  @SpringBean
  private IUserService userService;
 
  public static IPageLinkDescriptor linkDescriptor() {
    return new LinkDescriptorBuilder()
        .page(DashboardPage.class)
        .build();
  }
 
  public DashboardPage(PageParameters parameters) {
    super(parameters);
   
    addBodyCssClass("force-vertical-scroll");
   
    addHeadPageTitleElement(new BreadCrumbElement(new ResourceModel("dashboard.pageTitle")));
    addBreadCrumbElement(new BreadCrumbElement(new ResourceModel("dashboard.pageTitle"), DashboardPage.linkDescriptor()));
   
    add(new Label("pageTitle", new ResourceModel("dashboard.pageTitle")));
   
    DashboardNotificationListViewPanel notificationsPanel = new DashboardNotificationListViewPanel("notificationPanel",
        new NotificationsModel(MavenArtifactNotifierSession.get().getUserModel()));
    add(notificationsPanel);
   
    DashboardArtifactPortfolioPanel artifactPanel = new DashboardArtifactPortfolioPanel("artifactPanel",
        new LoadableDetachableModel<List<FollowedArtifact>>() {
      private static final long serialVersionUID = -8484961470906264804L;

      @Override
      protected List<FollowedArtifact> load() {
        List<FollowedArtifact> followedArtifacts = userService.listFollowedArtifacts(MavenArtifactNotifierSession.get().getUser());
        Collections.sort(followedArtifacts);
        return followedArtifacts;
      }
    });
    add(artifactPanel);
  }

  @Override
  protected Class<? extends WebPage> getFirstMenuPage() {
    return DashboardPage.class;
  }
}
TOP

Related Classes of fr.openwide.maven.artifact.notifier.web.application.navigation.page.DashboardPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.