fr.amapj.view.views.permanence.detailperiode.mail.PopupEnvoiMailPlanningPermanence.java Source code

Java tutorial

Introduction

Here is the source code for fr.amapj.view.views.permanence.detailperiode.mail.PopupEnvoiMailPlanningPermanence.java

Source

/*
 *  Copyright 2013-2018 Emmanuel BRUN (contact@amapj.fr)
 * 
 *  This file is part of AmapJ.
 *  
 *  AmapJ is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU Affero General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
    
 *  AmapJ is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Affero General Public License for more details.
 *
 *  You should have received a copy of the GNU Affero General Public License
 *  along with AmapJ.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * 
 */
package fr.amapj.view.views.permanence.detailperiode.mail;

import com.vaadin.data.util.ObjectProperty;
import com.vaadin.server.Sizeable.Unit;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.RichTextArea;

import fr.amapj.service.services.parametres.ParametresDTO;
import fr.amapj.service.services.parametres.ParametresService;
import fr.amapj.service.services.permanence.periode.mail.PeriodePermanenceEnvoiMailService;
import fr.amapj.view.engine.popup.formpopup.WizardFormPopup;

/**
 * Popup pour l'envoi d'un mail avec le planning de permanence
 * 
 *
 */
public class PopupEnvoiMailPlanningPermanence extends WizardFormPopup {

    private Long idPeriodePermanence;

    public enum Step {
        INFO_GENERALES, SAISIE_TEXTE_MAIL;
    }

    /**
     * 
     */
    public PopupEnvoiMailPlanningPermanence(Long idPeriodePermanence) {
        setWidth(80);
        popupTitle = "Envoi d'un mail avec le planning des permanences";
        this.idPeriodePermanence = idPeriodePermanence;

        // 
        // Contruction de l'item
        item.addItemProperty("texte", new ObjectProperty<String>(getInitialText()));

    }

    @Override
    protected void configure() {
        add(Step.INFO_GENERALES, () -> addFieldInfoGenerales());
        add(Step.SAISIE_TEXTE_MAIL, () -> addFieldTexteMail());
    }

    private void addFieldInfoGenerales() {
        // Titre
        setStepTitle("l'envoi d'un mail avec le planning  des permanences");

        addLabel(
                "Avec cet outil,  vous allez pouvoir envoyer un mail avec le planning pour toutes les personnes ayant des permanences dans le futur",
                ContentMode.HTML);

    }

    private void addFieldTexteMail() {
        // Titre
        setStepTitle("le texte du mail");

        //
        RichTextArea f = addRichTextAeraField("Texte du mail", "texte");
        f.setHeight(10, Unit.CM);

    }

    @Override
    protected void performSauvegarder() {
        String texte = (String) item.getItemProperty("texte").getValue();
        new PeriodePermanenceEnvoiMailService().sendMailAvecPlanning(texte, idPeriodePermanence);
    }

    @Override
    protected Class getEnumClass() {
        return Step.class;
    }

    private String getInitialText() {
        String lineSep = "<br/>";

        ParametresDTO param = new ParametresService().getParametres();

        StringBuffer buf = new StringBuffer();
        buf.append("<h2>" + param.nomAmap + "</h2>");
        buf.append("Bonjour , ");
        buf.append(lineSep);
        buf.append(lineSep);
        buf.append("vous trouverez ci joint le planning de distribution pour l'anne  venir.");
        buf.append(lineSep);
        buf.append(lineSep);
        buf.append("En ce qui vous concerne, vos dates de permanences sont :");
        buf.append(lineSep);
        buf.append("#DATES#");
        buf.append(lineSep);
        buf.append(lineSep);
        buf.append("Nous comptons sur votre participation active !!!");
        buf.append(lineSep);
        buf.append("Si vous n'tes pas disponible  une date, merci d'changer avec un autre AMAPIEN");
        buf.append(lineSep);
        buf.append(
                "Pour cela, prenez contact avec un autre amapien, une fois que vous avez son accord, merci de corriger le planning affich  l'AMAP (en barrant au stylo)");
        buf.append(lineSep);
        buf.append(lineSep);
        buf.append(lineSep);
        buf.append(
                "Notez que vous pouvez dsormais consulter le planning des permanences sur l'application WEB de l'AMAP");
        buf.append(lineSep);
        buf.append("#LINK#");
        buf.append(lineSep);
        buf.append(lineSep);
        buf.append("Bonne journe  tous !!");
        buf.append(lineSep);
        return buf.toString();
    }

}