com.automaster.client.ui.paineis.dialogs.editar.EditarEmail.java Source code

Java tutorial

Introduction

Here is the source code for com.automaster.client.ui.paineis.dialogs.editar.EditarEmail.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.automaster.client.ui.paineis.dialogs.editar;

import com.automaster.client.Info;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.AnimationEffect;
import com.smartgwt.client.types.CharacterCasing;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.events.CloseClickEvent;
import com.smartgwt.client.widgets.events.CloseClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.form.validator.LengthRangeValidator;
import com.smartgwt.client.widgets.form.validator.RegExpValidator;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout;
import java.util.ArrayList;
import java.util.TreeMap;

/**
 *
 * @author Adriano
 */
public class EditarEmail extends Window {

    private int contador;

    public EditarEmail(final TreeMap<String, ArrayList<TreeMap<String, String>>> clienteEdicao,
            final ListGridRecord listEmail, final ListGrid listAux, final ListGrid emailsTabBuscaCliente) {

        setTitle("Editar Email");
        setWidth(500);
        setHeight(280);
        setShowMinimizeButton(false);
        setIsModal(true);
        setShowModalMask(true);
        centerInPage();
        setLayoutAlign(Alignment.CENTER);

        final DynamicForm formEditEmail = new DynamicForm();
        formEditEmail.setAutoFocus(true);

        Label label = new Label("<strong><h3>Editar Email</h3></strong>");
        label.setAlign(Alignment.CENTER);
        label.setStyleName(scClassName);

        final TextItem itemDescricao = new TextItem();
        itemDescricao.setTitle("Descrio");
        itemDescricao.setName("descricao");
        itemDescricao.setKeyPressFilter("[a-zA-Z?? [0-9]");
        itemDescricao.setCharacterCasing(CharacterCasing.UPPER);
        itemDescricao.setRequired(true);
        itemDescricao.setWidth(300);
        LengthRangeValidator tamanhoDescricao = new LengthRangeValidator();
        tamanhoDescricao.setMin(3);
        itemDescricao.setValidators(tamanhoDescricao);
        itemDescricao.setValue(listEmail.getAttribute("descricao"));

        RegExpValidator emailValidator = new RegExpValidator();
        emailValidator.setExpression("^([a-zA-Z0-9_.\\-+])+@(([a-zA-Z0-9\\-])+\\.)+[a-zA-Z0-9]{2,4}$");
        emailValidator.setErrorMessage("Campo invlido! Ex: nome@dominio.com");

        final TextItem itemEmail = new TextItem();
        itemEmail.setTitle("Email");
        itemEmail.setName("email");
        itemEmail.setRequired(true);
        itemEmail.setWidth(300);
        itemEmail.setValidators(emailValidator);
        itemEmail.setValue(listEmail.getAttribute("email"));
        formEditEmail.setFields(itemDescricao, itemEmail);

        HLayout hButoes = new HLayout();
        hButoes.setWidth(100);
        hButoes.setMembersMargin(3);
        hButoes.setLayoutAlign(Alignment.CENTER);
        IButton salvar = new IButton("Salvar");
        hButoes.setMargin(5);
        hButoes.addMember(salvar);
        addCloseClickHandler(new CloseClickHandler() {

            @Override
            public void onCloseClick(CloseClickEvent event) {
                destroy();
            }
        });

        salvar.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                if (formEditEmail.validate()) {
                    contador = 0;
                    final Window janelaCarregando = new Window();
                    janelaCarregando.setShowTitle(false);
                    janelaCarregando.setWidth(100);
                    janelaCarregando.setHeight(50);
                    janelaCarregando.setShowEdges(false);
                    janelaCarregando.setShowCloseButton(false);
                    janelaCarregando.setShowMinimizeButton(false);
                    janelaCarregando.setIsModal(true);
                    janelaCarregando.setShowModalMask(true);
                    janelaCarregando.centerInPage();
                    janelaCarregando.setLayoutAlign(Alignment.CENTER);
                    final Label mensagem = new Label("Carregando..");
                    mensagem.setHeight(16);

                    new Timer() {
                        public void run() {

                            if (contador != 100) {
                                //destroy();
                                contador += 1 + (int) (5 * Math.random());
                                schedule(1 + (int) (50 * Math.random()));
                                mensagem.setContents("Carregando: " + contador + "%");
                                //GWT.log("!=100: "+contador);
                                janelaCarregando.addItem(mensagem);
                                janelaCarregando.setAnimateTime(1200);
                                janelaCarregando.animateShow(AnimationEffect.FADE);

                                if (contador >= 100) {
                                    mensagem.setContents("Carregando: 100%");
                                    ArrayList<TreeMap<String, String>> editor = clienteEdicao
                                            .get(clienteEdicao.firstKey());
                                    for (TreeMap<String, String> editado : editor) {
                                        if (listEmail.getAttribute("codigo")
                                                .equalsIgnoreCase(editado.get("codEmail"))) {
                                            //editado.put("codEmail", listEmail.getAttribute("codigo"));
                                            editado.put("descricaoEmail", itemDescricao.getValueAsString());
                                            editado.put("email", itemEmail.getValueAsString());
                                        }
                                    }
                                    clienteEdicao.put(editor.get(0).get("codCliente"), editor);
                                    //listEmail.setAttribute("codigo", listEmail.getAttribute("codigo"));
                                    listEmail.setAttribute("descricao", itemDescricao.getValueAsString());
                                    listEmail.setAttribute("email", itemEmail.getValueAsString());
                                    listAux.refreshRow(listAux.getRecordIndex(listEmail));

                                    int emailClicado = listAux.getRecordIndex(listEmail);
                                    //GWT.log("email Clicado:"+emailClicado);
                                    emailsTabBuscaCliente.getRecord(emailClicado).setAttribute("descricao",
                                            itemDescricao.getValueAsString());
                                    emailsTabBuscaCliente.getRecord(emailClicado).setAttribute("descricao",
                                            itemDescricao.getValueAsString());
                                    emailsTabBuscaCliente.getRecord(emailClicado).setAttribute("email",
                                            itemEmail.getValueAsString());
                                    emailsTabBuscaCliente.refreshRow(emailClicado);

                                    TreeMap<String, String> emailAtualizado = new TreeMap<String, String>();
                                    emailAtualizado.put("codEmail", listEmail.getAttribute("codigo"));
                                    emailAtualizado.put("descricao", itemDescricao.getValueAsString());
                                    emailAtualizado.put("email", itemEmail.getValueAsString());
                                    Info.dbService.alterarEmail(emailAtualizado, new AsyncCallback<Boolean>() {

                                        @Override
                                        public void onFailure(Throwable caught) {
                                            throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                                        }

                                        @Override
                                        public void onSuccess(Boolean emailAlterado) {
                                            if (emailAlterado == true) {
                                                SC.say("Email atualizado com sucesso!");
                                            } else {
                                                SC.warn("Erro ao atualizar o email!");
                                            }
                                        }
                                    });
                                    //GWT.log("" + listEmail.getAttribute("codigo"));
                                    janelaCarregando.addItem(mensagem);
                                    janelaCarregando.setAnimateTime(1200);
                                    janelaCarregando.animateHide(AnimationEffect.FADE);
                                    contador = 100;
                                    destroy();
                                }
                            } else {
                                contador = 0;
                            }

                        }
                    }.schedule(50);

                }
            }
        });
        addItem(label);
        addItem(formEditEmail);
        addItem(hButoes);

    }

}