PublisherRevisionView.java 8.86 KB
package org.legrog.web.publisher;

import org.legrog.web.xyz.SharedService;
import org.legrog.web.user.UserService;
import org.legrog.entities.Country;
import org.legrog.entities.Publisher;
import org.legrog.entities.PublisherRevision;
import org.legrog.entities.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;
import java.util.Random;

@Named
@ViewScoped
public class PublisherRevisionView implements Serializable {
    Logger logger = LoggerFactory.getLogger(getClass());

    @Inject
    private PublisherService publisherService;

    @Inject
    UserService userService;
    @Inject
    private SharedService sharedService;

    private boolean editMode;

    // Données temporaires d'un PublisherRevision
    private int publisherRevisionId;
    private String publisherName;
    private String publisherStreetAddress;
    private String publisherPostalCode;
    private String publisherPostOfficeBoxNumber;
    private String publisherAddressRegion;
    private String publisherAddressLocality;
    private Country publisherAddressCountry;
    private String publisherTelephone;
    private String publisherEmail;
    private String publisherURL;
    private boolean publisherActive;
    private String publisherHistory;
    private User publisherRevisionAuthor;
    private Timestamp publisherRevisionDatetime;
    private Publisher publisher;

    // Table de codification
    private List<Country> availableCountries;

    @PostConstruct
    public void init() {
        availableCountries = sharedService.getAllCountries();
    }

    public void edit() {
        editMode = true;
    }

    public void cancel() {
        editMode = false;
    }

    public boolean isEditMode() {
        return editMode;
    }

    public void update() {
        PublisherRevision publisherRevision = new PublisherRevision();

        publisherRevision.setPublisherActive(publisherActive);
        publisherRevision.setPublisherAddressCountry(publisherAddressCountry);
        publisherRevision.setPublisherAddressLocality(publisherAddressLocality);
        publisherRevision.setPublisherAddressRegion(publisherAddressRegion);
        publisherRevision.setPublisherEmail(publisherEmail);
        publisherRevision.setPublisherHistory(publisherHistory);
        publisherRevision.setPublisherName(publisherName);
        publisherRevision.setPublisherPostalCode(publisherPostalCode);
        publisherRevision.setPublisherPostOfficeBoxNumber(publisherPostOfficeBoxNumber);
        publisherRevision.setPublisherStreetAddress(publisherStreetAddress);
        publisherRevision.setPublisherTelephone(publisherTelephone);
        publisherRevision.setPublisherURL(publisherURL);

        publisherRevision.setPublisherRevisionDatetime(new Timestamp(new Date().getTime()));

        // TODO Remplacer l'astuce par une vraie récupération de l'utilisateur
        List<User> users = userService.getAllUsers();
        Random random = new Random();
        User user = users.get(random.nextInt(users.size()));
        // End TODO
        publisherRevision.setPublisherRevisionAuthor(user);

        // FIXME un seul appel logique à faire (pour la gestion du rollback)
        publisherService.addRevisionToPublisher(publisher, publisherRevision);
        publisherService.addPublisherRevision(publisherRevision);

        editMode = false;
    }

    public void loadData() {
        logger.debug("publisherRevisionId = {}", this.publisherRevisionId);

        PublisherRevision publisherRevision = publisherService.getPublisherRevision(publisherRevisionId);

        logger.debug("Found a publisher revision : {}", publisherRevision.toString());

        publisherName = publisherRevision.getPublisherName();
        publisherStreetAddress = publisherRevision.getPublisherStreetAddress();
        publisherPostalCode = publisherRevision.getPublisherPostalCode();
        publisherPostOfficeBoxNumber = publisherRevision.getPublisherPostOfficeBoxNumber();
        publisherAddressRegion = publisherRevision.getPublisherAddressRegion();
        publisherAddressLocality = publisherRevision.getPublisherAddressLocality();
        publisherAddressCountry = publisherRevision.getPublisherAddressCountry();
        publisherTelephone = publisherRevision.getPublisherTelephone();
        publisherEmail = publisherRevision.getPublisherEmail();
        publisherURL = publisherRevision.getPublisherURL();
        publisherActive = publisherRevision.isPublisherActive();
        publisherHistory = publisherRevision.getPublisherHistory();
        publisherRevisionAuthor = publisherRevision.getPublisherRevisionAuthor();
        publisherRevisionDatetime = publisherRevision.getPublisherRevisionDatetime();
        publisher = publisherRevision.getPublisher();

        logger.debug("Found a publisher : {}", publisher.toString());

//        Map<String,String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
//
//        PublisherRevision publisherRevision = publisherRevisionService.getPublisherRevision(new Integer(params.get("publisherRevisionId")));
//        setPublisherRevisionId(publisherRevision.getPublisherRevisionId());
//        logger.info("publisherRevisionId = " + getPublisherRevisionId());
    }

    public int getPublisherRevisionId() {
        return publisherRevisionId;
    }

    public void setPublisherRevisionId(int publisherRevisionId) {
        this.publisherRevisionId = publisherRevisionId;
    }

    public String getPublisherName() {
        return publisherName;
    }

    public void setPublisherName(String publisherName) {
        this.publisherName = publisherName;
    }

    public String getPublisherStreetAddress() {
        return publisherStreetAddress;
    }

    public void setPublisherStreetAddress(String publisherStreetAddress) {
        this.publisherStreetAddress = publisherStreetAddress;
    }

    public String getPublisherPostalCode() {
        return publisherPostalCode;
    }

    public void setPublisherPostalCode(String publisherPostalCode) {
        this.publisherPostalCode = publisherPostalCode;
    }

    public String getPublisherPostOfficeBoxNumber() {
        return publisherPostOfficeBoxNumber;
    }

    public void setPublisherPostOfficeBoxNumber(String publisherPostOfficeBoxNumber) {
        this.publisherPostOfficeBoxNumber = publisherPostOfficeBoxNumber;
    }

    public String getPublisherAddressRegion() {
        return publisherAddressRegion;
    }

    public void setPublisherAddressRegion(String publisherAddressRegion) {
        this.publisherAddressRegion = publisherAddressRegion;
    }

    public String getPublisherAddressLocality() {
        return publisherAddressLocality;
    }

    public void setPublisherAddressLocality(String publisherAddressLocality) {
        this.publisherAddressLocality = publisherAddressLocality;
    }

    public Country getPublisherAddressCountry() {
        return publisherAddressCountry;
    }

    public void setPublisherAddressCountry(Country publisherAddressCountry) {
        this.publisherAddressCountry = publisherAddressCountry;
    }

    public String getPublisherTelephone() {
        return publisherTelephone;
    }

    public void setPublisherTelephone(String publisherTelephone) {
        this.publisherTelephone = publisherTelephone;
    }

    public String getPublisherEmail() {
        return publisherEmail;
    }

    public void setPublisherEmail(String publisherEmail) {
        this.publisherEmail = publisherEmail;
    }

    public String getPublisherURL() {
        return publisherURL;
    }

    public void setPublisherURL(String publisherURL) {
        this.publisherURL = publisherURL;
    }

    public boolean isPublisherActive() {
        return publisherActive;
    }

    public void setPublisherActive(boolean publisherActive) {
        this.publisherActive = publisherActive;
    }

    public String getPublisherHistory() {
        return publisherHistory;
    }

    public void setPublisherHistory(String publisherHistory) {
        this.publisherHistory = publisherHistory;
    }

    public User getPublisherRevisionAuthor() {
        return publisherRevisionAuthor;
    }

    public void setPublisherRevisionAuthor(User publisherRevisionAuthor) {
        this.publisherRevisionAuthor = publisherRevisionAuthor;
    }

    public Timestamp getPublisherRevisionDatetime() {
        return publisherRevisionDatetime;
    }

    public void setPublisherRevisionDatetime(Timestamp publisherRevisionDatetime) {
        this.publisherRevisionDatetime = publisherRevisionDatetime;
    }

    public List<Country> getAvailableCountries() {
        return availableCountries;
    }

    public void setAvailableCountries(List<Country> availableCountries) {
        this.availableCountries = availableCountries;
    }
}