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

Java tutorial

Introduction

Here is the source code for com.automaster.client.ui.paineis.dialogs.editar.EditarVeiculo.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.ui.paineis.dialogs.cadastro.*;
import com.automaster.client.Info;
import com.automaster.client.ui.paineis.dialogs.editar.cadastronovo.EditarNovaPessoaAutorizada;
import com.automaster.client.ui.paineis.dialogs.editar.cadastronovo.EditarNovoPadraoLigacao;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.AnimationEffect;
import com.smartgwt.client.types.CharacterCasing;
import com.smartgwt.client.types.DateDisplayFormat;
import com.smartgwt.client.types.FormLayoutType;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.types.VisibilityMode;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.ImgButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.DateItem;
import com.smartgwt.client.widgets.form.fields.FormItemIcon;
import com.smartgwt.client.widgets.form.fields.SelectItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.types.MultipleAppearance;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.types.TitleOrientation;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.HTMLPane;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.CloseClickEvent;
import com.smartgwt.client.widgets.events.CloseClickHandler;
import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler;
import com.smartgwt.client.widgets.form.fields.events.FormItemIconClickEvent;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.SectionStack;
import com.smartgwt.client.widgets.layout.SectionStackSection;
import com.smartgwt.client.widgets.layout.VLayout;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.TreeMap;

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

    private int contador = 0;
    int codigoUnidade = Integer.parseInt(
            (Info.usuarioLogado.get("codUnidadeCliente") == null) ? Info.usuarioLogado.get("codUnidadeFuncionario")
                    : Info.usuarioLogado.get("codUnidadeCliente"));
    private final SelectItem itemEstado = new SelectItem();
    private final SelectItem itemCidade = new SelectItem("Cidade");
    private final SelectItem numeroParcelas = new SelectItem();
    private final HTMLPane tabelaVeiculosCopia;
    private final ListGrid listPadLig = new ListGrid() {
        @Override
        protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum) {
            String fieldName = this.getFieldName(colNum);
            final ListGrid listAux = this;
            if (fieldName.equals("editar")) {
                HLayout recordCanvas = new HLayout(3);
                recordCanvas.setHeight(22);
                recordCanvas.setWidth100();
                recordCanvas.setAlign(Alignment.CENTER);
                ImgButton editImg = new ImgButton();
                editImg.setShowDown(false);
                editImg.setShowRollOver(false);
                editImg.setLayoutAlign(Alignment.CENTER);
                editImg.setSrc("[SKIN]actions/edit.png");
                editImg.setPrompt("Editar padro de ligao");
                editImg.setHeight(16);
                editImg.setWidth(16);
                editImg.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        EditarPadraoLigacao editPadraoLigacao = new EditarPadraoLigacao(dadosVeiculoCopia, record,
                                listAux, tabelaVeiculosCopia);
                        editPadraoLigacao.setAnimateTime(1200);
                        editPadraoLigacao.animateShow(AnimationEffect.FADE);
                    }
                });

                recordCanvas.addMember(editImg);
                return recordCanvas;
            } else if (fieldName.equals("excluir") && listAux.getRecordIndex(record) > 0) {
                HLayout recordCanvas = new HLayout(3);
                recordCanvas.setHeight(22);
                recordCanvas.setWidth100();
                recordCanvas.setAlign(Alignment.CENTER);
                ImgButton excluirImg = new ImgButton();
                excluirImg.setShowDown(false);
                excluirImg.setShowRollOver(false);
                excluirImg.setLayoutAlign(Alignment.CENTER);
                excluirImg.setSrc("[SKIN]actions/remove.png");
                excluirImg.setPrompt("Excluir padro de ligao");
                excluirImg.setHeight(16);
                excluirImg.setWidth(16);
                excluirImg.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        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) {
                                    contador += 1 + (int) (5 * Math.random());
                                    schedule(1 + (int) (50 * Math.random()));
                                    mensagem.setContents("Carregando: " + contador + "%");
                                    janelaCarregando.addItem(mensagem);
                                    janelaCarregando.setAnimateTime(1200);
                                    janelaCarregando.animateShow(AnimationEffect.FADE);

                                    if (contador >= 100) {
                                        mensagem.setContents("Carregando: 100%");
                                        int linhaClicada = listAux.getRecordIndex(record);
                                        listAux.selectRecord(linhaClicada);
                                        listAux.removeSelectedData();
                                        for (TreeMap<String, String> editado : dadosVeiculoCopia) {
                                            if (editado.get("codPad") != null && record.getAttribute("codPad")
                                                    .equalsIgnoreCase(editado.get("codPad"))) {
                                                editado.put("codPad", null);
                                                editado.put("corFio", null);
                                                editado.put("sinalPad", null);
                                                editado.put("padraoLd", null);
                                                editado.put("funcaoPad", null);
                                                editado.put("ativoPad", null);
                                                editado.put("descricaoPad", null);
                                            }
                                        }
                                        Info.dbService.deletarPadraoLigacao(record.getAttributeAsInt("codPad"),
                                                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 padraoDeletado) {
                                                        if (padraoDeletado == true) {
                                                            SC.say("Padro de ligao excluido com sucesso!");
                                                        } else {
                                                            SC.warn("ERRO ao excluir padro de ligao!");
                                                        }
                                                    }
                                                });
                                        janelaCarregando.addItem(mensagem);
                                        janelaCarregando.setAnimateTime(1200);
                                        janelaCarregando.animateHide(AnimationEffect.FADE);
                                        contador = 100;
                                        janelaCarregando.destroy();
                                    }
                                } else {
                                    contador = 0;
                                }

                            }
                        }.schedule(50);
                    }
                });
                recordCanvas.addMember(excluirImg);
                return recordCanvas;

            } else {
                return null;
            }

        }
    };
    private final ListGrid listPesAut = new ListGrid() {
        @Override
        protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum) {
            String fieldName = this.getFieldName(colNum);
            final ListGrid listAux = this;
            if (fieldName.equals("editar")) {
                HLayout recordCanvas = new HLayout(3);
                recordCanvas.setHeight(22);
                recordCanvas.setWidth100();
                recordCanvas.setAlign(Alignment.CENTER);
                ImgButton editImg = new ImgButton();
                editImg.setShowDown(false);
                editImg.setShowRollOver(false);
                editImg.setLayoutAlign(Alignment.CENTER);
                editImg.setSrc("[SKIN]actions/edit.png");
                editImg.setPrompt("Editar pessoa autorizada");
                editImg.setHeight(16);
                editImg.setWidth(16);
                editImg.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        EditarPessoaAutorizada editPesAut = new EditarPessoaAutorizada(listAux, record,
                                dadosVeiculoCopia);
                        editPesAut.setAnimateTime(1200);
                        editPesAut.animateShow(AnimationEffect.FADE);
                    }
                });

                recordCanvas.addMember(editImg);
                return recordCanvas;
            } else if (fieldName.equals("excluir") && listAux.getRecordIndex(record) > 0) {
                HLayout recordCanvas = new HLayout(3);
                recordCanvas.setHeight(22);
                recordCanvas.setWidth100();
                recordCanvas.setAlign(Alignment.CENTER);
                ImgButton excluirImg = new ImgButton();
                excluirImg.setShowDown(false);
                excluirImg.setShowRollOver(false);
                excluirImg.setLayoutAlign(Alignment.CENTER);
                excluirImg.setSrc("[SKIN]actions/remove.png");
                excluirImg.setPrompt("Excluir pessoa autorizada");
                excluirImg.setHeight(16);
                excluirImg.setWidth(16);
                excluirImg.addClickHandler(new ClickHandler() {
                    public void onClick(ClickEvent event) {
                        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) {
                                    contador += 1 + (int) (5 * Math.random());
                                    schedule(1 + (int) (50 * Math.random()));
                                    mensagem.setContents("Carregando: " + contador + "%");
                                    janelaCarregando.addItem(mensagem);
                                    janelaCarregando.setAnimateTime(1200);
                                    janelaCarregando.animateShow(AnimationEffect.FADE);

                                    if (contador >= 100) {
                                        mensagem.setContents("Carregando: 100%");
                                        int linhaClicada = listAux.getRecordIndex(record);
                                        listAux.selectRecord(linhaClicada);
                                        listAux.removeSelectedData();
                                        for (TreeMap<String, String> editado : dadosVeiculoCopia) {
                                            if (editado.get("codPes") != null && record.getAttribute("codigo")
                                                    .equalsIgnoreCase(editado.get("codPes"))) {
                                                editado.put("codPes", null);
                                                editado.put("nomePes", null);
                                                editado.put("telefonePes", null);
                                                editado.put("descricaoPes", null);
                                                editado.put("funcaoPad", null);
                                            }
                                        }
                                        Info.dbService.deletarPessoaAutorizada(record.getAttributeAsInt("codigo"),
                                                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 padraoDeletado) {
                                                        if (padraoDeletado == true) {
                                                            SC.say("Pessoa autorizada excluida com sucesso!");
                                                        } else {
                                                            SC.warn("ERRO ao excluir pessoa autorizada!");
                                                        }
                                                    }
                                                });
                                        janelaCarregando.addItem(mensagem);
                                        janelaCarregando.setAnimateTime(1200);
                                        janelaCarregando.animateHide(AnimationEffect.FADE);
                                        contador = 100;
                                        janelaCarregando.destroy();
                                    }
                                } else {
                                    contador = 0;
                                }

                            }
                        }.schedule(50);
                    }
                });
                recordCanvas.addMember(excluirImg);
                return recordCanvas;

            } else {
                return null;
            }

        }
    };
    private ArrayList<TreeMap<String, String>> dadosVeiculoCopia;
    private TreeMap<String, ArrayList<TreeMap<String, String>>> veiculosCopia;
    private String tabelaVazia = "<table  width=\"860\" height=\"310\" border=\"1\" bordercolor=\"#CCCCCC\">\n"
            + "  <tr align=\"center\" bgcolor=\"#CCCCCC\">\n" + "    <td>No existem itens para Mostrar.</td>\n"
            + "  </tr>\n" + "</table>";

    public EditarVeiculo(final int codigoCliente, String nomeCliente,
            final ArrayList<TreeMap<String, String>> dadosVeiculo, final ListGrid veicPlacas,
            final HTMLPane tabelaVeiculos, final TreeMap<String, ArrayList<TreeMap<String, String>>> veiculos,
            final String placaVeiculoCopia) {
        dadosVeiculoCopia = dadosVeiculo;
        tabelaVeiculosCopia = tabelaVeiculos;
        veiculosCopia = veiculos;
        //GWT.log("CodEquipamento: "+dadosVeiculo.get(0).get("codPlano"));
        final Window windAux = this;
        setTitle("Editar Veculo");
        setWidth(1015);
        setHeight100();
        setShowMinimizeButton(false);
        setShowCloseButton(false);
        setIsModal(true);
        setShowModalMask(true);
        centerInPage();
        setLayoutAlign(Alignment.CENTER);
        addCloseClickHandler(new CloseClickHandler() {

            @Override
            public void onCloseClick(CloseClickEvent event) {
                destroy();
            }
        });
        //criando o Vlayout que ir armazenar o painelNovoCliente
        HLayout painelpagina = new HLayout();
        painelpagina.setWidth100();
        painelpagina.setHeight100();
        painelpagina.setAlign(Alignment.CENTER);
        //Criando o painel que ir armazenar to tab, sections e butoes
        VLayout painelNovoVeiculo = new VLayout();
        painelNovoVeiculo.setMembersMargin(15);
        painelNovoVeiculo.setWidth(1000);
        painelNovoVeiculo.setDefaultLayoutAlign(Alignment.CENTER);
        //criando o painel que ir armazenar os botoes cadastrar e limpar
        HLayout painelBotoesNovoVeiculo = new HLayout();
        painelBotoesNovoVeiculo.setMembersMargin(15);
        painelBotoesNovoVeiculo.setAlign(Alignment.CENTER);
        //criando o formulrio que armazena os itens de cadastro Veiculo
        final DynamicForm formEditVeiculo = new DynamicForm();
        formEditVeiculo.setMargin(30);
        formEditVeiculo.setLayoutAlign(Alignment.CENTER);
        formEditVeiculo.setAutoFocus(true);

        final SelectItem tipoPlano = new SelectItem();
        tipoPlano.setTitle("Plano");
        tipoPlano.setName("plano");
        Info.dbService.buscarTodosPlanos(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> pl = new LinkedHashMap<>();
                if (result != null) {
                    for (TreeMap<String, String> planos : result) {
                        pl.put(planos.get("codPlano"), planos.get("descricao"));
                    }
                    tipoPlano.setValueMap(pl);
                } else {
                    pl.put("0", "No H plano cadastrado");
                }

            }
        });
        tipoPlano.setValue(dadosVeiculo.get(0).get("codPlano"));
        tipoPlano.setDefaultToFirstOption(true);
        tipoPlano.setHint("<nbr>*</nbr>");
        tipoPlano.setRequired(true);
        tipoPlano.setWidth(450);

        final SelectItem cliente = new SelectItem();
        cliente.setTitle("Cliente");
        cliente.setName("cliente");
        LinkedHashMap<String, String> cl = new LinkedHashMap<>();
        cl.put(String.valueOf(codigoCliente), nomeCliente);
        cliente.setDefaultToFirstOption(true);
        cliente.setValueMap(cl);
        cliente.setHint("<nbr>*</nbr>");
        cliente.setRequired(true);
        cliente.setWidth(450);
        FormItemIcon editCliente = new FormItemIcon();
        editCliente.setSrc("[SKIN]actions/edit.png");
        editCliente.setName("editarEquip");
        editCliente.setPrompt("Editar cliente");
        cliente.setIcons(editCliente);
        editCliente.addFormItemClickHandler(new FormItemClickHandler() {

            @Override
            public void onFormItemClick(FormItemIconClickEvent event) {
                EditarClienteProprietario editarClienteProprietario = new EditarClienteProprietario(cliente);
                editarClienteProprietario.setAnimateTime(1200);
                editarClienteProprietario.animateShow(AnimationEffect.FADE);
            }
        });

        final SelectItem equipamento = new SelectItem();
        equipamento.setTitle("Equipamento");
        equipamento.setName("equipamento");
        LinkedHashMap<String, String> equip = new LinkedHashMap<>();
        if (dadosVeiculo.get(0).get("codEquipamento") == null) {
            equip.put("0", "Sem equipamento");
        } else {
            equip.put(dadosVeiculo.get(0).get("codEquipamento"), dadosVeiculo.get(0).get("idEquipamento"));
            equip.put("0", "Sem equipamento");
        }
        equipamento.setValueMap(equip);
        equipamento.setValue((dadosVeiculo.get(0).get("codEquipamento") == null) ? "0"
                : dadosVeiculo.get(0).get("codEquipamento"));
        equipamento.setHint("<nbr>*</nbr>");
        equipamento.setRequired(true);
        equipamento.setWidth(450);
        FormItemIcon editEquip = new FormItemIcon();
        editEquip.setSrc("[SKIN]actions/edit.png");
        editEquip.setName("editarEquip");
        editEquip.setPrompt("Editar equipamento");
        equipamento.setIcons(editEquip);
        editEquip.addFormItemClickHandler(new FormItemClickHandler() {

            @Override
            public void onFormItemClick(FormItemIconClickEvent event) {
                EditarEquipamentoVeiculo editarEquipamentoVeiculo = new EditarEquipamentoVeiculo(equipamento);
                editarEquipamentoVeiculo.setAnimateTime(1200);
                editarEquipamentoVeiculo.animateShow(AnimationEffect.FADE);
            }
        });

        final SelectItem instalador = new SelectItem();
        instalador.setTitle("Instalador");
        instalador.setName("instalador");
        LinkedHashMap<String, String> codInstalador = new LinkedHashMap<>();
        if (dadosVeiculo.get(0).get("codInstalador") == null) {
            codInstalador.put("0", "Sem instalador");
        } else {
            codInstalador.put(dadosVeiculo.get(0).get("codInstalador"), dadosVeiculo.get(0).get("nomeInstalador"));
        }
        instalador.setValueMap(codInstalador);

        FormItemIcon editInstalador = new FormItemIcon();
        editInstalador.setSrc("[SKIN]actions/edit.png");
        editInstalador.setName("editarEquip");
        editInstalador.setPrompt("Editar equipamento");
        instalador.setIcons(editInstalador);
        instalador.setValue((dadosVeiculo.get(0).get("codInstalador") == null) ? "0"
                : dadosVeiculo.get(0).get("codInstalador"));

        editInstalador.addFormItemClickHandler(new FormItemClickHandler() {

            @Override
            public void onFormItemClick(FormItemIconClickEvent event) {
                EditarInstaladorVeiculo editarInstaladorVeiculo = new EditarInstaladorVeiculo(instalador);
                editarInstaladorVeiculo.setAnimateTime(1200);
                editarInstaladorVeiculo.animateShow(AnimationEffect.FADE);
            }
        });

        instalador.setHint("<nbr>*</nbr>");
        instalador.setRequired(true);
        instalador.setWidth(450);

        final SelectItem indicado = new SelectItem();
        indicado.setName("indicado");
        indicado.setTitle("Indicado por");
        LinkedHashMap<String, String> valueMapVeic = new LinkedHashMap<String, String>();
        if (dadosVeiculo.get(0).get("codVeiculoInd") == null) {
            valueMapVeic.put("0", "Sem indicao");
        } else {
            valueMapVeic.put(dadosVeiculo.get(0).get("codVeiculoInd"), dadosVeiculo.get(0).get("placaIndicador"));
        }
        indicado.setValueMap(valueMapVeic);
        indicado.setDefaultToFirstOption(true);
        //ndicado.setRequired(true);
        indicado.setTooltip("Adicionar Veculo Indicador");
        FormItemIcon icon = new FormItemIcon();
        icon.setSrc("[SKIN]actions/edit.png");
        icon.setName("editarIndicacao");
        icon.setPrompt("Editar Indicao");
        indicado.setIcons(icon);
        indicado.setHint("<nbr>*</nbr>");
        indicado.setWidth(450);
        icon.addFormItemClickHandler(new FormItemClickHandler() {

            @Override
            public void onFormItemClick(FormItemIconClickEvent event) {
                NovaIndicacao dialogInd = new NovaIndicacao(indicado);
                dialogInd.setAnimateTime(1200);
                dialogInd.animateShow(AnimationEffect.FADE);
            }
        });

        final TextItem placa = new TextItem();
        placa.setName("placa");
        placa.setTitle("Placa");
        placa.setMask(">LLL-####");
        placa.setMaskSaveLiterals(true);
        placa.setDisabled(true);
        placa.setHint("<nbr>*</nbr>");
        placa.setWidth(450);
        placa.setValue(dadosVeiculo.get(0).get("placaVeiculo"));
        itemEstado.setTitle("Estado");
        itemEstado.setName("estado");
        itemEstado.setWidth(450);
        itemEstado.setHint("<nbr>*</nbr>");
        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"));
                    //com.google.gwt.core.shared.GWT.log(est.get("codEstado") + " " + est.get("uf"));
                }
                //com.google.gwt.core.shared.GWT.log("antes do required PF");
                itemEstado.setValueMap(valueMapEst);

            }
        });

        //itemEstado.setDefaultToFirstOption(true);
        itemEstado.setValue(dadosVeiculo.get(0).get("codEstado"));

        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(dadosVeiculo.get(0).get("codCidade"));
                    }

                });
        itemCidade.setWidth(450);
        itemCidade.setHint("<nbr>*</nbr>");
        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);

        final TextItem chassi = new TextItem();
        chassi.setName("chassi");
        chassi.setTitle("Chassi");
        chassi.setRequired(true);
        chassi.setLength(17);
        chassi.setHint("<nbr>*</nbr>");
        chassi.setKeyPressFilter("[a-zA-Z0-9]");
        chassi.setCharacterCasing(CharacterCasing.UPPER);
        chassi.setWidth(450);
        chassi.setValue(dadosVeiculo.get(0).get("chassi"));

        final TextItem fabricante = new TextItem();
        fabricante.setName("fabricante");
        fabricante.setTitle("Fabricante");
        fabricante.setRequired(true);
        fabricante.setHint("<nbr>*</nbr>");
        fabricante.setKeyPressFilter("[a-zA-Z? 0-9]");
        fabricante.setCharacterCasing(CharacterCasing.UPPER);
        fabricante.setWidth(450);
        fabricante.setValue(dadosVeiculo.get(0).get("fabricante"));

        final TextItem modelo = new TextItem();
        modelo.setName("modelo");
        modelo.setTitle("Modelo");
        modelo.setRequired(true);
        modelo.setHint("<nbr>*</nbr>");
        modelo.setKeyPressFilter("[a-zA-Z? 0-9]");
        modelo.setCharacterCasing(CharacterCasing.UPPER);
        modelo.setWidth(450);
        modelo.setValue(dadosVeiculo.get(0).get("modelo"));

        final TextItem cor = new TextItem();
        cor.setName("cor");
        cor.setTitle("Cor");
        cor.setRequired(true);
        cor.setHint("<nbr>*</nbr>");
        cor.setKeyPressFilter("[a-zA-Z? ]");
        cor.setCharacterCasing(CharacterCasing.UPPER);
        cor.setWidth(450);
        cor.setValue(dadosVeiculo.get(0).get("cor"));

        final TextItem ano = new TextItem();
        ano.setName("ano");
        ano.setTitle("Ano");
        ano.setMask("####/####");
        ano.setMaskSaveLiterals(true);
        ano.setRequired(true);
        ano.setHint("<nbr>*</nbr>");
        ano.setKeyPressFilter("[0-9 /]");
        ano.setCharacterCasing(CharacterCasing.UPPER);
        ano.setWidth(450);
        ano.setValue(dadosVeiculo.get(0).get("ano"));

        final DateItem dataAdesao = new DateItem();
        dataAdesao.setTitle("Data de Adeso.");
        dataAdesao.setName("dataNasc");
        dataAdesao.setUseTextField(true);
        dataAdesao.setHint("<nbr>*</nbr>");
        dataAdesao.setUseMask(true);
        dataAdesao.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
        dataAdesao.setRequired(true);
        dataAdesao.setWidth(450);
        dataAdesao.setValue(new Date(Long.parseLong(dadosVeiculo.get(0).get("dataAdesao"))));

        final SelectItem ativo = new SelectItem();
        ativo.setTitle("Ativo");
        ativo.setName("itemAtivo");
        LinkedHashMap<String, String> atv = new LinkedHashMap<>();
        atv.put("True", "Ativo");
        atv.put("False", "Desativado");
        ativo.setValueMap(atv);
        ativo.setDefaultToFirstOption(true);
        ativo.setHint("<nbr>*</nbr>");
        ativo.setRequired(true);
        ativo.setWidth(450);
        ativo.setValue(((dadosVeiculo.get(0).get("ativoVeic").equalsIgnoreCase("t")) ? "True" : "False"));

        final TextItem desconto = new TextItem();
        desconto.setName("desconto");
        desconto.setTitle("Desconto");
        desconto.setMask("##.##");
        desconto.setMaskPromptChar("0");
        desconto.setRequired(true);
        desconto.setHint("<nbr>*</nbr>");
        desconto.setValue(Info.formataFloat(dadosVeiculo.get(0).get("desconto")));
        desconto.setMaskPadChar("0");
        desconto.setMaskSaveLiterals(true);
        desconto.setCharacterCasing(CharacterCasing.UPPER);
        desconto.setWidth(450);

        final SelectItem tipoCobranca = new SelectItem();
        tipoCobranca.setTitle("Tipo de Cobrana");
        tipoCobranca.setName("tipoCobranca");
        Info.dbService.buscarTodosTipoCobranca(new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

            @Override
            public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                LinkedHashMap<String, String> tpCob = new LinkedHashMap<>();
                if (result != null) {
                    for (TreeMap<String, String> tipoCob : result) {
                        tpCob.put(tipoCob.get("codTipoCobranca"), tipoCob.get("descricao"));
                    }
                    tipoCobranca.setValueMap(tpCob);
                    tipoCobranca.setValue(dadosVeiculoCopia.get(0).get("codTc"));
                } else {
                    tpCob.put("0", "Erro ao Listar Tipo de Cobrana");

                }
            }
        });
        tipoCobranca.setValue("1");
        tipoCobranca.setHint("<nbr>*</nbr>");
        tipoCobranca.setRequired(true);
        tipoCobranca.setWidth(450);

        numeroParcelas.setTitle("N de Parcelas");
        numeroParcelas.setMultiple(true);
        numeroParcelas.setHint("<nbr>*</nbr>");
        numeroParcelas.setRequired(true);
        numeroParcelas.setWidth(450);
        numeroParcelas.setMultipleAppearance(MultipleAppearance.GRID);
        Info.dbService.buscarPorCodTipoPagamento(Integer.parseInt(dadosVeiculoCopia.get(0).get("codTc")),
                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) {
                        if (result != null) {
                            LinkedHashMap<String, String> quantParcelas = new LinkedHashMap<>();
                            for (TreeMap<String, String> parcelas : result) {
                                quantParcelas.put(parcelas.get("codParcela"), parcelas.get("numero") + "X de R$"
                                        + Info.formataValor(Float.parseFloat(parcelas.get("valor"))));
                            }
                            numeroParcelas.clearValue();
                            numeroParcelas.redraw();
                            numeroParcelas.setValueMap(quantParcelas);
                            numeroParcelas.setValue(dadosVeiculoCopia.get(0).get("codParcela"));
                        }
                    }
                });
        //numeroDeParcelas(tipoCobranca.getValueAsString());
        tipoCobranca.addChangeHandler(new ChangeHandler() {

            @Override
            public void onChange(ChangeEvent event) {

                String selectedItem = (String) event.getValue();
                numeroDeParcelas(selectedItem);
            }
        });

        //Componentes da Tab
        final SectionStack novoVeiculo = new SectionStack();
        //Botes
        IButton salvar = new IButton("Salvar");
        salvar.setLayoutAlign(Alignment.CENTER);

        final Label valorMensalidade = new Label();
        valorMensalidade.setAlign(Alignment.CENTER);
        valorMensalidade.setHeight(30);

        final SectionStackSection formSection = new SectionStackSection();
        formSection.setTitle("Dados do Veculo");
        formSection.setItems(formEditVeiculo, valorMensalidade);
        formSection.setExpanded(true);
        if (tipoPlano.getValueAsString().equalsIgnoreCase("1")) {
            float master = 59.90f - (Float.parseFloat(desconto.getValueAsString()));
            valorMensalidade.setContents(
                    "<strong><h3>Valor da Mensalidade: R$" + Info.formataValor(master) + "</h3></strong>");
        } else {
            float comodato = 74.90f - (Float.parseFloat(desconto.getValueAsString()));
            valorMensalidade.setContents(
                    "<strong><h3>Valor da Mensalidade: R$" + Info.formataValor(comodato) + "</h3></strong>");
        }
        //Evento que Troca o Valor do Plano de acordo com a Escolha do Usurio
        tipoPlano.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {

                final String plano = (String) event.getValue();

                if (plano.equals("1")) {
                    valorMensalidade.redraw();
                    float master = 59.90f - (Float.parseFloat(desconto.getValueAsString()));
                    valorMensalidade.setContents(
                            "<strong><h3>Valor da Mensalidade: R$" + Info.formataValor(master) + "</h3></strong>");
                } else {
                    valorMensalidade.redraw();
                    float comodato = 74.90f - (Float.parseFloat(desconto.getValueAsString()));
                    valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$"
                            + Info.formataValor(comodato) + "</h3></strong>");
                }
            }
        });
        //Pega o Valor de desconto digitado pelo Usurio
        desconto.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                String desc = desconto.getValueAsString();

                //String desc = (String) event.getValue();
                if (desc == null) {
                    if (tipoPlano.getValueAsString().equals("1")) {
                        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$59,90</h3></strong>");
                        //desconto.clearValue();
                        desconto.setValue("00.00");
                    } else {
                        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$74,90</h3></strong>");
                        //desconto.clearValue();
                        desconto.setValue("00.00");
                    }

                } else if (desc.equalsIgnoreCase("")) {
                    if (tipoPlano.getValueAsString().equals("1")) {
                        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$59,90</h3></strong>");
                        desconto.setValue("00.00");
                    } else {
                        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$74,90</h3></strong>");
                        desconto.setValue("00.00");
                    }

                } else {
                    if (tipoPlano.getValueAsString().equals("1")) {
                        float master = 59.90f - (Float.parseFloat(desc));
                        valorMensalidade.redraw();
                        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$"
                                + Info.formataValor(master) + "</h3></strong>");
                        //GWT.log(String.valueOf(master));
                    } else {
                        float comodato = 74.90f - (Float.parseFloat(desc));
                        valorMensalidade.redraw();
                        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$"
                                + Info.formataValor(comodato) + "</h3></strong>");
                        //GWT.log(String.valueOf(comodato));

                    }
                }
            }

        });
        // Inicio dos Botes de Adicionar e Remover
        final ImgButton addpadLig = new ImgButton();
        addpadLig.setSrc("[SKIN]actions/add.png");
        addpadLig.setSize(16);
        addpadLig.setShowFocused(false);
        addpadLig.setShowRollOver(false);
        addpadLig.setShowDown(false);
        addpadLig.setTooltip("Adicionar Padro de Ligao");

        final ImgButton addPesAut = new ImgButton();
        addPesAut.setSrc("[SKIN]actions/add.png");
        addPesAut.setSize(16);
        addPesAut.setShowFocused(false);
        addPesAut.setShowRollOver(false);
        addPesAut.setShowDown(false);
        addPesAut.setTooltip("Adicionar Pessoa Autorizada");
        // FIm dos Botes de Adicionar
        //cria colunas para grid Emails
        //List Grid Padro de Ligao
        ListGridField codigoPad = new ListGridField("codPad", "Cdigo");
        codigoPad.setHidden(true);
        ListGridField corFio = new ListGridField("corFio", "Cor do Fio");
        corFio.setAlign(Alignment.CENTER);
        //Coluna sinal
        ListGridField sinal = new ListGridField("sinalPad", "Sinal");
        sinal.setAlign(Alignment.CENTER);
        ;
        //coluna Padro Veiculo
        ListGridField padrao = new ListGridField("padraoLd", "Padro fio");
        padrao.setAlign(Alignment.CENTER);
        //coluna funo
        ListGridField funcao = new ListGridField("funcaoPad", "Funo");
        funcao.setAlign(Alignment.CENTER);
        //coluna ativo
        ListGridField fieldAtivo = new ListGridField("ativoPad", "Ativo");
        fieldAtivo.setAlign(Alignment.CENTER);
        //coluna descricao
        ListGridField descricaoPl = new ListGridField("descricaoPad", "Descrio");
        descricaoPl.setAlign(Alignment.CENTER);
        ListGridField editarPl = new ListGridField("editar", "Editar");
        editarPl.setAlign(Alignment.CENTER);
        editarPl.setWidth(35);
        final ListGridField excluirPl = new ListGridField("excluir", "Excluir");
        excluirPl.setAlign(Alignment.CENTER);
        excluirPl.setWidth(40);
        //cria grid Padro de Ligao
        listPadLig.setCanPickFields(false);
        listPadLig.setFields(codigoPad, corFio, sinal, padrao, funcao, fieldAtivo, descricaoPl, editarPl,
                excluirPl);
        listPadLig.setShowRecordComponents(true);
        listPadLig.setShowRecordComponentsByCell(true);
        listPadLig.setShowAllRecords(true);
        listPadLig.setCanResizeFields(true);

        TreeMap<String, String> codPadraoLigacao = new TreeMap<String, String>();
        for (TreeMap<String, String> padLig : dadosVeiculo) {
            if (padLig.get("codPad") != null && codPadraoLigacao.get(padLig.get("codPad")) == null) {
                Record padLigacao = new Record();
                padLigacao.setAttribute("codPad", padLig.get("codPad"));
                padLigacao.setAttribute("corFio",
                        ((padLig.get("corFio") == null) ? "Sem informao" : padLig.get("corFio")));
                padLigacao.setAttribute("sinalPad",
                        ((padLig.get("sinalPad").equalsIgnoreCase("null")) ? "Sem informao"
                                : (padLig.get("sinalPad").equalsIgnoreCase("t")) ? "Positivo" : "Negativo"));
                padLigacao.setAttribute("padraoLd",
                        ((padLig.get("padraoLd").equalsIgnoreCase("null")) ? "Sem informao"
                                : ((padLig.get("padraoLd").equalsIgnoreCase("t")) ? "Ligado" : "Desligado")));
                padLigacao.setAttribute("funcaoPad",
                        ((padLig.get("funcaoPad").equalsIgnoreCase("null")) ? "Sem informao"
                                : ((padLig.get("funcaoPad").equalsIgnoreCase("t")) ? "Entrada" : "Sada")));
                padLigacao.setAttribute("ativoPad",
                        ((padLig.get("ativoPad").equalsIgnoreCase("null")) ? "Sem informao"
                                : ((padLig.get("ativoPad").equalsIgnoreCase("t")) ? "Sim" : "No")));
                padLigacao.setAttribute("descricaoPad",
                        ((padLig.get("descricaoPad") == null || padLig.get("descricaoPad").equalsIgnoreCase(""))
                                ? "Sem informao"
                                : padLig.get("descricaoPad")));
                listPadLig.addData(padLigacao);
                codPadraoLigacao.put(padLig.get("codPad"), padLig.get("codPad"));
            }
        }

        addpadLig.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                EditarNovoPadraoLigacao novPadLig = new EditarNovoPadraoLigacao(listPadLig, dadosVeiculoCopia);
                novPadLig.setAnimateTime(1200);
                novPadLig.animateShow(AnimationEffect.FADE);
            }
        });
        //cria a sections email que ir guardar a grid de emails
        final SectionStackSection padLigSection = new SectionStackSection();
        padLigSection.setTitle("Padro de Ligao");
        padLigSection.setItems(listPadLig);
        padLigSection.setControls(addpadLig);
        padLigSection.setExpanded(true);
        //criando coluna para grid telefone
        ListGridField codigoPesAut = new ListGridField("codigo", "Cdigo");
        codigoPesAut.setHidden(true);
        ListGridField nomePesAut = new ListGridField("nomePes", "Nome");
        nomePesAut.setRequired(true);
        nomePesAut.setAlign(Alignment.CENTER);
        //pega o valor do nmero do telefone
        ListGridField telefonePesAut = new ListGridField("telefonePes", "Telefone");
        telefonePesAut.setAlign(Alignment.CENTER);
        //pega o valor da descrio
        ListGridField descPesAut = new ListGridField("descricaoPes", "Descrio");
        descPesAut.setAlign(Alignment.CENTER);
        ListGridField editarPesAut = new ListGridField("editar", "Editar");
        editarPesAut.setAlign(Alignment.CENTER);
        editarPesAut.setWidth(35);
        final ListGridField excluirPesAut = new ListGridField("excluir", "Excluir");
        excluirPesAut.setAlign(Alignment.CENTER);
        excluirPesAut.setWidth(40);
        //adicionando na lista grid de Pessoa Autorizada
        listPadLig.setCanPickFields(false);
        listPesAut.setFields(codigoPesAut, nomePesAut, telefonePesAut, descPesAut, editarPesAut, excluirPesAut);
        listPesAut.setShowRecordComponents(true);
        listPesAut.setShowRecordComponentsByCell(true);
        listPesAut.setShowAllRecords(true);
        listPesAut.setCanResizeFields(true);
        TreeMap<String, String> codPessoaAutorizada = new TreeMap<String, String>();
        for (TreeMap<String, String> pessoAutorizada : dadosVeiculo) {
            if (pessoAutorizada.get("codPes") != null
                    && codPessoaAutorizada.get(pessoAutorizada.get("codPes")) == null) {
                Record pessoAut = new Record();
                pessoAut.setAttribute("codigo", (pessoAutorizada.get("codPes") == null) ? "Sem informao"
                        : pessoAutorizada.get("codPes"));
                pessoAut.setAttribute("nomePes",
                        (pessoAutorizada.get("nomePes").equalsIgnoreCase("null")) ? "Sem informao"
                                : pessoAutorizada.get("nomePes"));
                pessoAut.setAttribute("telefonePes",
                        (pessoAutorizada.get("telefonePes") == null) ? "Sem informao"
                                : Info.formataTelefone(pessoAutorizada.get("telefonePes")));
                pessoAut.setAttribute("descricaoPes",
                        ((pessoAutorizada.get("descricaoPes") == null
                                || pessoAutorizada.get("descricaoPes").equalsIgnoreCase("")) ? "Sem informao"
                                        : pessoAutorizada.get("descricaoPes")));
                listPesAut.addData(pessoAut);
                codPessoaAutorizada.put(pessoAutorizada.get("codPes"), pessoAutorizada.get("codPes"));
            }
        }
        //criando seo telefone
        final SectionStackSection pesAutSection = new SectionStackSection();
        pesAutSection.setTitle("Pessoas Autorizadas");
        pesAutSection.setItems(listPesAut);
        pesAutSection.setControls(addPesAut);
        pesAutSection.setExpanded(true);
        //boto para adicionar nova linha na ListGrid telefone
        addPesAut.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                EditarNovaPessoaAutorizada novaPesAut = new EditarNovaPessoaAutorizada(listPesAut,
                        dadosVeiculoCopia);
                novaPesAut.setAnimateTime(1200);
                novaPesAut.animateShow(AnimationEffect.FADE);
            }
        });

        //Desenha o formulrio com todos os itens na tab Novo Cliente.
        formEditVeiculo.setItemLayout(FormLayoutType.TABLE);
        formEditVeiculo.setTitleOrientation(TitleOrientation.TOP);
        formEditVeiculo.setFields(tipoPlano, cliente, equipamento, instalador, indicado, placa, itemEstado,
                itemCidade, chassi, fabricante, modelo, cor, ano, dataAdesao, ativo, desconto, tipoCobranca,
                numeroParcelas);

        novoVeiculo.setSections(formSection, padLigSection, pesAutSection);
        novoVeiculo.setVisibilityMode(VisibilityMode.MULTIPLE);
        novoVeiculo.setAnimateSections(true);
        novoVeiculo.setWidth100();
        novoVeiculo.setHeight100();
        novoVeiculo.setOverflow(Overflow.VISIBLE);

        salvar.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                if (formEditVeiculo.validate()) {
                    //GWT.log("Linha 1 EditarVeiculo");
                    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() {
                            //GWT.log("Linha 2 EditarVeiculo");
                            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);
                                //GWT.log("Linha 3 EditarVeiculo");
                                if (contador >= 100) {
                                    //GWT.log("Linha 1");
                                    // GWT.log("Linha 4 EditarVeiculo");
                                    TreeMap<String, String> veiculo = new TreeMap<String, String>();
                                    veiculo.put("codVeiculo", dadosVeiculo.get(0).get("codVeiculo"));
                                    veiculo.put("codPlano", tipoPlano.getValueAsString());
                                    veiculo.put("codCliente", cliente.getValueAsString());
                                    //GWT.log("Equip: "+equipamento.getValueAsString());
                                    veiculo.put("codEquipamento", equipamento.getValueAsString());
                                    veiculo.put("codFuncionario", instalador.getValueAsString());
                                    veiculo.put("codVeiculoIndicador", indicado.getValueAsString());
                                    veiculo.put("placa", placa.getValueAsString());
                                    veiculo.put("codCidade", itemCidade.getValueAsString());
                                    veiculo.put("chassi", chassi.getValueAsString());
                                    veiculo.put("fabricante", fabricante.getValueAsString());
                                    veiculo.put("modelo", modelo.getValueAsString());
                                    veiculo.put("cor", cor.getValueAsString());
                                    veiculo.put("ano", ano.getValueAsString());
                                    Date datadeAdesao = dataAdesao.getValueAsDate();
                                    veiculo.put("ativo", ativo.getValueAsString());
                                    veiculo.put("desconto", desconto.getValueAsString());
                                    veiculo.put("observacoes", "");
                                    veiculo.put("codParcela", numeroParcelas.getValueAsString());
                                    //GWT.log("Linha 5 EditarVeiculo");
                                    //GWT.log("Linha 2"+codigoCliente);
                                    Info.dbService.alterarVeiculo(veiculo, codigoCliente, datadeAdesao,
                                            Integer.parseInt(
                                                    ((dadosVeiculo.get(0).get("codEquipamento") == null) ? "0"
                                                            : dadosVeiculo.get(0).get("codEquipamento"))),
                                            new AsyncCallback<Boolean>() {

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

                                                @Override
                                                public void onSuccess(Boolean veiculoAtualizado) {
                                                    //GWT.log("Linha 6 EditarVeiculo");
                                                    if (veiculoAtualizado == true) {
                                                        //GWT.log("Linha 7 EditarVeiculo");
                                                        Info.dbService.buscarVeiculoPorCliente(codigoCliente,
                                                                new AsyncCallback<TreeMap<String, ArrayList<TreeMap<String, String>>>>() {

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

                                                                    @Override
                                                                    public void onSuccess(
                                                                            TreeMap<String, ArrayList<TreeMap<String, String>>> dadosVeiculoAtualizados) {
                                                                        //GWT.log("Linha 8 EditarVeiculo");
                                                                        if (dadosVeiculoAtualizados != null) {
                                                                            //GWT.log("Linha 9 EditarVeiculo");
                                                                            //veiculosCopia.remove(dadosVeiculo);
                                                                            ArrayList<TreeMap<String, String>> dadosVeiculoAtualizado = dadosVeiculoAtualizados
                                                                                    .get(placaVeiculoCopia);
                                                                            //veiculosCopia.put(dadosVeiculo.get(0).get("placaVeiculo"), );
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "placaVeiculo",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("placaVeiculo"));
                                                                            dadosVeiculoCopia.get(0).put("modelo",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("modelo"));
                                                                            dadosVeiculoCopia.get(0).put("ano",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("ano"));
                                                                            dadosVeiculoCopia.get(0).put("cor",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("cor"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "fabricante",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("fabricante"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "descricaoTc",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("descricaoTc"));
                                                                            dadosVeiculoCopia.get(0).put("chassi",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("chassi"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "dataAdesao",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("dataAdesao"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "cidadeNome",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("cidadeNome"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "estadoNome",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("estadoNome"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "ativoVeic",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("ativoVeic"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "numeroParcela",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("numeroParcela"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "placaIndicador",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("placaIndicador"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "descricaoPlano",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("descricaoPlano"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "codEquipamento",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("codEquipamento"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "idEquipamento",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("idEquipamento"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "fabricanteMod",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("fabricanteMod"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "descricaoModelo",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("descricaoModelo"));
                                                                            dadosVeiculoCopia.get(0).put("desconto",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("desconto"));
                                                                            dadosVeiculoCopia.get(0).put("codTc",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("codTc"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "descricaoTc",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("descricaoTc"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "codParcela",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("codParcela"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "valorParcela",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("valorParcela"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "valorPlano",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("valorPlano"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "codInstalador",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("codInstalador"));
                                                                            dadosVeiculoCopia.get(0).put(
                                                                                    "nomeInstalador",
                                                                                    dadosVeiculoAtualizado.get(0)
                                                                                            .get("nomeInstalador"));

                                                                            if (!veicPlacas.getRecordList()
                                                                                    .isEmpty()) {
                                                                                veicPlacas.selectAllRecords();
                                                                                veicPlacas.removeSelectedData();
                                                                                tabelaVeiculos.markForRedraw();
                                                                                tabelaVeiculos
                                                                                        .setContents(tabelaVazia);
                                                                            }
                                                                            //GWT.log("Linha 11 EditarVeiculo");
                                                                            TreeMap<String, ArrayList<TreeMap<String, String>>> veiculosAux = new TreeMap<String, ArrayList<TreeMap<String, String>>>(
                                                                                    dadosVeiculoAtualizados);
                                                                            // GWT.log("Linha 12 EditarVeiculo");
                                                                            ListGridRecord[] registeredPlacaRecords = new ListGridRecord[dadosVeiculoAtualizados
                                                                                    .size()];
                                                                            //GWT.log("Linha 13 EditarVeiculo");
                                                                            if (dadosVeiculoAtualizados
                                                                                    .size() > 0) {
                                                                                //GWT.log("Linha 14 EditarVeiculo");
                                                                                for (int i = 0; i < dadosVeiculoAtualizados
                                                                                        .size(); i++) {
                                                                                    // GWT.log("Linha 15 EditarVeiculo");
                                                                                    final ListGridRecord recordVeiculos = new ListGridRecord();
                                                                                    recordVeiculos.setAttribute(
                                                                                            "placa",
                                                                                            veiculosAux
                                                                                                    .pollFirstEntry()
                                                                                                    .getValue()
                                                                                                    .get(0)
                                                                                                    .get("placaVeiculo"));
                                                                                    registeredPlacaRecords[i] = recordVeiculos;
                                                                                }
                                                                                //GWT.log("Linha 16 EditarVeiculo");
                                                                                DataSourceTextField placaVeiculo = new DataSourceTextField(
                                                                                        "placa", "Placa");
                                                                                placaVeiculo.setRequired(true);
                                                                                placaVeiculo.setPrimaryKey(true);
                                                                                //GWT.log("Linha 17 EditarVeiculo");
                                                                                DataSource ds = new DataSource();
                                                                                ds.setClientOnly(true);
                                                                                ds.setFields(placaVeiculo);
                                                                                //GWT.log("Linha 18 EditarVeiculo");
                                                                                for (int i = 0; i < registeredPlacaRecords.length; i++) {
                                                                                    // GWT.log("Linha 19 EditarVeiculo");
                                                                                    ds.addData(
                                                                                            registeredPlacaRecords[i]);
                                                                                }
                                                                                //GWT.log("Linha 20 EditarVeiculo");
                                                                                veicPlacas.setDataSource(ds);
                                                                                veicPlacas.fetchData();
                                                                                veicPlacas.setSelectionType(
                                                                                        SelectionStyle.SINGLE);
                                                                                //GWT.log("Linha 21 EditarVeiculo");
                                                                                SC.say("Veculo atualizado com sucesso!");
                                                                                windAux.destroy();
                                                                            }
                                                                        }

                                                                    }
                                                                });
                                                    } else {
                                                        SC.warn("ERRO ao atualizar os dados do veculo");
                                                    }
                                                }
                                            });
                                    janelaCarregando.addItem(mensagem);
                                    janelaCarregando.setAnimateTime(1200);
                                    janelaCarregando.animateHide(AnimationEffect.FADE);
                                    contador = 100;
                                    destroy();
                                }
                            } else {
                                contador = 0;
                            }

                        }
                    }.schedule(50);
                }
            }
        });

        painelBotoesNovoVeiculo.addMember(salvar);

        painelNovoVeiculo.addMember(novoVeiculo);
        painelNovoVeiculo.addMember(painelBotoesNovoVeiculo);
        //Desenhando o formulrio na Tab
        painelpagina.addMember(painelNovoVeiculo);

        addItem(painelpagina);

    }

    private void numeroDeParcelas(String numParc) {

        Info.dbService.buscarPorCodTipoPagamento(Integer.parseInt(numParc),
                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) {
                        if (result != null) {
                            LinkedHashMap<String, String> quantParcelas = new LinkedHashMap<>();
                            for (TreeMap<String, String> parcelas : result) {
                                quantParcelas.put(parcelas.get("codParcela"), parcelas.get("numero") + "X de R$"
                                        + Info.formataValor(Float.parseFloat(parcelas.get("valor"))));
                            }
                            numeroParcelas.clearValue();
                            numeroParcelas.redraw();
                            numeroParcelas.setValueMap(quantParcelas);
                            numeroParcelas.setDefaultToFirstOption(true);
                        }
                    }
                });
    }

}