fr.amapj.view.views.importdonnees.ImportDonneesView.java Source code

Java tutorial

Introduction

Here is the source code for fr.amapj.view.views.importdonnees.ImportDonneesView.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.importdonnees;

import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.Component;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.Upload;
import com.vaadin.ui.VerticalLayout;

import fr.amapj.service.services.edgenerator.excel.EGListeAdherent;
import fr.amapj.service.services.edgenerator.excel.EGListeProduitProducteur;
import fr.amapj.service.services.edgenerator.excel.EGListeAdherent.Type;
import fr.amapj.view.engine.excelgenerator.LinkCreator;
import fr.amapj.view.engine.template.BackOfficeLongView;

public class ImportDonneesView extends BackOfficeLongView {

    @Override
    public String getMainStyleName() {
        return "import-donnees";
    }

    @Override
    public void enterIn(ViewChangeEvent event) {
        addLabelH1(this, "Outil d'import des donnes en masse");

        addLabel(this,
                "Cet outil vous permet d'importer en masse les utilisateurs, les produits et les producteurs");
        addEmptyLine(this);

        Panel utilisateurPanel = new Panel("Importations des utilisateurs");
        utilisateurPanel.addStyleName("action");
        utilisateurPanel.setContent(getUtilisateurPanel());

        Panel produitPanel = new Panel("Importations des produits et des producteurs");
        produitPanel.addStyleName("action");
        produitPanel.setContent(getProduitPanel());

        addComponent(utilisateurPanel);
        addEmptyLine(this);
        addComponent(produitPanel);

    }

    private Component getUtilisateurPanel() {
        VerticalLayout layout = new VerticalLayout();
        layout.setMargin(true);

        addEmptyLine(layout);
        addLabel(layout,
                "Pour importer les utilisateurs en masse, vous devez remplir un fichier Excel  un certain format.");
        addLabel(layout, "Pour avoir un exemple du fichier  remplir, merci de cliquer sur ce lien :");
        layout.addComponent(LinkCreator.createLink(new EGListeAdherent(Type.EXAMPLE)));
        addEmptyLine(layout);

        addLabel(layout, "Une fois que votre fichier Excel est prt, vous pouvez le charger dans l'application."
                + " Pour cela, cliquez sur le bouton \"Charger les utilisateurs\", slectionnez votre fichier, cliquez sur OK. Les utilisateurs seront alors automatiquement crs, sans mot de passe ");
        addEmptyLine(layout);
        //
        UtilisateurImporter utilisateurImporter = new UtilisateurImporter();
        Upload upload = new Upload(null, utilisateurImporter);
        upload.addSucceededListener(utilisateurImporter);
        upload.setImmediate(true);
        upload.setButtonCaption("Charger les utilisateurs");

        layout.addComponent(upload);

        addEmptyLine(layout);

        return layout;
    }

    private Component getProduitPanel() {
        VerticalLayout layout = new VerticalLayout();
        layout.setMargin(true);

        addEmptyLine(layout);
        addLabel(layout,
                "Pour importer les produits et les producteurs en masse, vous devez remplir un fichier Excel  un certain format.");
        addLabel(layout, "Pour avoir un exemple du fichier  remplir, merci de cliquer sur ce lien :");
        layout.addComponent(LinkCreator.createLink(new EGListeProduitProducteur(
                fr.amapj.service.services.edgenerator.excel.EGListeProduitProducteur.Type.EXAMPLE)));
        addEmptyLine(layout);

        addLabel(layout, "Une fois que votre fichier Excel est prt, vous pouvez le charger dans l'application."
                + " Pour cela, cliquez sur le bouton \"Charger les produits et les producteurs\", slectionnez votre fichier, cliquez sur OK. Les produits et les producteurs seront alors automatiquement crs.");

        //

        ProduitImporter produitImporter = new ProduitImporter();
        Upload upload = new Upload(null, produitImporter);
        upload.addSucceededListener(produitImporter);
        upload.setImmediate(true);
        upload.setButtonCaption("Charger les produits et les producteurs");

        addEmptyLine(layout);
        layout.addComponent(upload);
        addEmptyLine(layout);

        return layout;
    }

    private Label addLabelH1(VerticalLayout layout, String str) {
        Label tf = new Label(str);
        tf.addStyleName("titre");
        layout.addComponent(tf);
        return tf;

    }

    private Label addLabel(VerticalLayout layout, String str) {
        Label tf = new Label(str);
        layout.addComponent(tf);
        return tf;

    }

    private Label addEmptyLine(VerticalLayout layout) {
        Label tf = new Label("<br/>", ContentMode.HTML);
        layout.addComponent(tf);
        return tf;

    }
}