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

Java tutorial

Introduction

Here is the source code for com.automaster.client.ui.paineis.dialogs.editar.EditarEndereco.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.SelectItem;
import com.smartgwt.client.widgets.form.fields.TextAreaItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
import com.smartgwt.client.widgets.form.validator.LengthRangeValidator;
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.LinkedHashMap;
import java.util.TreeMap;

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

    private int contador;
    private final SelectItem itemEstado = new SelectItem();
    private final SelectItem itemCidade = new SelectItem("Cidade");

    public EditarEndereco(final TreeMap<String, ArrayList<TreeMap<String, String>>> clienteEdicao,
            final ListGridRecord listEnd, final ListGrid listAux, final ListGrid enderecosTabBuscaCliente) {

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

        final DynamicForm formEditEndereco = new DynamicForm();
        formEditEndereco.setAutoFocus(true);
        Label label = new Label("<h3>Editar Endereo</h3>");
        label.setAlign(Alignment.CENTER);
        label.setStyleName(scClassName);
        //criando radioGroup que o usurio escolhe o tipo de cliente a ser cadastrado
        final TextItem itemDescricao = new TextItem();
        itemDescricao.setTitle("Descrio");
        itemDescricao.setName("descricao");
        itemDescricao.setRequired(true);
        itemDescricao.setCharacterCasing(CharacterCasing.UPPER);
        itemDescricao.setWidth(300);
        itemDescricao.setValue(listEnd.getAttribute("descricao"));
        if (itemDescricao.getValue().equals("ENDEREO DE COBRANA")) {
            itemDescricao.setDisabled(true);
        } else {
            itemDescricao.setDisabled(false);
        }
        LengthRangeValidator tamanhoTextItem = new LengthRangeValidator();
        tamanhoTextItem.setMin(3);

        final TextItem itemLogradouro = new TextItem("Logradouro");
        itemLogradouro.setKeyPressFilter("[a-zA-Z?? [0-9]");
        itemLogradouro.setCharacterCasing(CharacterCasing.UPPER);
        itemLogradouro.setRequired(true);
        itemLogradouro.setWidth(300);
        itemLogradouro.setValidators(tamanhoTextItem);
        itemLogradouro.setValue(listEnd.getAttribute("logradouro"));

        final TextItem itemNumero = new TextItem("N");
        itemNumero.setKeyPressFilter("[a-zA-Z[0-9]");
        itemNumero.setCharacterCasing(CharacterCasing.UPPER);
        itemNumero.setRequired(true);
        itemNumero.setWidth(50);
        itemNumero.getAttribute(listEnd.getAttribute("numero"));
        itemNumero.setValue(listEnd.getAttribute("numero"));

        final TextItem itemBairro = new TextItem("Bairro");
        itemBairro.setKeyPressFilter("[a-zA-Z?? [0-9]");
        itemBairro.setCharacterCasing(CharacterCasing.UPPER);
        itemBairro.setRequired(true);
        itemBairro.setValidators(tamanhoTextItem);
        itemBairro.setWidth(300);
        itemBairro.setValue(listEnd.getAttribute("bairro"));

        itemEstado.setTitle("Estado");
        itemEstado.setName("estado");
        itemEstado.setWidth(300);
        itemEstado.setRequired(true);

        Info.dbService.buscarTodosEstados(new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

            @Override
            public void onFailure(Throwable caught) {
                throw new UnsupportedOperationException(
                        "Erro ao Listar os Estados, entre em contato com Administrador!");
            }

            @Override
            public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                LinkedHashMap<String, String> valueMapEst = new LinkedHashMap<String, String>();
                for (TreeMap<String, String> est : result) {
                    valueMapEst.put(est.get("codEstado"), est.get("uf"));
                }
                itemEstado.setValueMap(valueMapEst);

            }
        });

        itemEstado.setDefaultValue(true);
        itemEstado.setValue(listEnd.getAttribute("estadoCod"));

        Info.dbService.buscarCidadePorEstado(Integer.parseInt(itemEstado.getValueAsString()),
                new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                    @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(ArrayList<TreeMap<String, String>> result) {

                        LinkedHashMap<String, String> valueMapCid = new LinkedHashMap<String, String>();
                        for (TreeMap<String, String> est : result) {
                            valueMapCid.put(est.get("codCidade"), est.get("nome"));

                        }
                        itemCidade.setValueMap(valueMapCid);
                        itemCidade.setValue(listEnd.getAttribute("cidadeCod"));

                    }

                });
        itemCidade.setWidth(300);
        itemCidade.setAddUnknownValues(false);
        itemCidade.setDefaultToFirstOption(true);

        itemEstado.addChangeHandler(new ChangeHandler() {

            @Override
            public void onChange(ChangeEvent event) {
                String selectedItem = (String) event.getValue();

                Info.dbService.buscarCidadePorEstado(Integer.parseInt(selectedItem),
                        new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                            @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(ArrayList<TreeMap<String, String>> result) {

                                LinkedHashMap<String, String> valueMapCid = new LinkedHashMap<String, String>();
                                for (TreeMap<String, String> est : result) {
                                    valueMapCid.put(est.get("codCidade"), est.get("nome"));
                                }
                                itemCidade.setValueMap(valueMapCid);

                            }

                        });
            }
        });

        itemCidade.setRequired(true);

        LengthRangeValidator tamanhoCep = new LengthRangeValidator();
        tamanhoCep.setMin(9);

        final TextItem itemCep = new TextItem("CEP");
        itemCep.setMask("#####-###");
        itemCep.setMaskSaveLiterals(true);
        itemCep.setCharacterCasing(CharacterCasing.UPPER);
        itemCep.setValidators(tamanhoCep);
        itemCep.setRequired(true);
        itemCep.setValue(listEnd.getAttribute("cep"));

        final TextAreaItem itemReferencia = new TextAreaItem();
        itemReferencia.setTitle("Referncia");
        //itemReferencia.setRequired(true);
        itemReferencia.setValidators(tamanhoTextItem);
        itemReferencia.setWidth(300);
        itemReferencia.setHeight(100);
        itemReferencia.setValue(listEnd.getAttribute("referencia"));

        addCloseClickHandler(new CloseClickHandler() {

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

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

        salvar.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                // GWT.log("editor: "+listEnd.getAttribute("codigo"));
                if (formEditEndereco.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);
                    //GWT.log("editor: "+clienteEdicao.pollFirstEntry().getValue());

                    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 (listEnd.getAttribute("codigo")
                                                .equalsIgnoreCase(editado.get("codEndereco"))) {
                                            //editado.put("codEndereco", listEnd.getAttribute("codigo"));
                                            editado.put("descricaoEndereco", itemDescricao.getValueAsString());
                                            editado.put("logradouro", itemLogradouro.getValueAsString());
                                            editado.put("numeroEndereco", itemNumero.getValueAsString());
                                            editado.put("bairro", itemBairro.getValueAsString());
                                            editado.put("codCidade", itemCidade.getValueAsString());
                                            editado.put("nomeCidade", itemCidade.getDisplayValue());
                                            editado.put("codEstado", itemEstado.getValueAsString());
                                            editado.put("estadoUf", itemEstado.getDisplayValue());
                                            editado.put("cep", itemCep.getValueAsString());
                                            editado.put("referenciaEndereco", itemReferencia.getValueAsString());
                                        }
                                    }
                                    clienteEdicao.put(editor.get(0).get("codCliente"), editor);
                                    listEnd.setAttribute("descricao", itemDescricao.getValueAsString());
                                    listEnd.setAttribute("logradouro", itemLogradouro.getValueAsString());
                                    listEnd.setAttribute("numero", itemNumero.getValueAsString());
                                    listEnd.setAttribute("bairro", itemBairro.getValueAsString());
                                    listEnd.setAttribute("cep", itemCep.getValueAsString());
                                    listEnd.setAttribute("estadoCod", itemEstado.getValueAsString());
                                    listEnd.setAttribute("estado", itemEstado.getDisplayValue());
                                    listEnd.setAttribute("cidadeCod", itemCidade.getValueAsString());
                                    listEnd.setAttribute("cidade", itemCidade.getDisplayValue());
                                    listEnd.setAttribute("referencia", itemReferencia.getValueAsString());
                                    listAux.refreshRow(listAux.getRecordIndex(listEnd));

                                    int endClicado = listAux.getRecordIndex(listEnd);
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("descricao",
                                            itemDescricao.getValueAsString());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("logradouro",
                                            itemLogradouro.getValueAsString());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("numero",
                                            itemNumero.getValueAsString());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("bairro",
                                            itemBairro.getValueAsString());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("cep",
                                            itemCep.getValueAsString());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("estadoCod",
                                            itemEstado.getValueAsString());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("estado",
                                            itemEstado.getDisplayValue());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("cidadeCod",
                                            itemCidade.getValueAsString());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("cidade",
                                            itemCidade.getDisplayValue());
                                    enderecosTabBuscaCliente.getRecord(endClicado).setAttribute("referencia",
                                            itemReferencia.getValueAsString());
                                    enderecosTabBuscaCliente.refreshRow(endClicado);

                                    TreeMap<String, String> enderecoAtualizado = new TreeMap<String, String>();
                                    enderecoAtualizado.put("codEndereco", listEnd.getAttribute("codigo"));
                                    enderecoAtualizado.put("codCidade", itemCidade.getValueAsString());
                                    enderecoAtualizado.put("descricao", itemDescricao.getValueAsString());
                                    enderecoAtualizado.put("logradouro", itemLogradouro.getValueAsString());
                                    enderecoAtualizado.put("numero", itemNumero.getValueAsString());
                                    enderecoAtualizado.put("bairro", itemBairro.getValueAsString());
                                    enderecoAtualizado.put("cep", itemCep.getValueAsString());
                                    enderecoAtualizado.put("referencia", itemReferencia.getValueAsString());

                                    Info.dbService.alterarEndereco(enderecoAtualizado,
                                            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 enderecoAlterado) {
                                                    if (enderecoAlterado == true) {
                                                        SC.say("Endereo atualizado com sucesso!");
                                                    } else {
                                                        SC.warn("ERRO ao atualizar endereo!");
                                                    }
                                                }
                                            });
                                    janelaCarregando.addItem(mensagem);
                                    janelaCarregando.setAnimateTime(1200);
                                    janelaCarregando.animateHide(AnimationEffect.FADE);
                                    contador = 100;
                                    destroy();
                                }
                            } else {
                                contador = 0;
                            }

                        }
                    }.schedule(50);

                }
            }
        });

        formEditEndereco.setFields(itemDescricao, itemLogradouro, itemNumero, itemBairro, itemEstado, itemCidade,
                itemCep, itemReferencia);

        addItem(label);
        addItem(formEditEndereco);
        addItem(hButoes);

    }

}