ListPublisherActionsView.java 2.09 KB
package org.legrog.web.publisher;

import org.legrog.entities.PublisherAction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;

/*
    Vue de listPublisherVersions.xhtml
    Permet de voir l'ensemble des actions des éditeurs.
    Permet de voir l'ensemble des actions d'un éditeur.
 */
@Named
@ViewScoped
public class ListPublisherActionsView implements Serializable {

    transient Logger logger = LoggerFactory.getLogger(getClass());

    protected transient PublisherService publisherService;

    private Integer publisherId;
    private boolean viewAll;
    private transient List<PublisherAction> publisherActions;

    @Inject
    public ListPublisherActionsView(PublisherService publisherService) {
        this.publisherService = publisherService;
    }

    //no args constructor to make it proxyable
    ListPublisherActionsView() {
    }

    public void setView() {
        logger.trace("setView : publisherId = {}", publisherId);
        publisherActions = publisherService.getAllPublisherActions();
        viewAll = publisherId == null;
        if (!viewAll) {
            logger.trace("setView : !viewAll");
            filterOnID();
        }
    }

    public void filterOnID() {
        publisherActions = publisherActions.stream()
                .filter(action -> action.getPublisher().getPublisherId() == publisherId)
                .collect(Collectors.toList());
    }

    public void setPublisherId(Integer publisherId) {
        this.publisherId = publisherId;
    }

    public List<PublisherAction> getPublisherActions() {
        return publisherActions;
    }

    public boolean isViewAll() {
        return viewAll;
    }

    public Integer getPublisherId() {
        return publisherId;
    }

    public void setViewAll(boolean viewAll) {
        this.viewAll = viewAll;
    }

    public void setPublisherActions(List<PublisherAction> publisherActions) {
        this.publisherActions = publisherActions;
    }
}