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

Java tutorial

Introduction

Here is the source code for com.automaster.autoview.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.autoview.client.ui.paineis.dialogs.editar;

import com.automaster.autoview.client.ui.paineis.dialogs.cadastro.*;
import com.automaster.autoview.client.Info;
import com.automaster.autoview.client.ui.paineis.dialogs.editar.cadastronovo.EditarNovaPessoaAutorizada;
import com.automaster.autoview.client.ui.paineis.tabs.TabBuscarCliente;
import com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabGerenciaGrupoMaster;
import com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabHistorico;
import com.automaster.autoview.client.ui.paineis.tabs.monitoramento.TabInicio;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
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.RecordList;
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.SortDirection;
import com.smartgwt.client.types.TitleOrientation;
import com.smartgwt.client.util.BooleanCallback;
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.ComboBoxItem;
import com.smartgwt.client.widgets.form.fields.TextAreaItem;
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.form.fields.events.KeyPressEvent;
import com.smartgwt.client.widgets.form.fields.events.KeyPressHandler;
import com.smartgwt.client.widgets.form.validator.LengthRangeValidator;
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.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

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

    private String chassiAntigo;
    private boolean validaChassi;
    private String placaAntiga;
    private boolean validaPlaca;
    private String campo;
    private static int tamanhoSelecionados;
    private boolean flagItemValor;
    //private int contador = 0;
    private int codigoUnidade;
    private final ComboBoxItem itemEstado;
    private final ComboBoxItem itemCidade;
    private final ComboBoxItem tipoVeiculo;
    private final SelectItem numeroParcelas;
    private final ComboBoxItem itemMarca;
    private final ComboBoxItem itemModelo;
    private final ComboBoxItem itemAno;
    private final ComboBoxItem ativo;
    private final HTMLPane tabelaVeiculosCopia;
    //private final ImgButton addpadLig = new ImgButton();
    private boolean verificaTipoVeiculo;
    private boolean verificaMarca;
    private boolean verificaModelo;
    private boolean verificaAno;
    private int codVeiculoEditado;
    private int codVeiculoIndicador;
    private String[] pessoasSelecionadas;
    private String[] pessoasAntigas;
    public static ArrayList<TreeMap<String, String>> arrrayFiosEquipamento;
    private final SelectItem itemPessoasAutorizadas;
    private final LinkedHashMap<String, String> valueMapVeic;
    private final LinkedHashMap<String, String> pessoasAutorizadasMap;

    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") && record.getAttributeAsInt("codPad") > 0) {
         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(Info.titulosMsg.get("editarPadraoLigacao"));
         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 && record.getAttributeAsInt("codPad") > 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(Info.titulosMsg.get("excluirPadraoLigacao"));
         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) {
         SC.say(Info.titulosMsg.get("padraoLigacaoExcluidoSucesso"));
         // excluso de padro de ligao do veculo //
         Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 68, new Timestamp(System.currentTimeMillis()), "cod. padro: " + record.getAttributeAsString("codPad"));
         } else {
         // erro ao excluir padro de ligao //
         Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 189, new Timestamp(System.currentTimeMillis()), "cod. padro: " + record.getAttributeAsString("codPad"));
         SC.warn(Info.titulosMsg.get("padraoLigacaoExcluidoErro"));
         }
         }
         });
         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;
    private int codPessoaAutorizada;
    private ArrayList<TreeMap<String, String>> arrayPessoasAutorizadas;
    private double planoMaster;
    private double planoComodato;
    private final ComboBoxItem tipoCobranca;
    private ArrayList<TreeMap<String, String>> dadosVeiculoCopia;
    private TreeMap<String, String> pAux;
    //private TreeMap<String, ArrayList<TreeMap<String, String>>> veiculosCopia;
    private String tabelaVazia;
    LinkedHashMap<String, String> conf;
    private final ComboBoxItem cliente;

    public EditarVeiculo(final int codigoCliente, final String nomeCliente, final TabBuscarCliente tabBuscaCliente,
            final ArrayList<TreeMap<String, String>> dadosVeiculo, final ListGrid veicPlacas,
            final HTMLPane tabelaVeiculos, final TreeMap<String, ArrayList<TreeMap<String, String>>> veiculos,
            final String placaVeiculoCopia, final ArrayList<TreeMap<String, String>> gruposAutorizadosRastrear) {

        this.chassiAntigo = null;
        this.validaChassi = true;
        this.placaAntiga = null;
        this.validaPlaca = true;
        this.campo = "";
        tamanhoSelecionados = 0;
        this.flagItemValor = false;
        //private int contador = 0;
        this.codigoUnidade = Integer.parseInt((Info.usuarioLogado.get("codUnidadeCliente") == null)
                ? Info.usuarioLogado.get("codUnidadeFuncionario")
                : Info.usuarioLogado.get("codUnidadeCliente"));
        this.itemEstado = new ComboBoxItem("estado", Info.titulosMsg.get("estadoEndereco"));
        this.itemCidade = new ComboBoxItem("cidade", Info.titulosMsg.get("cidadeEndereco"));
        this.tipoVeiculo = new ComboBoxItem();
        this.numeroParcelas = new SelectItem();
        this.itemMarca = new ComboBoxItem();
        this.itemModelo = new ComboBoxItem();
        this.itemAno = new ComboBoxItem();
        this.ativo = new ComboBoxItem();
        //private final ImgButton addpadLig = new ImgButton();
        this.verificaTipoVeiculo = true;
        this.verificaMarca = true;
        this.verificaModelo = true;
        this.verificaAno = true;
        this.codVeiculoEditado = 0;
        this.codVeiculoIndicador = 0;
        arrrayFiosEquipamento = new ArrayList<>();
        this.itemPessoasAutorizadas = new SelectItem();
        this.valueMapVeic = new LinkedHashMap<>();

        this.dadosVeiculoCopia = dadosVeiculo;
        this.tabelaVeiculosCopia = tabelaVeiculos;

        this.codPessoaAutorizada = 0;
        this.arrayPessoasAutorizadas = new ArrayList<>();
        this.planoMaster = 0;
        this.planoComodato = 0;
        this.tipoCobranca = new ComboBoxItem();
        this.pAux = new TreeMap<>();
        //private TreeMap<String, ArrayList<TreeMap<String, String>>> veiculosCopia;
        this.tabelaVazia = "<table   width=\"100%\" height=\"100%\" border=\"1\" bordercolor=\"#CCCCCC\">\n"
                + "  <tr align=\"center\" bgcolor=\"#CCCCCC\">\n" + "    <td>"
                + Info.titulosMsg.get("naoExisteItens") + "</td>\n" + "  </tr>\n" + "</table>";

        this.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") && record.getAttributeAsString("antiga").equalsIgnoreCase("1")) {
                    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(Info.titulosMsg.get("editarPessoaAutorizada"));
                    editImg.setHeight(16);
                    editImg.setWidth(16);
                    editImg.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
                            EditarPessoaAutorizada editPesAut = new EditarPessoaAutorizada(listAux, record,
                                    dadosVeiculoCopia, itemPessoasAutorizadas, cliente, arrayPessoasAutorizadas);
                            editPesAut.setAnimateTime(1200);
                            editPesAut.animateShow(AnimationEffect.FADE);
                        }
                    });

                    recordCanvas.addMember(editImg);
                    return recordCanvas;
                } else if (fieldName.equals("excluir")
                        && record.getAttributeAsString("antiga").equalsIgnoreCase("1")) {
                    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(Info.titulosMsg.get("excluirPessoaAutorizada"));
                    excluirImg.setHeight(16);
                    excluirImg.setWidth(16);
                    excluirImg.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
                            SC.confirm("Excluir pessoa autorizada",
                                    "Deseja realmente excluir a pessoa autorizada a rastrear?",
                                    new BooleanCallback() {

                                        @Override
                                        public void execute(Boolean value) {
                                            if (value) {
                                                //GWT.log("codVeiculo: " + dadosVeiculoCopia.get(0).get("codVeiculo") + " COD_PESSOA AUTORIZADA : " + record.getAttributeAsInt("codigo"));
                                                Info.dbService.deletarVeiculoHasPessoaAutorizadaPorVeiculo(
                                                        Integer.parseInt(
                                                                dadosVeiculoCopia.get(0).get("codVeiculo")),
                                                        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 result) {
                                                                if (result) {

                                                                    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);
                                                                        }
                                                                    }
                                                                    //GWT.log("codPesssoa  - deletarVeiculoHasPessoaAutorizadaPorVeiculo : " + arrayPessoasAutorizadas);
                                                                    //int linhaClicada = listAux.getRecordIndex(record);
                                                                    int num = arrayPessoasAutorizadas.size();
                                                                    int removidos = 0;
                                                                    for (int i = 0; i < num; i++) {
                                                                        TreeMap<String, String> endEditado = arrayPessoasAutorizadas
                                                                                .get(i - removidos);
                                                                        if (record.getAttribute("codigo")
                                                                                .equalsIgnoreCase(
                                                                                        endEditado.get("codPessoa"))
                                                                                && endEditado
                                                                                        .containsKey("antiga")) {
                                                                            arrayPessoasAutorizadas
                                                                                    .remove(endEditado);
                                                                            removidos++;
                                                                        }
                                                                    }
                                                                    TreeMap<String, String> pessoaAux = new TreeMap<String, String>();
                                                                    pessoasSelecionadas = new String[tamanhoSelecionados];
                                                                    for (int j = 0; j < arrayPessoasAutorizadas
                                                                            .size(); j++) {
                                                                        if (arrayPessoasAutorizadas.get(j)
                                                                                .containsKey("antiga")
                                                                                && pessoaAux
                                                                                        .get(arrayPessoasAutorizadas
                                                                                                .get(j)
                                                                                                .get("codPessoa")) == null) {
                                                                            pessoasSelecionadas[j] = arrayPessoasAutorizadas
                                                                                    .get(j).get("codPessoa");
                                                                            pessoaAux.put(
                                                                                    arrayPessoasAutorizadas.get(j)
                                                                                            .get("codPessoa"),
                                                                                    arrayPessoasAutorizadas.get(j)
                                                                                            .get("codPessoa"));
                                                                        }
                                                                    }
                                                                    itemPessoasAutorizadas.redraw();
                                                                    itemPessoasAutorizadas
                                                                            .setValues(pessoasSelecionadas);
                                                                    int linhaClicada = listAux
                                                                            .getRecordIndex(record);
                                                                    listAux.selectRecord(linhaClicada);
                                                                    listAux.removeSelectedData();
                                                                    //GWT.log("arrayPessoasAutorizadas - excluir : " + arrayPessoasAutorizadas);
                                                                    SC.say(Info.titulosMsg.get(
                                                                            "pessoaAutorizadaExcluidaSucesso"));
                                                                    // excluso da pessoa autorizada a rastrear o veculo //
                                                                    Info.registrarLog(Integer.parseInt(
                                                                            Info.usuarioLogado.get("codUsuario")),
                                                                            69,
                                                                            new Timestamp(
                                                                                    System.currentTimeMillis()),
                                                                            "cod. pessoa autorizada"
                                                                                    + record.getAttributeAsString(
                                                                                            "codigo"));
                                                                } else {
                                                                    // erro ao excluir pessoa autorizada a rastrear //
                                                                    Info.registrarLog(Integer.parseInt(
                                                                            Info.usuarioLogado.get("codUsuario")),
                                                                            190,
                                                                            new Timestamp(
                                                                                    System.currentTimeMillis()),
                                                                            "cod. pessoa autorizada"
                                                                                    + record.getAttributeAsString(
                                                                                            "codigo"));
                                                                    SC.warn(Info.titulosMsg
                                                                            .get("pessoaAutorizadaExcluidaErro"));
                                                                }
                                                            }
                                                        });
                                            }
                                        }
                                    });

                        } /**/

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

                } else {
                    return null;
                }

            }
        };

        //veiculosCopia = veiculos;
        final Window windAux = this;

        setTitle(Info.titulosMsg.get("editarVeiculo"));
        setWidth(1015);
        setHeight100();
        setShowMinimizeButton(false);
        setIsModal(true);
        setShowModalMask(true);
        centerInPage();
        setLayoutAlign(Alignment.CENTER);
        addCloseClickHandler(new CloseClickHandler() {

            @Override
            public void onCloseClick(CloseClickEvent event) {

                SC.confirm(Info.titulosMsg.get("terminarEdicao"), new BooleanCallback() {

                    @Override
                    public void execute(Boolean value) {
                        if (value) {
                            // no salvou a edio do veculo //
                            Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 191,
                                    new Timestamp(System.currentTimeMillis()), "Placa: "
                                            + dadosVeiculo.get(0).get("placaVeiculo") + ", Cliente" + nomeCliente);
                            windAux.destroy();
                        }
                    }
                });
                //GWT.log(""+clienteEdicao);
            }
        });
        //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 ComboBoxItem tipoPlano = new ComboBoxItem();
        tipoPlano.setAddUnknownValues(false);
        tipoPlano.setTitle(Info.titulosMsg.get("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"));
                        if (Integer.parseInt(planos.get("codPlano")) == 1) {
                            planoMaster = Double.parseDouble(planos.get("valor"));
                            //valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$" + Info.formataSaldo(Info.formataDecimal(planoMaster)) + " </h3></strong>");
                            //GWT.log("Master: " + planoMaster);
                        } else if (Integer.parseInt(planos.get("codPlano")) == 2) {
                            planoComodato = Double.parseDouble(planos.get("valor"));
                            // GWT.log("Comodato: " + planoComodato);
                        }
                    }
                    tipoPlano.setValueMap(pl);
                    tipoPlano.setValue(dadosVeiculo.get(0).get("codPlano"));
                } else {
                    pl.put("0", Info.titulosMsg.get("naoHaPlano"));
                    tipoPlano.setValueMap(pl);
                    tipoPlano.setValue("0");
                }

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

        final SelectItem gruposCliente = new SelectItem();

        this.cliente = new ComboBoxItem();
        this.cliente.setAddUnknownValues(false);
        this.cliente.setTitle(Info.titulosMsg.get("tituloCliente"));
        this.cliente.setName("cliente");
        LinkedHashMap<String, String> cl = new LinkedHashMap<>();
        cl.put(String.valueOf(codigoCliente), nomeCliente);
        this.cliente.setDefaultToFirstOption(true);
        this.cliente.setValueMap(cl);
        this.cliente.setHint("<nbr>*</nbr>");
        this.cliente.setRequired(true);
        this.cliente.setWidth(450);
        FormItemIcon editCliente = new FormItemIcon();
        editCliente.setSrc("[SKIN]actions/edit.png");
        editCliente.setName("editarEquip");
        editCliente.setPrompt(Info.titulosMsg.get("editarCliente"));
        this.cliente.setIcons(editCliente);
        editCliente.addFormItemClickHandler(new FormItemClickHandler() {

            @Override
            public void onFormItemClick(FormItemIconClickEvent event) {
                EditarClienteProprietario editarClienteProprietario = new EditarClienteProprietario(cliente,
                        gruposCliente, itemPessoasAutorizadas, listPesAut, arrayPessoasAutorizadas);
                editarClienteProprietario.setAnimateTime(1200);
                editarClienteProprietario.animateShow(AnimationEffect.FADE);
            }
        });
        final ComboBoxItem itemConfiguracao = new ComboBoxItem();
        itemConfiguracao.setAddUnknownValues(false);
        itemConfiguracao.setTitle(Info.titulosMsg.get("configuracaoDoFio"));
        itemConfiguracao.setName("itemConfiguracao");

        //itemConfiguracao.setDisabled(true);
        //itemConfiguracao.setValueMap(cl);
        itemConfiguracao.setWidth(450);
        itemConfiguracao.setHint("<nbr></nbr>");
        itemConfiguracao.setRequired(false);
        itemConfiguracao.setDisabled(true);
        itemConfiguracao.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                String itemSelecionado = itemConfiguracao.getValueAsString();
                listPadLig.setData(new Record[0]);
                for (TreeMap<String, String> fio : arrrayFiosEquipamento) {
                    if (fio.get("codMecf").equalsIgnoreCase(itemSelecionado)) {
                        Record padLig = new Record();
                        padLig.setAttribute("codPad", "0");
                        padLig.setAttribute("corFio", fio.get("corFio"));
                        padLig.setAttribute("sinalPad",
                                (fio.get("sinal").equalsIgnoreCase("true")) ? "Positivo" : "Negativo");
                        padLig.setAttribute("padraoLd",
                                (fio.get("padrao").equalsIgnoreCase("true")) ? "Ligado" : "Desligado");
                        padLig.setAttribute("funcaoPad",
                                (fio.get("funcao").equalsIgnoreCase("true")) ? "Entrada" : "Sada");
                        padLig.setAttribute("ativoPad",
                                (fio.get("ativo").equalsIgnoreCase("true")) ? "Sim" : "No");
                        padLig.setAttribute("descricaoPad",
                                (fio.get("descricao") == null || fio.get("descricao").equalsIgnoreCase(""))
                                        ? "Sem informao"
                                        : fio.get("descricao"));
                        listPadLig.addData(padLig);
                    }
                }
            }
        });

        final ComboBoxItem equipamento = new ComboBoxItem();
        equipamento.setAddUnknownValues(false);
        equipamento.setTitle(Info.titulosMsg.get("equipamento"));
        equipamento.setName("equipamento");
        LinkedHashMap<String, String> equip = new LinkedHashMap<>();
        conf = new LinkedHashMap<>();
        if (dadosVeiculo.get(0).get("codEquipamento") == null) {
            equip.put("0", "Sem equipamento");
            equipamento.setValueMap(equip);
            equipamento.setValue("0");
            conf.put("0", "Sem configuracao");
            itemConfiguracao.setValueMap(conf);
            itemConfiguracao.setValue("0");
            //addpadLig.setWidth(16);
            //addpadLig.setHeight(16);
            //addpadLig.disable();
        } else {
            //GWT.log("codEquipamento: " +dadosVeiculo.get(0).get("codEquipamento"));
            equip.put(dadosVeiculo.get(0).get("codEquipamento"),
                    dadosVeiculo.get(0).get("idEquipamento") + " / " + dadosVeiculo.get(0).get("fabricanteMod")
                            + " / " + dadosVeiculo.get(0).get("descricaoModelo")
                            + ((codigoUnidade == 1) ? " / " + dadosVeiculo.get(0).get("nomeUnidade") : ""));
            equip.put("0", "Sem equipamento");
            equipamento.setValueMap(equip);
            equipamento.setValue(dadosVeiculo.get(0).get("codEquipamento"));
            itemConfiguracao.setHint("<nbr>*</nbr>");
            itemConfiguracao.setRequired(true);
            itemConfiguracao.setDisabled(false);
            Info.dbService.buscarFiosDoEquipamentoPorModeloDeEquipamento(
                    Integer.parseInt(dadosVeiculo.get(0).get("codEquipamento")),
                    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>> fiosEquipamento) {
                            conf = new LinkedHashMap<>();
                            if (fiosEquipamento != null) {
                                arrrayFiosEquipamento = fiosEquipamento;
                                TreeMap<String, String> nome = new TreeMap<String, String>();
                                for (TreeMap<String, String> fio : fiosEquipamento) {
                                    if (!nome.containsKey(fio.get("codMecf"))) {
                                        conf.put(fio.get("codMecf"),
                                                fio.get("nome") + " / " + fio.get("descricaomecf"));
                                        nome.put(fio.get("codMecf"), fio.get("nome"));
                                    }
                                    /*Record padLig = new Record();
                                     padLig.setAttribute("codPad", "0");
                                     padLig.setAttribute("corFio", fio.get("corFio"));
                                     padLig.setAttribute("sinalPad", (fio.get("sinal").equalsIgnoreCase("true")) ? "Positivo" : "Negativo");
                                     padLig.setAttribute("padraoLd", (fio.get("padrao").equalsIgnoreCase("true")) ? "Ligado" : "Desligado");
                                     padLig.setAttribute("funcaoPad", (fio.get("funcao").equalsIgnoreCase("true")) ? "Entrada" : "Sada");
                                     padLig.setAttribute("ativoPad", (fio.get("ativo").equalsIgnoreCase("true")) ? "Sim" : "No");
                                     padLig.setAttribute("descricaoPad", (fio.get("descricao") == null || fio.get("descricao").equalsIgnoreCase("")) ? "Sem informao" : fio.get("descricao"));
                                     listPadLig.addData(padLig);*/
                                }
                                itemConfiguracao.setValueMap(conf);
                                itemConfiguracao.setValue(dadosVeiculo.get(0).get("configuracao"));

                            } else {
                                GWT.log("Erro ao consultar os fios do equipamento!");
                            }
                        }
                    });
        }

        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(Info.titulosMsg.get("editarEquipamento"));
        equipamento.setIcons(editEquip);
        equipamento.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                if (Integer.parseInt((String) event.getValue()) != 0) {
                    GWT.log("Equipamento maior que zero: " + event.getValue());
                    ativo.setValue("True");
                    //addpadLig.enable();
                    itemConfiguracao.setDisabled(false);
                    itemConfiguracao.setRequired(true);
                    itemConfiguracao.setHint("<nbr>*</nbr>");

                    Info.dbService.buscarFiosDoEquipamentoPorModeloDeEquipamento(
                            Integer.parseInt((String) event.getValue()),
                            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>> fiosEquipamento) {
                                    conf = new LinkedHashMap<>();
                                    if (fiosEquipamento != null) {
                                        GWT.log("2 Equipamento maior que zero: ");
                                        arrrayFiosEquipamento = fiosEquipamento;
                                        GWT.log("3 Equipamento maior que zero: ");
                                        listPadLig.setData(new RecordList());
                                        GWT.log("4 Equipamento maior que zero: ");
                                        TreeMap<String, String> nome = new TreeMap<>();
                                        for (TreeMap<String, String> fio : fiosEquipamento) {
                                            if (!nome.containsKey(fio.get("codMecf"))) {

                                                conf.put(fio.get("codMecf"),
                                                        fio.get("nome") + " / " + fio.get("descricaomecf"));
                                                nome.put(fio.get("codMecf"), fio.get("nome"));
                                                GWT.log("5 Equipamento maior que zero: ");
                                            }

                                            if (fio.get("codMecf")
                                                    .equalsIgnoreCase(fiosEquipamento.get(0).get("codMecf"))) {
                                                Record padLig = new Record();
                                                // GWT.log("6.0 Equipamento maior que zero: ");
                                                padLig.setAttribute("codPad", "0");
                                                // GWT.log("6.1 Equipamento maior que zero: ");
                                                padLig.setAttribute("corFio", fio.get("corFio"));
                                                padLig.setAttribute("sinalPad",
                                                        (fio.get("sinal").equalsIgnoreCase("true")) ? "Positivo"
                                                                : "Negativo");
                                                //GWT.log("6.2 Equipamento maior que zero: ");
                                                padLig.setAttribute("padraoLd",
                                                        (fio.get("padrao").equalsIgnoreCase("true")) ? "Ligado"
                                                                : "Desligado");
                                                //GWT.log("6.3 Equipamento maior que zero: ");
                                                padLig.setAttribute("funcaoPad",
                                                        (fio.get("funcao").equalsIgnoreCase("true")) ? "Entrada"
                                                                : "Sada");
                                                //GWT.log("6.4 Equipamento maior que zero: ");
                                                padLig.setAttribute("ativoPad",
                                                        (fio.get("ativo").equalsIgnoreCase("true")) ? "Sim"
                                                                : "No");
                                                //GWT.log("6.5 Equipamento maior que zero: ");
                                                padLig.setAttribute("descricaoPad",
                                                        (fio.get("descricao") == null
                                                                || fio.get("descricao").equalsIgnoreCase(""))
                                                                        ? "Sem informao"
                                                                        : fio.get("descricao"));
                                                //GWT.log("6.6 Equipamento maior que zero: ");
                                                listPadLig.addData(padLig);
                                                //GWT.log("6.7 Equipamento maior que zero: ");
                                            }
                                        }
                                        itemConfiguracao.setValueMap(conf);
                                        itemConfiguracao.setValue(fiosEquipamento.get(0).get("codMecf"));
                                        //GWT.log("7 Equipamento maior que zero: ");

                                    } else {
                                        GWT.log("Erro ao consultar os fios do equipamento!");
                                    }
                                }
                            });

                } else {
                    ativo.setValue("False");
                    itemConfiguracao.setHint("<nbr></nbr>");
                    itemConfiguracao.setRequired(false);
                    itemConfiguracao.setDisabled(true);
                    conf.put("0", "Sem configuracao");
                    itemConfiguracao.setValueMap(conf);
                    itemConfiguracao.setValue("0");
                    listPadLig.setData(new RecordList());
                    //addpadLig.disable();
                }
            }
        });
        editEquip.addFormItemClickHandler(new FormItemClickHandler() {

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

        final ComboBoxItem instalador = new ComboBoxItem();
        instalador.setAddUnknownValues(false);
        instalador.setTitle(Info.titulosMsg.get("instalador"));
        instalador.setName("instalador");
        LinkedHashMap<String, String> codInstalador = new LinkedHashMap<>();
        if (dadosVeiculo.get(0).get("codInstalador") == null) {
            codInstalador.put("0", Info.titulosMsg.get("naoHaInstalador"));
        } else {
            codInstalador.put(dadosVeiculo.get(0).get("codInstalador"), dadosVeiculo.get(0).get("nomeInstalador")
                    + "" + ((codigoUnidade == 1) ? " / " + dadosVeiculo.get(0).get("unidadeInstalador") : ""));
        }
        instalador.setValueMap(codInstalador);

        FormItemIcon editInstalador = new FormItemIcon();
        editInstalador.setSrc("[SKIN]actions/edit.png");
        editInstalador.setName("editarEquip");
        editInstalador.setPrompt("Editar instalador");
        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 ComboBoxItem indicado = new ComboBoxItem();
        indicado.setAddUnknownValues(false);
        indicado.setName("indicado");
        indicado.setTitle(Info.titulosMsg.get("indicado"));

        valueMapVeic.put("0", Info.titulosMsg.get("indicacaoEmpresa"));
        valueMapVeic.put("REP", Info.titulosMsg.get("indicacaoRepresentante"));
        //parei aqui
        String valorAtual = "";
        GWT.log("Cdigo do veculo: " + dadosVeiculo.get(0).get("veiculoCodVeiculo"));
        if (dadosVeiculo.get(0).get("veiculoCodVeiculo").equalsIgnoreCase("0")
                && dadosVeiculo.get(0).get("placaIndicador") == null
                && dadosVeiculo.get(0).get("nomeRep") == null) {
            valueMapVeic.put("0", Info.titulosMsg.get("indicacaoEmpresa") + " Ind: "
                    + dadosVeiculo.get(0).get("numeroIndicacoesEmp"));
            valorAtual = "0";
        } else {
            if (dadosVeiculo.get(0).get("placaIndicador") == null) {
                valueMapVeic.put("REP" + dadosVeiculo.get(0).get("codRepresentante"),
                        "REPRESENTANTE: " + dadosVeiculo.get(0).get("nomeRep") + " / "
                                + dadosVeiculo.get(0).get("numeroIndicacoesRep"));
                valorAtual = "REP" + dadosVeiculo.get(0).get("codRepresentante");
            } else {
                valueMapVeic.put(dadosVeiculo.get(0).get("codVeiculoInd"),
                        dadosVeiculo.get(0).get("placaIndicador") + " / "
                                + dadosVeiculo.get(0).get("fabricanteIndicador") + " / "
                                + dadosVeiculo.get(0).get("modeloIndicador") + " / "
                                + dadosVeiculo.get(0).get("corIndicador") + " Ind: "
                                + dadosVeiculo.get(0).get("numeroIndicacoesIndicador"));
                valorAtual = dadosVeiculo.get(0).get("codVeiculoInd");
            }

        }

        indicado.setValueMap(valueMapVeic);
        indicado.setValue(valorAtual);
        //indicado.setRequired(true);
        indicado.setTooltip(Info.titulosMsg.get("adicionarIndicacao"));
        FormItemIcon icon = new FormItemIcon();
        icon.setSrc("[SKIN]actions/edit.png");
        icon.setName("editarIndicacao");
        icon.setPrompt(Info.titulosMsg.get("editarIndicacao"));
        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, valueMapVeic, codVeiculoIndicador);
                dialogInd.setAnimateTime(1200);
                dialogInd.animateShow(AnimationEffect.FADE);
            }
        });

        indicado.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                String selecionado = (String) event.getValue();
                if (selecionado.equalsIgnoreCase("REP")) {
                    BuscarRepresentante buscarRepresentante = new BuscarRepresentante(valueMapVeic, indicado);
                    buscarRepresentante.setAnimateTime(1200);
                    buscarRepresentante.animateShow(AnimationEffect.FADE);
                }
            }
        });

        final TextItem placa = new TextItem();
        placa.setName("placa");
        placa.setTitle(Info.titulosMsg.get("placa"));
        placa.setMask(">LLL-####");
        placa.setMaskSaveLiterals(true);
        placa.setRequired(true);
        placa.setHint("<nbr>*</nbr>");
        placa.setWidth(430);
        placa.setValue(dadosVeiculo.get(0).get("placaVeiculo"));
        placaAntiga = dadosVeiculo.get(0).get("placaVeiculo");
        placa.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                if (placa.getDisplayValue().equals(placaAntiga) && (!placa.getDisplayValue().contains("_"))) {
                    validaPlaca = true;
                    //GWT.log("Editar veiculo, 0 Valida Placa!!!" + validaPlaca);
                } else {
                    if (event.getValue() != null && (!placa.getDisplayValue().equals(placaAntiga))
                            && (!placa.getDisplayValue().contains("_"))) {
                        Info.dbService.buscarPlacaJaExistente(placa.getDisplayValue(),
                                new AsyncCallback<TreeMap<String, String>>() {

                                    @Override
                                    public void onSuccess(TreeMap<String, String> result) {
                                        if (result != null) {
                                            placa.setHint(
                                                    "<nbr>" + Info.titulosMsg.get("placaJaExiste") + "</nbr>");
                                            validaPlaca = false;
                                            //GWT.log("EditarVeiculo, 1 Valida placa!!!" + validaPlaca);
                                        } else {
                                            placa.setHint("<nbr class=\"positivo\">"
                                                    + Info.titulosMsg.get("placaValida") + "</nbr>");
                                            validaPlaca = true;
                                            //GWT.log("EditarVeiculo, 2 ValidaPlaca!!!" + validaPlaca);
                                        }
                                    }

                                    @Override
                                    public void onFailure(Throwable caught) {
                                        // TODO Auto-generated method stub

                                    }
                                });
                    }
                }

                //validaPlaca = true;
            }
        });
        /*itemEstado.setTitle("Estado");
         itemEstado.setName("estado");*/
        itemEstado.setWidth(450);
        itemEstado.setAddUnknownValues(false);
        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<>();
                for (TreeMap<String, String> est : result) {
                    valueMapEst.put(est.get("codEstado"), est.get("uf"));
                }
                itemEstado.setValueMap(valueMapEst);

            }
        });
        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<>();
                        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.setAddUnknownValues(false);
        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);
                                if (itemEstado.getValueAsString()
                                        .equalsIgnoreCase(dadosVeiculo.get(0).get("codEstado"))) {
                                    itemCidade.setValue(dadosVeiculo.get(0).get("codCidade"));
                                } else {
                                    itemCidade.setValue(result.get(0).get("codCidade"));
                                }
                            }

                        });
            }
        });
        itemCidade.setRequired(true);

        final TextItem chassi = new TextItem();
        chassi.setName("chassi");
        chassi.setTitle(Info.titulosMsg.get("chassi"));
        chassi.setRequired(true);
        chassi.setLength(17);
        chassi.setHint("<nbr>*</nbr>");
        chassi.setKeyPressFilter("[a-zA-Z0-9]");
        LengthRangeValidator tamanhoChassi = new LengthRangeValidator();
        tamanhoChassi.setMin(8);
        chassi.setCharacterCasing(CharacterCasing.UPPER);
        chassi.setWidth(450);
        chassi.setValidators(tamanhoChassi);
        chassi.setValue(dadosVeiculo.get(0).get("chassi"));
        chassiAntigo = dadosVeiculo.get(0).get("chassi");
        chassi.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                // TODO Auto-generated method stub
                if (chassi.getValueAsString().length() > 7 && chassi.getValueAsString().equals(chassiAntigo)) {
                    validaChassi = true;
                    GWT.log("Editar veiculo, 1 Valida chassi!!!" + validaChassi);
                } else {
                    if (chassi.getValueAsString().length() > 7 && !chassi.getValueAsString().equals(chassiAntigo)) {
                        Info.dbService.buscarChassiJaExistente(chassi.getValueAsString(),
                                new AsyncCallback<TreeMap<String, String>>() {

                                    @Override
                                    public void onSuccess(TreeMap<String, String> result) {
                                        if (result == null) {
                                            validaChassi = true;
                                            GWT.log("Editar veiculo, Valida chassi!!!" + validaChassi);
                                        } else {
                                            validaChassi = false;
                                            GWT.log("Editar veiculo, Valida chassi!!!" + validaChassi);
                                        }

                                    }

                                    @Override
                                    public void onFailure(Throwable caught) {
                                        // TODO Auto-generated method stub

                                    }
                                });
                    }
                }

            }
        });

        final TextItem fabricante = new TextItem();
        fabricante.setName("fabricante");
        fabricante.setTitle(Info.titulosMsg.get("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("fabricantev"));

        final TextItem modelo = new TextItem();
        modelo.setName("modelo");
        modelo.setTitle(Info.titulosMsg.get("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("modelov"));

        final TextItem ano = new TextItem();
        ano.setName("ano");
        ano.setTitle(Info.titulosMsg.get("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("anov"));

        final SelectItem itemIconeVeiculo = new SelectItem();
        itemIconeVeiculo.setTitle(Info.titulosMsg.get("iconeVeiculo"));
        itemIconeVeiculo.setName("iconeVeiculo");
        itemIconeVeiculo.setHint("<nbr>*</nbr>");
        itemIconeVeiculo.setRequired(true);
        itemIconeVeiculo.setWidth(450);
        final LinkedHashMap<String, String> valueMap = new LinkedHashMap<>();
        final LinkedHashMap<String, String> valueIcons = new LinkedHashMap<>();
        final LinkedHashMap<String, String> valueCaminhao = new LinkedHashMap<>();
        final LinkedHashMap<String, String> valueIconsCaminhao = new LinkedHashMap<>();
        Info.dbService.buscarTodosIcones(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) {

                    for (TreeMap<String, String> icone : result) {
                        valueMap.put(icone.get("codIcone"), icone.get("descricao"));
                        valueIcons.put(icone.get("codIcone"), icone.get("codIcone"));
                        if (icone.get("codIcone").equalsIgnoreCase("3")
                                || icone.get("codIcone").equalsIgnoreCase("4")
                                || icone.get("codIcone").equalsIgnoreCase("8")
                                || icone.get("codIcone").equalsIgnoreCase("11")
                                || icone.get("codIcone").equalsIgnoreCase("13")
                                || icone.get("codIcone").equalsIgnoreCase("15")
                                || icone.get("codIcone").equalsIgnoreCase("16")
                                || icone.get("codIcone").equalsIgnoreCase("20")
                                || icone.get("codIcone").equalsIgnoreCase("21")
                                || icone.get("codIcone").equalsIgnoreCase("22")) {
                            valueCaminhao.put(icone.get("codIcone"), icone.get("descricao"));
                            valueIconsCaminhao.put(icone.get("codIcone"), icone.get("codIcone"));
                        }
                    }
                    itemIconeVeiculo.setValueMap(valueMap);
                    itemIconeVeiculo.setValueIcons(valueIcons);
                    itemIconeVeiculo.setValue(dadosVeiculo.get(0).get("icone"));

                }
            }
        });
        itemIconeVeiculo.setImageURLPrefix("../imagens/veiculos/");
        itemIconeVeiculo.setImageURLSuffix(".png");
        itemIconeVeiculo.disable();

        tipoVeiculo.setTitle(Info.titulosMsg.get("tipoVeiculo"));
        tipoVeiculo.setName("tipoVeiculo");
        tipoVeiculo.setAddUnknownValues(false);
        Info.dbService.buscarTodosTipoDeVeiculo(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> tipoVeiculos = new LinkedHashMap<>();
                if (result != null) {
                    for (TreeMap<String, String> tv : result) {
                        tipoVeiculos.put(tv.get("codTipo"), tv.get("descricao"));
                    }
                    tipoVeiculo.setValueMap(tipoVeiculos);
                    if (verificaTipoVeiculo) {
                        //GWT.log("LInha verificaTipoVeiculo!"+dadosVeiculo.get(0).get("codTipo"));
                        verificaTipoVeiculo = false;
                        tipoVeiculo.setValue(dadosVeiculo.get(0).get("codTipo"));
                        buscarMarcas(Integer.parseInt(dadosVeiculo.get(0).get("codTipo")));
                    } else {
                        if (tipoVeiculo.getValueAsString().equalsIgnoreCase(dadosVeiculo.get(0).get("codTipo"))) {
                            tipoVeiculo.setValue(dadosVeiculo.get(0).get("codTipo"));
                            buscarMarcas(Integer.parseInt(dadosVeiculo.get(0).get("codTipo")));
                        } else {
                            tipoVeiculo.setValue(result.get(0).get("codTipo"));
                            buscarMarcas(Integer.parseInt(result.get(0).get("codTipo")));
                        }
                    }
                } else {
                    tipoVeiculos.put("0", Info.titulosMsg.get("naoHaTipoVeiculo"));
                    tipoVeiculo.setValueMap(tipoVeiculos);
                    tipoVeiculo.setValue("0");
                }
            }
        });
        tipoVeiculo.setHint("<nbr>*</nbr>");
        tipoVeiculo.setRequired(true);
        tipoVeiculo.setWidth(450);
        tipoVeiculo.setValue(dadosVeiculo.get(0).get("codTipo"));

        tipoVeiculo.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                String tipoSelecionado = (String) event.getValue();
                buscarMarcas(Integer.parseInt(tipoSelecionado));
                verificaTipoVeiculo = verificaMarca = verificaModelo = verificaAno = false;
                if (tipoSelecionado.equalsIgnoreCase("1")) {
                    itemIconeVeiculo.setValueMap(valueMap);
                    itemIconeVeiculo.setValueIcons(valueIcons);
                    formEditVeiculo.showItem("itemMarca");
                    formEditVeiculo.showItem("itemModelo");
                    formEditVeiculo.showItem("itemAno");
                    formEditVeiculo.hideItem("fabricante");
                    formEditVeiculo.hideItem("modelo");
                    formEditVeiculo.hideItem("ano");
                    itemIconeVeiculo.setValue("1");
                    itemIconeVeiculo.disable();
                } else if (tipoSelecionado.equalsIgnoreCase("2")) {
                    itemIconeVeiculo.setValueMap(valueMap);
                    itemIconeVeiculo.setValueIcons(valueIcons);
                    formEditVeiculo.showItem("itemMarca");
                    formEditVeiculo.showItem("itemModelo");
                    formEditVeiculo.showItem("itemAno");
                    formEditVeiculo.hideItem("fabricante");
                    formEditVeiculo.hideItem("modelo");
                    formEditVeiculo.hideItem("ano");
                    itemIconeVeiculo.setValue("2");
                    itemIconeVeiculo.enable();
                    //itemIconeVeiculo.disable();
                } else if (tipoSelecionado.equalsIgnoreCase("3")) {
                    itemIconeVeiculo.enable();
                    itemIconeVeiculo.setValueMap(valueCaminhao);
                    itemIconeVeiculo.setValueIcons(valueIconsCaminhao);
                    formEditVeiculo.showItem("itemMarca");
                    formEditVeiculo.showItem("itemModelo");
                    formEditVeiculo.showItem("itemAno");
                    formEditVeiculo.hideItem("fabricante");
                    formEditVeiculo.hideItem("modelo");
                    formEditVeiculo.hideItem("ano");
                    itemIconeVeiculo.setValue("3");
                } else if (tipoSelecionado.equalsIgnoreCase("4")) {
                    itemIconeVeiculo.enable();
                    itemIconeVeiculo.setValueMap(valueMap);
                    itemIconeVeiculo.setValueIcons(valueIcons);
                    formEditVeiculo.hideItem("itemMarca");
                    formEditVeiculo.hideItem("itemModelo");
                    formEditVeiculo.hideItem("itemAno");
                    formEditVeiculo.showItem("fabricante");
                    formEditVeiculo.showItem("modelo");
                    formEditVeiculo.showItem("ano");
                    itemIconeVeiculo.setValue("3");
                }
            }
        });
        itemMarca.setAddUnknownValues(false);
        itemMarca.setTitle(Info.titulosMsg.get("fabricante"));
        itemMarca.setName("itemMarca");
        itemMarca.setHint("<nbr>*</nbr>");
        itemMarca.setRequired(true);
        itemMarca.setWidth(450);

        itemMarca.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                String tipoSelecionado = (String) event.getValue();
                buscarModelos(Integer.parseInt(tipoSelecionado));
            }
        });
        itemModelo.setAddUnknownValues(false);
        itemModelo.setTitle(Info.titulosMsg.get("modelo"));
        itemModelo.setName("itemModelo");
        itemModelo.setHint("<nbr>*</nbr>");
        itemModelo.setRequired(true);
        itemModelo.setWidth(450);

        itemModelo.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                String tipoSelecionado = (String) event.getValue();
                buscarAno(Integer.parseInt(tipoSelecionado));
            }
        });
        itemAno.setAddUnknownValues(false);
        itemAno.setTitle(Info.titulosMsg.get("ano"));
        itemAno.setName("itemAno");
        itemAno.setHint("<nbr>*</nbr>");
        itemAno.setRequired(true);
        itemAno.setWidth(450);

        final TextItem cor = new TextItem();
        cor.setName("cor");
        cor.setTitle(Info.titulosMsg.get("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 DateItem dataAdesao = new DateItem();
        dataAdesao.setTitle(Info.titulosMsg.get("dataAdesao"));
        dataAdesao.setName("dataAdesao");
        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 ComboBoxItem ativo = new ComboBoxItem();
        ativo.setAddUnknownValues(false);
        ativo.setTitle(Info.titulosMsg.get("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(Info.titulosMsg.get("desconto"));
        desconto.setKeyPressFilter("[0-9]");
        desconto.setValue(Info
                .formataSaldo(Info.formataDecimal(Double.parseDouble((dadosVeiculo.get(0).get("desconto") == null
                        || dadosVeiculo.get(0).get("desconto").equalsIgnoreCase("")) ? "0"
                                : dadosVeiculo.get(0).get("desconto")))));
        desconto.setWidth(450);
        desconto.setDisabled(true);
        if (Info.usuarioLogado.containsKey("4")) {
            desconto.setDisabled(false);
        }
        tipoCobranca.setTitle(Info.titulosMsg.get("tipoCobranca"));
        tipoCobranca.setName("tipoCobranca");
        //GWT.log("dadosVeiculoCopia.get(0).get(\"codPlano\") : "+dadosVeiculoCopia.get(0).get("codPlano"));
        //GWT.log("dadosVeiculoCopia.get(0).get(\"codTc\") : "+dadosVeiculoCopia.get(0).get("codTc"));
        Info.dbService.buscarTodosTipoCobranca(Integer.parseInt(dadosVeiculoCopia.get(0).get("codPlano")),
                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", Info.titulosMsg.get("naoHaTipoCobranca"));
                            tipoCobranca.setValueMap(tpCob);
                            tipoCobranca.setValue("0");

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

        numeroParcelas.setName("numeroParcelas");
        numeroParcelas.setTitle(Info.titulosMsg.get("numeroParcela"));
        numeroParcelas.setMultiple(true);
        numeroParcelas.setHint("<nbr>*</nbr>");
        //numeroParcelas.setRequired(true);
        numeroParcelas.setWidth(450);
        numeroParcelas.setHeight(100);
        numeroParcelas.setMultipleAppearance(MultipleAppearance.GRID);

        final TextAreaItem itemOutraVenda = new TextAreaItem();
        itemOutraVenda.setTitle(Info.titulosMsg.get("descricao"));
        itemOutraVenda.setName("itemOutraVenda");
        itemOutraVenda.setPrintFullText(false);
        itemOutraVenda.setWidth(450);
        itemOutraVenda.setHeight(60);
        itemOutraVenda.setValue("");

        tipoCobranca.addChangeHandler(new ChangeHandler() {

            @Override
            public void onChange(ChangeEvent event) {

                String selectedItem = (String) event.getValue();
                if (selectedItem.equalsIgnoreCase("6") || selectedItem.equalsIgnoreCase("7")) {
                    formEditVeiculo.hideItem("numeroParcelas");
                    formEditVeiculo.showItem("itemOutraVenda");
                    numeroParcelas.setRequired(false);
                    itemOutraVenda.setRequired(true);
                } else {
                    formEditVeiculo.showItem("numeroParcelas");
                    formEditVeiculo.hideItem("itemOutraVenda");
                    numeroParcelas.setRequired(true);
                    itemOutraVenda.setRequired(false);
                    numeroDeParcelas(selectedItem);
                }
            }
        });
        final TextAreaItem observacoes = new TextAreaItem();
        observacoes.setTitle(Info.titulosMsg.get("observacoes"));
        observacoes.setName("observacoes");
        observacoes.setPrintFullText(false);
        observacoes.setWidth(450);
        observacoes.setHeight(60);
        observacoes.setValue(dadosVeiculo.get(0).get("observacoes"));

        //final SelectItem itemPessoasAutorizadas = new SelectItem();
        itemPessoasAutorizadas.setTitle("Pessoas autorizadas");
        itemPessoasAutorizadas.setName("pessoasAutorizadas");
        itemPessoasAutorizadas.setMultiple(true);
        itemPessoasAutorizadas.setMultipleAppearance(MultipleAppearance.PICKLIST);
        itemPessoasAutorizadas.setTooltip("Pessoas autorizadas a rastrear os veculos do cliente");
        pessoasAutorizadasMap = new LinkedHashMap<>();
        Info.dbService.buscarPessoasAutorizadasPorCliente(codigoCliente,
                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) {
                            //arrayPessoasAutorizadas = result;
                            tamanhoSelecionados = result.size();
                            //com.google.gwt.core.shared.GWT.log(" " + arrayPessoasAutorizadas);
                            TreeMap<String, String> pesAux = new TreeMap<>();
                            for (TreeMap<String, String> pes : result) {
                                if (pesAux.get(pes.get("codPessoa")) == null) {
                                    //GWT.log("codPessoa: "+pes.get("codPessoa")); 
                                    pessoasAutorizadasMap.put(pes.get("codPessoa"), pes.get("nome"));
                                    pesAux.put(pes.get("codPessoa"), pes.get("codPessoa"));
                                    arrayPessoasAutorizadas.add(pes);
                                }
                            }
                            itemPessoasAutorizadas.setValueMap(pessoasAutorizadasMap);
                            //itemPessoasAutorizadas.setValue(result.get(0).get("codPessoa"));
                            /*codPessoaAutorizada = Integer.parseInt(result.get(0).get("codPessoa"));
                             //TreeMap<String, String> pAux = new TreeMap<String, String>();
                             for (TreeMap<String, String> p : result) {
                             if (Integer.parseInt(p.get("codPessoa")) == codPessoaAutorizada && !pAux.containsKey(p.get("codPessoa"))) {
                             Record registro = new Record();
                             registro.setAttribute("codigoInterface", Integer.parseInt(p.get("codPessoa")));
                             registro.setAttribute("codigo", Integer.parseInt(p.get("codPessoa")));
                             registro.setAttribute("nomePes", p.get("nome"));
                             registro.setAttribute("telefonePes", (p.get("telefone") == null) ? "Sem informao" : Info.formataTelefone(p.get("telefone")));
                             //registro.setAttribute("telefone", (p.get("telefone") == null) ? "Sem informao" : p.get("telefone"));
                             registro.setAttribute("senha", p.get("senha"));
                             registro.setAttribute("senhaMascara", "********");
                             registro.setAttribute("descricaoPes", (p.get("descricao") == null) ? "Sem informao" : p.get("descricao"));
                             listPesAut.addData(registro);
                             pAux.put(p.get("codPessoa"), p.get("codPessoa"));
                             }
                             }*/
                        } else {
                            pessoasAutorizadasMap.put("0", "No h pessoas autorizadas a rastrear");
                            itemPessoasAutorizadas.setValueMap(pessoasAutorizadasMap);
                            itemPessoasAutorizadas.setValue("0");
                            //codPessoaAutorizada = 0;
                            itemPessoasAutorizadas.setDisabled(true);
                        }
                    }
                });
        itemPessoasAutorizadas.setWidth(450);
        itemPessoasAutorizadas.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {
                //com.google.gwt.core.shared.GWT.log("Evento : " + event.getValue() + " - "+ arrayPessoasAutorizadas);
                if (event.getValue() == null) {
                    pAux.clear();
                    listPesAut.setData(new Record[0]);
                    String pessoasAutorizadosRastrear[] = itemPessoasAutorizadas.getValues();
                    //pessoasSelecionadas  = itemPessoasAutorizadas.getValues();
                    /*TreeMap<String, String> pAux = new TreeMap<String, String>();
                     for (int i = 0; i < arrayPessoasAutorizadas.size(); i++) {
                     // for (int j = 0; j < pessoasAutorizadosRastrear.length; j++) {
                     if (!pAux.containsKey(arrayPessoasAutorizadas.get(i).get("codPessoa"))) {
                     Record registro = new Record();
                     registro.setAttribute("antiga", (arrayPessoasAutorizadas.get(i).containsKey("antiga") ? "1" : "0"));
                     registro.setAttribute("codigoInterface", Integer.parseInt(arrayPessoasAutorizadas.get(i).get("codPessoa")));
                     registro.setAttribute("codigo", (Integer.parseInt(arrayPessoasAutorizadas.get(i).get("codPessoa")) < 0) ? 0 : Integer.parseInt(arrayPessoasAutorizadas.get(i).get("codPessoa")));
                     registro.setAttribute("nomePes", arrayPessoasAutorizadas.get(i).get("nome"));
                     registro.setAttribute("telefonePes", (arrayPessoasAutorizadas.get(i).get("telefone") == null) ? "Sem informao" : Info.formataTelefone(arrayPessoasAutorizadas.get(i).get("telefone")));
                     //registro.setAttribute("telefone", (arrayPessoasAutorizadas.get(i).get("telefone") == null) ? "Sem informao" : arrayPessoasAutorizadas.get(i).get("telefone"));
                     registro.setAttribute("senha", arrayPessoasAutorizadas.get(i).get("senha"));
                     registro.setAttribute("senhaMascara", "********");
                     registro.setAttribute("descricaoPes", (arrayPessoasAutorizadas.get(i).get("descricao") == null) ? "Sem informao" : arrayPessoasAutorizadas.get(i).get("descricao"));
                     listPesAut.addData(registro);
                     pAux.put(arrayPessoasAutorizadas.get(i).get("codPessoa"), arrayPessoasAutorizadas.get(i).get("codPessoa"));
                     }
                     //}
                     }*/
                } else {
                    pAux.clear();
                    listPesAut.setData(new Record[0]);
                    String pessoasAutorizadosRastrear[] = itemPessoasAutorizadas.getValues();
                    TreeMap<String, String> pAux = new TreeMap<>();
                    for (int i = 0; i < arrayPessoasAutorizadas.size(); i++) {
                        for (int j = 0; j < pessoasAutorizadosRastrear.length; j++) {
                            if (pessoasAutorizadosRastrear[j]
                                    .equalsIgnoreCase(arrayPessoasAutorizadas.get(i).get("codPessoa"))
                                    && !pAux.containsKey(arrayPessoasAutorizadas.get(i).get("codPessoa"))
                                    || Integer.parseInt(arrayPessoasAutorizadas.get(i).get("codPessoa")) < 0
                                            && !pAux.containsKey(arrayPessoasAutorizadas.get(i).get("codPessoa"))) {
                                Record registro = new Record();
                                //GWT.log(" "+arrayPessoasAutorizadas.get(i).containsKey("antiga"));
                                registro.setAttribute("antiga",
                                        (arrayPessoasAutorizadas.get(i).containsKey("antiga") ? "1" : "0"));
                                registro.setAttribute("codigoInterface",
                                        Integer.parseInt(arrayPessoasAutorizadas.get(i).get("codPessoa")));
                                registro.setAttribute("codigo",
                                        (Integer.parseInt(arrayPessoasAutorizadas.get(i).get("codPessoa")) < 0) ? 0
                                                : Integer
                                                        .parseInt(arrayPessoasAutorizadas.get(i).get("codPessoa")));
                                registro.setAttribute("nomePes", arrayPessoasAutorizadas.get(i).get("nome"));
                                registro.setAttribute("telefonePes",
                                        (arrayPessoasAutorizadas.get(i).get("telefone") == null
                                                || arrayPessoasAutorizadas.get(i).get("telefone")
                                                        .equalsIgnoreCase("")) ? "Sem informao"
                                                                : Info.formataTelefone(arrayPessoasAutorizadas
                                                                        .get(i).get("telefone")));
                                registro.setAttribute("telefone",
                                        (arrayPessoasAutorizadas.get(i).get("telefone") == null
                                                || arrayPessoasAutorizadas.get(i).get("telefone")
                                                        .equalsIgnoreCase("")) ? "Sem informao"
                                                                : arrayPessoasAutorizadas.get(i).get("telefone"));
                                registro.setAttribute("senha", arrayPessoasAutorizadas.get(i).get("senha"));
                                registro.setAttribute("senhaMascara", arrayPessoasAutorizadas.get(i).get("senha"));
                                registro.setAttribute("descricaoPes",
                                        (arrayPessoasAutorizadas.get(i).get("descricao") == null)
                                                ? "Sem informao"
                                                : arrayPessoasAutorizadas.get(i).get("descricao"));
                                listPesAut.addData(registro);
                                pAux.put(arrayPessoasAutorizadas.get(i).get("codPessoa"),
                                        arrayPessoasAutorizadas.get(i).get("codPessoa"));
                            }
                        }

                    }
                }
            }
        });

        gruposCliente.setTitle(Info.titulosMsg.get("tituloGrupo"));
        gruposCliente.setRequired(true);
        gruposCliente.setName("gruposCliente");
        gruposCliente.setMultiple(true);
        gruposCliente.setMultipleAppearance(MultipleAppearance.PICKLIST);
        gruposCliente.setAnimatePickList(true);
        final ArrayList<TreeMap<String, String>> grupoHasVeic = new ArrayList<>();
        final String grupRast[] = new String[gruposAutorizadosRastrear.size()];

        TreeMap<String, String> grupoAuxiliar = new TreeMap<>();
        for (int i = 0; i < gruposAutorizadosRastrear.size(); i++) {
            if (grupoAuxiliar.get(gruposAutorizadosRastrear.get(i).get("grupoGv")) == null) {
                grupRast[i] = gruposAutorizadosRastrear.get(i).get("grupoGv");
                TreeMap<String, String> grupVeic = new TreeMap<>();
                grupVeic.put("grupoGv", gruposAutorizadosRastrear.get(i).get("grupoGv"));
                grupVeic.put("veiculoGv", gruposAutorizadosRastrear.get(i).get("veiculoGv"));
                grupoHasVeic.add(grupVeic);
                grupoAuxiliar.put(gruposAutorizadosRastrear.get(i).get("grupoGv"),
                        gruposAutorizadosRastrear.get(i).get("grupoGv"));
            }
        }

        Info.dbService.buscarGrupoPorCliente(codigoCliente,
                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> user = new LinkedHashMap<>();
                        if (result != null) {
                            for (TreeMap<String, String> u : result) {
                                user.put(u.get("codGrupo"), u.get("nome"));
                            }
                            gruposCliente.setValueMap(user);
                            gruposCliente.setValues(grupRast);
                        } else {
                            user.put("0", Info.titulosMsg.get("naoHaGrupo"));
                            gruposCliente.setValueMap(user);
                            gruposCliente.setValue("0");

                        }
                    }
                });
        gruposCliente.setHint("<nbr>*</nbr>");
        //gruposCliente.setRequired(true);
        gruposCliente.setWidth(450);
        gruposCliente.setTooltip(Info.titulosMsg.get("primeiroGrupoObrigatorio"));
        //        gruposCliente.addChangedHandler(new ChangedHandler() {
        //
        //            @Override
        //            public void onChanged(final ChangedEvent event) {
        //
        //                Info.dbService.buscarGrupoPorCliente(Integer.parseInt(cliente.getValueAsString()), new AsyncCallback<ArrayList<TreeMap<String, String>>>() {
        //
        //                    @Override
        //                    public void onFailure(Throwable caught) {
        //                        throw new UnsupportedOperationException("Not supported yet. usurio cliente"); //To change body of generated methods, choose Tools | Templates.
        //                    }
        //
        //                    @Override
        //                    public void onSuccess(ArrayList<TreeMap<String, String>> result) {
        //
        //                        LinkedHashMap<String, String> user = new LinkedHashMap<>();
        //                        if (result != null) {
        //                            for (TreeMap<String, String> u : result) {
        //                                user.put((String) u.get("codGrupo"), (String) u.get("nome"));
        //                            }
        //                            gruposCliente.setValueMap(user);
        //                            gruposCliente.setValue(String.valueOf(result.get(0).get("codGrupo")));
        //                            if (event.getValue() == null || (!String.valueOf(event.getValue()).contains(String.valueOf(result.get(0).get("codGrupo"))))) {
        //                                gruposCliente.redraw();
        //                                gruposCliente.setValue(String.valueOf(result.get(0).get("codGrupo")));
        //                            }
        //                        } else {
        //                            user.put("0", Info.titulosMsg.get("clienteSemGrupo"));
        //                            gruposCliente.setValueMap(user);
        //                            gruposCliente.setValue("0");
        //                        }
        //                    }
        //                });
        //            }
        //        });
        //Componentes da Tab
        final SectionStack novoVeiculo = new SectionStack();
        //Botes
        IButton salvar = new IButton(Info.titulosMsg.get("tituloSalvar"));
        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 (dadosVeiculo.get(0).get("codPlano").equalsIgnoreCase("1")) {
            Info.dbService.buscarIndicacoesPorVeiculo(Integer.parseInt(dadosVeiculo.get(0).get("codVeiculo")),
                    new AsyncCallback<Integer>() {

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

                        @Override
                        public void onSuccess(Integer numeroDeIndicacoes) {
                            double master = Info
                                    .formataDecimal(Double.parseDouble(dadosVeiculo.get(0).get("valorPlano")))
                                    - (Info.formataDecimal(Double.parseDouble(dadosVeiculo.get(0).get("desconto"))))
                                    - ((Info.formataDecimal(
                                            Double.parseDouble(dadosVeiculo.get(0).get("valorPlano"))) * 0.1)
                                            * numeroDeIndicacoes);
                            valorMensalidade.redraw();
                            valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                                    + Info.formataSaldo(Info.formataDecimal(master)) + "</h3></strong>");
                        }
                    });
        } else {
            double comodato = Double.parseDouble(dadosVeiculo.get(0).get("valorPlano"))
                    - (Float.parseFloat(dadosVeiculo.get(0).get("desconto")));
            valorMensalidade.redraw();
            valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                    + Info.formataSaldo(Info.formataDecimal(comodato)) + "</h3></strong>");
        }
        desconto.addKeyPressHandler(new KeyPressHandler() {
            @Override
            public void onKeyPress(KeyPressEvent event) {
                String tecla;
                tecla = event.getKeyName();
                String aux = "";
                if (event.getCharacterValue() != null && event.getCharacterValue() >= 48
                        && event.getCharacterValue() <= 57) {
                    aux = Info.FormataMoeda(
                            (desconto.getValueAsString() != null) ? desconto.getValueAsString() : "0", ".", ",",
                            tecla);
                    flagItemValor = true;
                }
                campo = aux;
            }
        });
        //Pega o Valor de desconto digitado pelo Usurio
        desconto.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {

                if (flagItemValor) {
                    desconto.setValue(campo);
                }
                flagItemValor = false;
                if (desconto.getDisplayValue() != null && desconto.getDisplayValue().length() > 0) {
                    if (tipoPlano.getValueAsString().equals("1")) {
                        Info.dbService.buscarIndicacoesPorVeiculo(
                                Integer.parseInt(dadosVeiculo.get(0).get("codVeiculo")),
                                new AsyncCallback<Integer>() {

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

                                    @Override
                                    public void onSuccess(Integer numeroDeIndicacoes) {
                                        double master = Info.formataDecimal(planoMaster)
                                                - (Info.formataDecimal(Double.parseDouble(desconto.getDisplayValue()
                                                        .replaceAll("\\.", "").replaceAll(",", "\\."))))
                                                - ((Info.formataDecimal(planoMaster) * 0.1) * numeroDeIndicacoes);
                                        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$"
                                                + Info.formataSaldo(Info.formataDecimal(master))
                                                + "</h3></strong>");
                                    }
                                });
                    } else {
                        double comodato = planoComodato - (Double.parseDouble(
                                desconto.getDisplayValue().replaceAll("\\.", "").replaceAll(",", "\\.")));
                        valorMensalidade.redraw();
                        valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                                + Info.formataSaldo(Info.formataDecimal(comodato)) + "</h3></strong>");

                    }
                } else {
                    if (tipoPlano.getValueAsString().equals("1")) {
                        Info.dbService.buscarIndicacoesPorVeiculo(
                                Integer.parseInt(dadosVeiculo.get(0).get("codVeiculo")),
                                new AsyncCallback<Integer>() {

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

                                    @Override
                                    public void onSuccess(Integer numeroDeIndicacoes) {
                                        double master = Info.formataDecimal(planoMaster) - (Info.formataDecimal(0))
                                                - ((Info.formataDecimal(planoMaster) * 0.1) * numeroDeIndicacoes);
                                        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$"
                                                + Info.formataSaldo(Info.formataDecimal(master))
                                                + "</h3></strong>");
                                    }
                                });
                    } else {
                        double comodato = planoComodato - (0);
                        valorMensalidade.redraw();
                        valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                                + Info.formataSaldo(Info.formataDecimal(comodato)) + "</h3></strong>");

                    }
                }
            }

        });
        tipoPlano.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {

                if (tipoPlano.getValueAsString().equalsIgnoreCase("1")) {
                    formEditVeiculo.showItem("numeroParcelas");
                    formEditVeiculo.hideItem("itemOutraVenda");
                    numeroParcelas.setRequired(true);
                    itemOutraVenda.setRequired(false);
                    tipoCobranca.redraw();
                    Info.dbService.buscarTodosTipoCobranca(Integer.parseInt(tipoPlano.getValueAsString()),
                            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(result.get(0).get("codTipoCobranca"));
                                        numeroDeParcelas(result.get(0).get("codTipoCobranca"));
                                        Info.dbService.buscarIndicacoesPorVeiculo(
                                                Integer.parseInt(dadosVeiculo.get(0).get("codVeiculo")),
                                                new AsyncCallback<Integer>() {

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

                                                    @Override
                                                    public void onSuccess(Integer numeroDeIndicacoes) {
                                                        if (desconto.getDisplayValue() != null
                                                                && desconto.getDisplayValue().length() > 0) {
                                                            double master = Info.formataDecimal(planoMaster)
                                                                    - (Info.formataDecimal(Double
                                                                            .parseDouble(desconto.getDisplayValue()
                                                                                    .replaceAll("\\.", "")
                                                                                    .replaceAll(",", "\\."))))
                                                                    - ((Info.formataDecimal(planoMaster) * 0.1)
                                                                            * numeroDeIndicacoes);
                                                            valorMensalidade.setContents("<strong><h3>"
                                                                    + Info.titulosMsg.get("valorMensalidade")
                                                                    + Info.formataSaldo(Info.formataDecimal(master))
                                                                    + "</h3></strong>");
                                                        } else {
                                                            valorMensalidade.redraw();
                                                            valorMensalidade.setContents("<strong><h3>"
                                                                    + Info.titulosMsg.get("valorMensalidade")
                                                                    + Info.formataSaldo(
                                                                            Info.formataDecimal(planoMaster))
                                                                    + "</h3></strong>");
                                                        }
                                                    }
                                                });
                                    } else {
                                        tpCob.put("0", Info.titulosMsg.get("naoHaTipoCobranca"));
                                        tipoCobranca.setValueMap(tpCob);
                                        tipoCobranca.setValue("0");

                                    }
                                }
                            });
                } else {
                    formEditVeiculo.showItem("numeroParcelas");
                    formEditVeiculo.hideItem("itemOutraVenda");
                    numeroParcelas.setRequired(false);
                    itemOutraVenda.setRequired(true);
                    tipoCobranca.redraw();
                    Info.dbService.buscarTodosTipoCobranca(Integer.parseInt(tipoPlano.getValueAsString()),
                            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(result.get(0).get("codTipoCobranca"));
                                        numeroDeParcelas(result.get(0).get("codTipoCobranca"));
                                        if (desconto.getDisplayValue() != null
                                                && desconto.getDisplayValue().length() > 0) {
                                            double comodato = planoComodato
                                                    - (Double.parseDouble(desconto.getDisplayValue()
                                                            .replaceAll("\\.", "").replaceAll(",", "\\.")));
                                            valorMensalidade.redraw();
                                            valorMensalidade.setContents(
                                                    "<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                                                            + Info.formataSaldo(Info.formataDecimal(comodato))
                                                            + "</h3></strong>");

                                        } else {
                                            valorMensalidade.redraw();
                                            valorMensalidade.setContents(
                                                    "<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                                                            + Info.formataSaldo(Info.formataDecimal(planoComodato))
                                                            + "</h3></strong>");
                                        }
                                    } else {
                                        tpCob.put("0", Info.titulosMsg.get("naoHaTipoCobranca"));
                                        tipoCobranca.setValueMap(tpCob);
                                        tipoCobranca.setValue("0");

                                    }
                                }
                            });
                }
            }
        });
        // Inicio dos Botes de Adicionar e Remover

        //addpadLig.setSrc("[SKIN]actions/add.png");
        //addpadLig.setSize(16);
        //        addpadLig.setShowFocused(false);
        //        addpadLig.setShowRollOver(false);
        //        addpadLig.setShowDown(false);
        //        addpadLig.setTooltip(Info.titulosMsg.get("adicionarPadraoLigacao"));
        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(Info.titulosMsg.get("adicionarPessoaAutorizada"));
        // FIm dos Botes de Adicionar
        //List Grid Padro de Ligao
        ListGridField codigoPad = new ListGridField("codPad", Info.titulosMsg.get("tituloCodigo"));
        codigoPad.setHidden(true);
        ListGridField corFio = new ListGridField("corFio", Info.titulosMsg.get("corFio"));
        corFio.setAlign(Alignment.CENTER);
        //Coluna sinal
        ListGridField sinal = new ListGridField("sinalPad", Info.titulosMsg.get("sinal"));
        sinal.setAlign(Alignment.CENTER);
        ;
        //coluna Padro Veiculo
        ListGridField padrao = new ListGridField("padraoLd", Info.titulosMsg.get("padrao"));
        padrao.setAlign(Alignment.CENTER);
        //coluna funo
        ListGridField funcao = new ListGridField("funcaoPad", Info.titulosMsg.get("funcao"));
        funcao.setAlign(Alignment.CENTER);
        //coluna ativo
        ListGridField fieldAtivo = new ListGridField("ativoPad", Info.titulosMsg.get("ativo"));
        fieldAtivo.setAlign(Alignment.CENTER);
        //coluna descricao
        ListGridField descricaoPl = new ListGridField("descricaoPad", Info.titulosMsg.get("descricao"));
        descricaoPl.setAlign(Alignment.CENTER);
        /*ListGridField editarPl = new ListGridField("editar", Info.titulosMsg.get("tituloEditar"));
         editarPl.setAlign(Alignment.CENTER);
         editarPl.setWidth(35);
         final ListGridField excluirPl = new ListGridField("excluir", Info.titulosMsg.get("tituloExcluir"));
         excluirPl.setAlign(Alignment.CENTER);
         excluirPl.setWidth(40);*/
        //cria grid Padro de Ligao
        listPadLig.setCanPickFields(false);
        listPadLig.setFields(codigoPad, corFio, sinal, padrao, funcao, fieldAtivo, descricaoPl);
        listPadLig.setSortDirection(SortDirection.ASCENDING);
        listPadLig.setSortField("codPad");
        listPadLig.setCanSort(false);
        listPadLig.setShowRecordComponents(true);
        listPadLig.setShowRecordComponentsByCell(true);
        listPadLig.setShowAllRecords(true);
        listPadLig.setCanResizeFields(true);
        listPadLig.setSelectionType(SelectionStyle.SINGLE);

        final ArrayList<TreeMap<String, String>> padroesDeLigAtual = new ArrayList<>();

        TreeMap<String, String> codPadraoLigacao = new TreeMap<>();
        for (TreeMap<String, String> padLig : dadosVeiculo) {
            if (padLig.get("codPad") != null && codPadraoLigacao.get(padLig.get("codPad")) == null) {
                Record padLigacao = new Record();
                padLigacao.setAttribute("codPad", Integer.parseInt(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"));
                TreeMap<String, String> padraAtual = new TreeMap<String, String>();
                padraAtual.put("codPadrao", padLig.get("codPad"));
                padroesDeLigAtual.add(padraAtual);
            }
        }

        //        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
        final SectionStackSection padLigSection = new SectionStackSection();
        padLigSection.setTitle(Info.titulosMsg.get("padraoDeLigacao"));
        padLigSection.setItems(listPadLig);
        //padLigSection.setControls(addpadLig);
        padLigSection.setExpanded(true);
        //criando coluna para grid
        ListGridField antiga = new ListGridField("antiga", Info.titulosMsg.get("antiga"));
        antiga.setHidden(true);
        antiga.setAlign(Alignment.CENTER);
        ListGridField codigoPesInterface = new ListGridField("codigoInterface",
                Info.titulosMsg.get("tituloCodigo"));
        codigoPesInterface.setHidden(true);
        codigoPesInterface.setAlign(Alignment.CENTER);
        ListGridField codigoPesAut = new ListGridField("codigo", Info.titulosMsg.get("tituloCodigo"));
        codigoPesAut.setHidden(true);
        ListGridField nomePesAut = new ListGridField("nomePes", Info.titulosMsg.get("tituloNome"));
        nomePesAut.setWidth(400);
        nomePesAut.setAlign(Alignment.CENTER);
        //pega o valor do nmero do telefone
        ListGridField telefonePesAut = new ListGridField("telefonePes", Info.titulosMsg.get("tituloNumero"));
        telefonePesAut.setAlign(Alignment.CENTER);
        ListGridField senhaPes = new ListGridField("senha", Info.titulosMsg.get("tituloSenha"));
        senhaPes.setAlign(Alignment.CENTER);
        senhaPes.setHidden(true);
        ListGridField senhaPesAutMascara = new ListGridField("senhaMascara", Info.titulosMsg.get("tituloSenha"));
        senhaPesAutMascara.setAlign(Alignment.CENTER);
        //pega o valor da descrio
        ListGridField descPesAut = new ListGridField("descricaoPes", Info.titulosMsg.get("descricao"));
        descPesAut.setAlign(Alignment.CENTER);
        ListGridField editarPesAut = new ListGridField("editar", Info.titulosMsg.get("tituloEditar"));
        editarPesAut.setAlign(Alignment.CENTER);
        editarPesAut.setWidth(35);
        final ListGridField excluirPesAut = new ListGridField("excluir", Info.titulosMsg.get("tituloExcluir"));
        excluirPesAut.setAlign(Alignment.CENTER);
        excluirPesAut.setWidth(40);
        //adicionando na lista grid de Pessoa Autorizada
        listPesAut.setCanPickFields(false);
        listPesAut.setFields(codigoPesInterface, codigoPesAut, antiga, nomePesAut, telefonePesAut, senhaPes,
                senhaPesAutMascara, descPesAut, editarPesAut, excluirPesAut);
        listPesAut.setSortDirection(SortDirection.ASCENDING);
        listPesAut.setSortField("codigo");
        listPesAut.setCanSort(false);
        listPesAut.setShowRecordComponents(true);
        listPesAut.setShowRecordComponentsByCell(true);
        listPesAut.setShowAllRecords(true);
        listPesAut.setCanResizeFields(true);
        listPesAut.setSelectionType(SelectionStyle.SINGLE);

        TreeMap<String, String> codPessoaAutorizada = new TreeMap<>();
        for (TreeMap<String, String> pessoAutorizada : dadosVeiculo) {
            if (pessoAutorizada.get("codPes") != null && pAux.get(pessoAutorizada.get("codPes")) == null) {
                Record pessoAut = new Record();
                pessoAut.setAttribute("antiga", "1");
                pessoAut.setAttribute("codigoInterface",
                        (pessoAutorizada.get("codPes") == null) ? "Sem informao"
                                : Integer.parseInt(pessoAutorizada.get("codPes")));
                pessoAut.setAttribute("codigo", (pessoAutorizada.get("codPes") == null) ? "Sem informao"
                        : Integer.parseInt(pessoAutorizada.get("codPes")));
                pessoAut.setAttribute("nomePes",
                        (pessoAutorizada.get("nomePes").equalsIgnoreCase("null")) ? "Sem informao"
                                : pessoAutorizada.get("nomePes"));
                pessoAut.setAttribute("telefonePes",
                        (pessoAutorizada.get("telefonePes") == null
                                || pessoAutorizada.get("telefonePes").equalsIgnoreCase("")) ? "Sem informao"
                                        : Info.formataTelefone(pessoAutorizada.get("telefonePes")));
                pessoAut.setAttribute("senha",
                        (pessoAutorizada.get("senhaPes") == null
                                || pessoAutorizada.get("senhaPes").equalsIgnoreCase("")) ? "Sem informao"
                                        : pessoAutorizada.get("senhaPes"));
                pessoAut.setAttribute("senhaMascara",
                        (pessoAutorizada.get("senhaPes") == null
                                || pessoAutorizada.get("senhaPes").equalsIgnoreCase("")) ? "Sem informao"
                                        : pessoAutorizada.get("senhaPes"));
                pessoAut.setAttribute("descricaoPes",
                        ((pessoAutorizada.get("descricaoPes") == null
                                || pessoAutorizada.get("descricaoPes").equalsIgnoreCase("")) ? "Sem informao"
                                        : pessoAutorizada.get("descricaoPes")));
                listPesAut.addData(pessoAut);
                //GWT.log("PEssoa Autorizada : "+pessoAutorizada);
                TreeMap<String, String> pes = new TreeMap<>();
                pes.put("antiga", "1");
                pes.put("codPessoa", pessoAutorizada.get("codPes"));
                pes.put("nome", pessoAutorizada.get("nomePes"));
                pes.put("telefone", pessoAutorizada.get("telefonePes"));
                pes.put("senha", pessoAutorizada.get("senhaPes"));
                pes.put("descricao", pessoAutorizada.get("descricaoPes"));
                arrayPessoasAutorizadas.add(pes);
                //codPessoaAutorizada.put(pessoAutorizada.get("codPes"), pessoAutorizada.get("codPes"));
                pAux.put(pessoAutorizada.get("codPes"), pessoAutorizada.get("codPes"));

            }
        }
        if (arrayPessoasAutorizadas.size() > 0) {
            pessoasAntigas = pessoasSelecionadas = new String[arrayPessoasAutorizadas.size()];
            for (int i = 0; i < arrayPessoasAutorizadas.size(); i++) {
                pessoasSelecionadas[i] = arrayPessoasAutorizadas.get(i).get("codPessoa");
                pessoasAntigas[i] = arrayPessoasAutorizadas.get(i).get("codPessoa");
            }
            itemPessoasAutorizadas.setValues(pessoasSelecionadas);
        } else {
            pessoasAntigas = new String[0];
            pessoasSelecionadas = new String[0];
        }
        //GWT.log("arrayPessoasAutorizadas : "+arrayPessoasAutorizadas + " pessoasSelecionadas :  "+pessoasSelecionadas);  
        //criando seo
        final SectionStackSection pesAutSection = new SectionStackSection();
        pesAutSection.setTitle(Info.titulosMsg.get("pessoaAutorizada"));
        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, arrayPessoasAutorizadas, cliente.getValueAsString(),
                        itemPessoasAutorizadas, pessoasAutorizadasMap);
                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, tipoVeiculo, itemIconeVeiculo, itemMarca, fabricante, itemModelo, modelo,
                itemAno, ano, cor, dataAdesao, ativo, desconto, tipoCobranca, numeroParcelas, itemOutraVenda,
                observacoes, gruposCliente, itemConfiguracao, itemPessoasAutorizadas);

        if (dadosVeiculoCopia.get(0).get("valorParcela") == null) {
            formEditVeiculo.hideItem("numeroParcelas");
            formEditVeiculo.showItem("itemOutraVenda");
            numeroParcelas.setRequired(false);
            itemOutraVenda.setRequired(true);
            itemOutraVenda.setValue(dadosVeiculoCopia.get(0).get("vendaOutra"));
            tipoCobranca.setValue(dadosVeiculoCopia.get(0).get("codTc"));
            if (dadosVeiculoCopia.get(0).get("codPlano").equalsIgnoreCase("1")) {
                tipoCobranca.setValue("6");
            } else {
                tipoCobranca.setValue("7");
            }

        } else {
            formEditVeiculo.showItem("numeroParcelas");
            formEditVeiculo.hideItem("itemOutraVenda");
            numeroParcelas.setRequired(true);
            itemOutraVenda.setRequired(false);
            tipoCobranca.setValue(dadosVeiculoCopia.get(0).get("codTc"));
            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(selectedItem);
        }

        if (dadosVeiculo.get(0).get("codTipo").equalsIgnoreCase("1")) {
            itemIconeVeiculo.setValueMap(valueMap);
            itemIconeVeiculo.setValueIcons(valueIcons);
            formEditVeiculo.showItem("itemMarca");
            formEditVeiculo.showItem("itemModelo");
            formEditVeiculo.showItem("itemAno");
            formEditVeiculo.hideItem("fabricante");
            formEditVeiculo.hideItem("modelo");
            formEditVeiculo.hideItem("ano");
            itemIconeVeiculo.setValue("1");
            itemIconeVeiculo.disable();
        } else if (dadosVeiculo.get(0).get("codTipo").equalsIgnoreCase("2")) {
            itemIconeVeiculo.setValueMap(valueMap);
            itemIconeVeiculo.setValueIcons(valueIcons);
            formEditVeiculo.showItem("itemMarca");
            formEditVeiculo.showItem("itemModelo");
            formEditVeiculo.showItem("itemAno");
            formEditVeiculo.hideItem("fabricante");
            formEditVeiculo.hideItem("modelo");
            formEditVeiculo.hideItem("ano");
            itemIconeVeiculo.setValue("2");
            itemIconeVeiculo.disable();
        } else if (dadosVeiculo.get(0).get("codTipo").equalsIgnoreCase("3")) {
            itemIconeVeiculo.enable();
            itemIconeVeiculo.setValueMap(valueCaminhao);
            itemIconeVeiculo.setValueIcons(valueIconsCaminhao);
            formEditVeiculo.showItem("itemMarca");
            formEditVeiculo.showItem("itemModelo");
            formEditVeiculo.showItem("itemAno");
            formEditVeiculo.hideItem("fabricante");
            formEditVeiculo.hideItem("modelo");
            formEditVeiculo.hideItem("ano");
            itemIconeVeiculo.setValue("3");
        } else if (dadosVeiculo.get(0).get("codTipo").equalsIgnoreCase("4")) {
            itemIconeVeiculo.enable();
            itemIconeVeiculo.setValueMap(valueMap);
            itemIconeVeiculo.setValueIcons(valueIcons);
            formEditVeiculo.hideItem("itemMarca");
            formEditVeiculo.hideItem("itemModelo");
            formEditVeiculo.hideItem("itemAno");
            formEditVeiculo.showItem("fabricante");
            formEditVeiculo.showItem("modelo");
            formEditVeiculo.showItem("ano");
            itemIconeVeiculo.setValue("3");
        }
        novoVeiculo.setSections(formSection, pesAutSection, padLigSection);
        novoVeiculo.setVisibilityMode(VisibilityMode.MULTIPLE);
        novoVeiculo.setAnimateSections(true);
        novoVeiculo.setWidth100();
        novoVeiculo.setHeight100();
        novoVeiculo.setOverflow(Overflow.VISIBLE);
        //GWT.log("Linha 1318 - "+grupoHasVeic);
        salvar.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                GWT.log("Evento click! 1");
                codVeiculoEditado = Integer.parseInt(dadosVeiculo.get(0).get("codVeiculo"));
                GWT.log("Evento click! 2");
                //codVeiculoIndicador = Integer.parseInt(indicado.getValueAsString());
                if (formEditVeiculo.validate() && Integer.parseInt(instalador.getValueAsString()) > 0
                        && codVeiculoEditado != codVeiculoIndicador
                        && Integer.parseInt(equipamento.getValueAsString()) != 0 && validaPlaca && validaChassi
                        && !listPadLig.getRecordList().isEmpty()
                        && !indicado.getValueAsString().equalsIgnoreCase("REP")
                        || formEditVeiculo.validate() && Integer.parseInt(instalador.getValueAsString()) > 0
                                && codVeiculoEditado != codVeiculoIndicador
                                && Integer.parseInt(equipamento.getValueAsString()) == 0 && validaPlaca
                                && validaChassi && listPadLig.getRecordList().isEmpty()
                                && !indicado.getValueAsString().equalsIgnoreCase("REP")) {
                    GWT.log("Evento click! 3");
                    Info.dbService.deletarGrupoHasVeiculo(grupoHasVeic, new AsyncCallback<Boolean>() {

                        @Override
                        public void onSuccess(Boolean result) {
                            GWT.log("Evento click! 4");

                        }

                        @Override
                        public void onFailure(Throwable caught) {
                            // TODO Auto-generated method stub

                        }
                    });
                    GWT.log("Evento click! 5");
                    TreeMap<String, String> veiculo = new TreeMap<>();
                    veiculo.put("codVeiculo", String.valueOf(codVeiculoEditado));
                    veiculo.put("codPlano", tipoPlano.getValueAsString());
                    //veiculo.put("codClienteAntigo", String.valueOf(codigoCliente));
                    veiculo.put("codCliente", cliente.getValueAsString());
                    veiculo.put("codEquipamento", equipamento.getValueAsString());
                    veiculo.put("configuracao", itemConfiguracao.getValueAsString());
                    veiculo.put("codFuncionario", instalador.getValueAsString());
                    veiculo.put("codVeiculoIndicador", indicado.getValueAsString());
                    veiculo.put("placaVelha", dadosVeiculo.get(0).get("placaVeiculo"));
                    veiculo.put("placaNova", placa.getDisplayValue());
                    veiculo.put("codCidade", itemCidade.getValueAsString());
                    veiculo.put("chassi", chassi.getValueAsString());
                    veiculo.put("tipo", tipoVeiculo.getValueAsString());
                    veiculo.put("icone", itemIconeVeiculo.getValueAsString());
                    GWT.log("Evento click! 6");
                    if (tipoVeiculo.getValueAsString().equalsIgnoreCase("4")) {
                        veiculo.put("fabricante", fabricante.getValueAsString());
                        veiculo.put("modelo", modelo.getValueAsString());
                        veiculo.put("ano", ano.getValueAsString());
                    } else {
                        veiculo.put("fabricante", itemMarca.getValueAsString());
                        veiculo.put("modelo", itemModelo.getValueAsString());
                        veiculo.put("ano", itemAno.getValueAsString());
                    }
                    GWT.log("LInha 2068   VE?CULO ATUALIZADO: ");
                    veiculo.put("cor", cor.getValueAsString());
                    Date datadeAdesao = dataAdesao.getValueAsDate();
                    veiculo.put("ativo", ativo.getValueAsString());
                    veiculo.put("desconto",
                            (desconto.getDisplayValue() == null || desconto.getDisplayValue().equalsIgnoreCase("")
                                    || desconto.getDisplayValue().equalsIgnoreCase("0,00")) ? "0"
                                            : desconto.getDisplayValue().replaceAll("\\.", "").replaceAll(",",
                                                    "\\."));
                    veiculo.put("observacoes",
                            (observacoes.getValueAsString() == null) ? "" : observacoes.getValueAsString());
                    GWT.log("LInha 2074   VE?CULO ATUALIZADO: ");
                    //veiculo.put("codParcela", numeroParcelas.getValueAsString());
                    if (tipoCobranca.getValueAsString().equalsIgnoreCase("6")
                            || tipoCobranca.getValueAsString().equalsIgnoreCase("7")) {
                        veiculo.put("tipoVenda", tipoCobranca.getValueAsString());
                        veiculo.put("ParcelaPagamentoCodParcela", itemOutraVenda.getValueAsString());
                    } else {
                        veiculo.put("tipoVenda", tipoCobranca.getValueAsString());
                        veiculo.put("ParcelaPagamentoCodParcela", numeroParcelas.getValueAsString());
                    }
                    GWT.log("LInha 2083   VE?CULO ATUALIZADO: ");
                    final String gruposAutRastrear[] = gruposCliente.getValues();
                    GWT.log("LInha 2085  VE?CULO ATUALIZADO: ");
                    ArrayList<TreeMap<String, String>> padroesLigacaoNovos = new ArrayList<>();
                    // trocando de equipamento //
                    if (!listPadLig.getRecordList().isEmpty()) {
                        GWT.log("LInha 2089   VE?CULO ATUALIZADO: ");
                        ListGridRecord padraos[] = listPadLig.getRecords();
                        for (int i = 0; i < padraos.length; i++) {
                            TreeMap<String, String> treeMapPadLig = new TreeMap<>();
                            //if (Integer.parseInt(padraos[i].getAttributeAsString("codPad")) == 0) {
                            treeMapPadLig.put("corFio", (padraos[i].getAttribute("corFio")));
                            treeMapPadLig.put("sinal",
                                    (padraos[i].getAttribute("sinalPad").equalsIgnoreCase("Positivo") ? "True"
                                            : "False"));
                            treeMapPadLig.put("padrao",
                                    (padraos[i].getAttribute("padraoLd").equalsIgnoreCase("Ligado") ? "True"
                                            : "False"));
                            treeMapPadLig.put("funcao",
                                    (padraos[i].getAttribute("funcaoPad").equalsIgnoreCase("Entrada") ? "True"
                                            : "False"));
                            treeMapPadLig.put("ativo",
                                    (padraos[i].getAttribute("ativoPad").equalsIgnoreCase("Sim") ? "True"
                                            : "False"));
                            treeMapPadLig.put("descricao",
                                    (padraos[i].getAttribute("descricaoPad").equalsIgnoreCase("Sem informao")
                                            ? ""
                                            : padraos[i].getAttribute("descricaoPad")));
                            padroesLigacaoNovos.add(treeMapPadLig);
                            GWT.log("Evento click! 8");
                            // }
                        }
                        GWT.log("Evento click! 9");
                    }
                    ArrayList<TreeMap<String, String>> pessoasNovas = new ArrayList<>();
                    if (!listPesAut.getRecordList().isEmpty()) {
                        GWT.log("Evento click! 10");
                        ListGridRecord pessoas[] = listPesAut.getRecords();
                        for (int i = 0; i < pessoas.length; i++) {
                            TreeMap<String, String> treeMap = new TreeMap<>();
                            //if (pessoas[i].getAttributeAsString("antiga").equalsIgnoreCase("0")) {
                            //GWT.log(" pessoas[i].getAttributeAsString(\"codigo\") : "+pessoas[i].getAttributeAsString("codigo"));
                            //treeMap.put("antiga", pessoas[i].getAttributeAsString("antiga"));
                            treeMap.put("codPessoa", pessoas[i].getAttributeAsString("codigo"));
                            treeMap.put("codVeiculo", String.valueOf(codVeiculoEditado));
                            pessoasNovas.add(treeMap);
                            //} 
                            /*else {
                             treeMap.put("antiga", pessoas[i].getAttributeAsString("antiga"));
                             treeMap.put("codPessoa", pessoas[i].getAttributeAsString("codigo"));
                             pessoasAntigasNovas.add(treeMap);
                             }*/
                            GWT.log("Evento click! 11");
                        }
                        GWT.log("Evento click! 12: " + pessoasNovas);
                    }
                    ////////////////////////////////////////
                    //GWT.log("pessoasNovas - alterarVeiculo : "+ pessoasNovas + " Pessoas antigas : " + pessoasAntigas);
                    Info.dbService.alterarVeiculo(veiculo, gruposAutRastrear, padroesDeLigAtual,
                            padroesLigacaoNovos, pessoasNovas, pessoasAntigas, codigoCliente, datadeAdesao,
                            Integer.parseInt(((dadosVeiculo.get(0).get("codEquipamento") == null) ? "0"
                                    : dadosVeiculo.get(0).get("codEquipamento"))),
                            Integer.parseInt(((dadosVeiculo.get(0).get("configuracao") == null) ? "0"
                                    : dadosVeiculo.get(0).get("configuracao"))),
                            new AsyncCallback<Boolean>() {

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

                                @Override
                                public void onSuccess(Boolean veiculoAtualizado) {
                                    GWT.log("Evento click! 13 " + veiculoAtualizado);
                                    GWT.log("LInha 2140   VE?CULO ATUALIZADO: " + veiculoAtualizado);
                                    if (Integer.parseInt(Info.usuarioLogado.get("codPerfil")) == 2
                                            || Integer.parseInt(Info.usuarioLogado.get("codPerfil")) == 3) {
                                        GWT.log("LInha 2142   VE?CULO ATUALIZADO: ");
                                        Info.dbService.buscarGrupoDoUsuario(
                                                Integer.parseInt(Info.usuarioLogado.get("codUsuario")),
                                                Integer.parseInt(Info.usuarioLogado.get("codPerfil")),
                                                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) {
                                                            GWT.log("LInha 2153   VE?CULO ATUALIZADO: ");
                                                            TabGerenciaGrupoMaster.arrayListGrupos = result;
                                                            TabGerenciaGrupoMaster.listGrupo.redraw();
                                                            TabGerenciaGrupoMaster.listGrupo.setData(new Record[0]);
                                                            TreeMap<String, String> mapAux = new TreeMap<>();
                                                            GWT.log("LInha 2158   VE?CULO ATUALIZADO: ");
                                                            for (TreeMap<String, String> grupo : result) {
                                                                if (mapAux.get(grupo.get("codGrupo")) == null) {
                                                                    GWT.log("LInha 2160   VE?CULO ATUALIZADO: ");
                                                                    Record registro = new Record();
                                                                    registro.setAttribute("codigo", Integer
                                                                            .parseInt(grupo.get("codGrupo")));
                                                                    registro.setAttribute("nome",
                                                                            grupo.get("nomeGrupo"));
                                                                    registro.setAttribute("descricao",
                                                                            grupo.get("descricaoGrupo"));
                                                                    registro.setAttribute("principal", Boolean
                                                                            .parseBoolean(grupo.get("principal")));
                                                                    TabGerenciaGrupoMaster.listGrupo
                                                                            .addData(registro);
                                                                    mapAux.put(grupo.get("codGrupo"),
                                                                            grupo.get("codGrupo"));
                                                                    GWT.log("LInha 2167   VE?CULO ATUALIZADO: ");
                                                                }
                                                            }
                                                            GWT.log("Primeiro IF - Linha 02");
                                                        } else {
                                                            SC.warn("ERRO ao listar grupos de veculos do usurio!");
                                                        }
                                                    }
                                                });
                                    }
                                    GWT.log("LInha 2172   VE?CULO ATUALIZADO: ");
                                    if (veiculoAtualizado) {
                                        GWT.log("LInha 2174   VE?CULO ATUALIZADO: ");
                                        Info.dbService.buscarVeiculoPorCliente(codigoCliente,
                                                new AsyncCallback<TreeMap<String, ArrayList<TreeMap<String, String>>>>() {

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

                                                    @Override
                                                    public void onSuccess(
                                                            TreeMap<String, ArrayList<TreeMap<String, String>>> dadosVeiculoAtualizados) {
                                                        //GWT.log("LInha 0001**   VE?CULO ATUALIZADO: "+dadosVeiculoAtualizados);
                                                        TabBuscarCliente.totalMensalidadesVeiculos = 0;
                                                        GWT.log("LInha 2194   VE?CULO ATUALIZADO: ");
                                                        if (dadosVeiculoAtualizados != null) {
                                                            //GWT.log("LInha 02   VE?CULO ATUALIZADO: ");
                                                            GWT.log("LInha 2197   VE?CULO ATUALIZADO: ");
                                                            tabBuscaCliente.setVeiculos(dadosVeiculoAtualizados);
                                                            //GWT.log("LInha 03   VE?CULO ATUALIZADO: ");
                                                            // edio de veculo //
                                                            GWT.log("LInha 2201   VE?CULO ATUALIZADO: ");
                                                            Info.registrarLog(
                                                                    Integer.parseInt(
                                                                            Info.usuarioLogado.get("codUsuario")),
                                                                    12, new Timestamp(System.currentTimeMillis()),
                                                                    "placa anterior: "
                                                                            + dadosVeiculo.get(0)
                                                                                    .get("placaVeiculo")
                                                                            + " placa atual: "
                                                                            + placa.getDisplayValue()
                                                                            + " cod do veiculo: "
                                                                            + dadosVeiculo.get(0).get("codVeiculo")
                                                                            + " plano anterior: "
                                                                            + dadosVeiculo.get(0).get("codPlano")
                                                                            + " dono anterior: "
                                                                            + String.valueOf(codigoCliente)
                                                                            + "equipamento anterior: "
                                                                            + dadosVeiculo.get(0)
                                                                                    .get("codEquipamento")
                                                                            + "Instalador anterior"
                                                                            + dadosVeiculo.get(0)
                                                                                    .get("codInstalador")
                                                                            + "Estado anterior: "
                                                                            + dadosVeiculo.get(0).get("codEstado")
                                                                            + "cidade anterior: "
                                                                            + dadosVeiculo.get(0).get("codCidade")
                                                                            + "chassi anterior: "
                                                                            + dadosVeiculo.get(0).get("chassi")
                                                                            + "Fabricante anterior: "
                                                                            + dadosVeiculo.get(0).get("fabricante")
                                                                            + "Modelo anterior: "
                                                                            + dadosVeiculo.get(0).get("modelo")
                                                                            + "cor anterior: "
                                                                            + dadosVeiculo.get(0).get("cor")
                                                                            + "ano anterior: "
                                                                            + dadosVeiculo.get(0).get("ano")
                                                                            + "Data de adeso anterior"
                                                                            + DateTimeFormat.getFormat(
                                                                                    com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat.DATE_TIME_SHORT)
                                                                                    .format(new Date(Long.parseLong(
                                                                                            dadosVeiculo.get(0).get(
                                                                                                    "dataAdesao"))))
                                                                            + "ativo anterior: "
                                                                            + dadosVeiculo.get(0).get("ativoVeic")
                                                                            + "desconto anterior: "
                                                                            + dadosVeiculo.get(0).get("desconto")
                                                                            + "Tipo cobrana anterior: "
                                                                            + dadosVeiculoCopia.get(0).get("codTc")
                                                                            + "Numero de parcela anterior: "
                                                                            + dadosVeiculoCopia.get(0)
                                                                                    .get("codParcela")
                                                                            + "Observaes anteriores: "
                                                                            + dadosVeiculo.get(0).get("observacoes")
                                                                            + " plano atual: "
                                                                            + tipoPlano.getValueAsString()
                                                                            + " dono atual: "
                                                                            + cliente.getValueAsString()
                                                                            + "equipamento atual: "
                                                                            + equipamento.getValueAsString()
                                                                            + "Instalador atual"
                                                                            + instalador.getValueAsString()
                                                                            + "Estado atual: "
                                                                            + itemEstado.getValueAsString()
                                                                            + "cidade atual: "
                                                                            + itemCidade.getValueAsString()
                                                                            + "chassi atual: "
                                                                            + chassi.getValueAsString()
                                                                            + "Fabricante atual: "
                                                                            + itemMarca.getDisplayValue()
                                                                            + "Modelo atual: "
                                                                            + itemModelo.getDisplayValue()
                                                                            + "cor atual: " + cor.getValueAsString()
                                                                            + "ano atual: "
                                                                            + itemAno.getDisplayValue()
                                                                            + "Data de adeso atual"
                                                                            + DateTimeFormat.getFormat(
                                                                                    com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat.DATE_TIME_SHORT)
                                                                                    .format(dataAdesao
                                                                                            .getValueAsDate())
                                                                            + "ativo atual: "
                                                                            + ativo.getValueAsString()
                                                                            + "desconto atual: "
                                                                            + desconto.getValueAsString()
                                                                            + "Tipo cobrana atual: "
                                                                            + tipoCobranca.getValueAsString()
                                                                            + "Numero de parcela atual: "
                                                                            + numeroParcelas.getValueAsString()
                                                                            + "Observaes atuais: "
                                                                            + observacoes.getValueAsString());
                                                            //GWT.log("LInha 04   VE?CULO ATUALIZADO: ");
                                                            TreeMap<String, ArrayList<TreeMap<String, String>>> veiculosAux = new TreeMap<>(
                                                                    dadosVeiculoAtualizados);
                                                            //GWT.log("LInha 05   VE?CULO ATUALIZADO: ");
                                                            //ListGridRecord[] registeredPlacaRecords = new ListGridRecord[dadosVeiculoAtualizados.size()];
                                                            //GWT.log("LInha 06   VE?CULO ATUALIZADO: ");
                                                            if (dadosVeiculoAtualizados.size() > 0) {

                                                                final DataSource ds = new DataSource();
                                                                ds.setClientOnly(true);
                                                                DataSourceTextField codigo = new DataSourceTextField(
                                                                        "codigo",
                                                                        Info.titulosMsg.get("tituloCodigo"));
                                                                codigo.setHidden(true);
                                                                DataSourceTextField placaVeiculo = new DataSourceTextField(
                                                                        "placa", Info.titulosMsg.get("lista"));
                                                                placaVeiculo.setRequired(true);
                                                                placaVeiculo.setPrimaryKey(true);
                                                                ds.setFields(codigo, placaVeiculo);

                                                                TreeMap<String, String> placasVeciuloAux = new TreeMap<>();
                                                                for (Map.Entry<String, ArrayList<TreeMap<String, String>>> entrySet : veiculosAux
                                                                        .entrySet()) {
                                                                    //String key = entrySet.getKey();
                                                                    ArrayList<TreeMap<String, String>> value = entrySet
                                                                            .getValue();
                                                                    if (!placasVeciuloAux.containsKey(
                                                                            value.get(0).get("placaVeiculo"))) {
                                                                        final ListGridRecord recordVeiculos = new ListGridRecord();
                                                                        recordVeiculos.setAttribute("placa",
                                                                                value.get(0).get("placaVeiculo"));
                                                                        recordVeiculos.setAttribute("codigo",
                                                                                value.get(0).get("codVeiculo"));
                                                                        //                                                    recordVeiculos.setAttribute("icone", value.get(0).get("codIcone"));
                                                                        //                                                    recordVeiculos.setAttribute("grupo", value.get(0).get("nomeGrupo"));
                                                                        //                                                    recordVeiculos.setAttribute("fabricante", value.get(0).get("fabricante"));
                                                                        //                                                    recordVeiculos.setAttribute("modelo", value.get(0).get("modelo"));
                                                                        //                                                    recordVeiculos.setAttribute("cor", value.get(0).get("cor"));
                                                                        //                                                    recordVeiculos.setAttribute("ano", value.get(0).get("ano"));
                                                                        ds.addData(recordVeiculos);

                                                                        if (value.get(0).get("ativoVeic")
                                                                                .equalsIgnoreCase("t")) {
                                                                            if (Integer.parseInt(value.get(0)
                                                                                    .get("codPlano")) == 1) {
                                                                                double desconto = Double
                                                                                        .parseDouble(value.get(0)
                                                                                                .get("desconto"));
                                                                                double numeroIndicicoes = Double
                                                                                        .parseDouble(value.get(0)
                                                                                                .get("numeroIndicacoes"));
                                                                                double valorPlano = Double
                                                                                        .parseDouble(value.get(0)
                                                                                                .get("valorPlano"));
                                                                                double dezPorCentoPlano = Double
                                                                                        .parseDouble(value.get(0)
                                                                                                .get("valorPlano"))
                                                                                        * 0.1;
                                                                                double descontoIndicacao = Info
                                                                                        .formataDecimal(
                                                                                                numeroIndicicoes
                                                                                                        * dezPorCentoPlano);
                                                                                double valorMensalidade = Info
                                                                                        .formataDecimal(valorPlano
                                                                                                - (desconto
                                                                                                        + descontoIndicacao));
                                                                                TabBuscarCliente.totalMensalidadesVeiculos = Info
                                                                                        .formataDecimal(
                                                                                                TabBuscarCliente.totalMensalidadesVeiculos
                                                                                                        + valorMensalidade);
                                                                            } else {
                                                                                double desconto = Double
                                                                                        .parseDouble(value.get(0)
                                                                                                .get("desconto"));
                                                                                double valorPlano = Double
                                                                                        .parseDouble(value.get(0)
                                                                                                .get("valorPlano"));
                                                                                double valorMensalidade = Info
                                                                                        .formataDecimal(valorPlano
                                                                                                - desconto);
                                                                                TabBuscarCliente.totalMensalidadesVeiculos = Info
                                                                                        .formataDecimal(
                                                                                                TabBuscarCliente.totalMensalidadesVeiculos
                                                                                                        + valorMensalidade);
                                                                            }
                                                                        }
                                                                        placasVeciuloAux.put(
                                                                                value.get(0).get("placaVeiculo"),
                                                                                value.get(0).get("placaVeiculo"));
                                                                    }

                                                                }

                                                                veicPlacas.setDataSource(ds);
                                                                if (veiculosAux.size() < 50) {
                                                                    GWT.log("flagDrawGrid");
                                                                    veicPlacas.fetchData();
                                                                    veicPlacas.focus();
                                                                    GWT.log("flagDrawGrid");
                                                                } else {
                                                                    new Timer() {
                                                                        @Override
                                                                        public void run() {
                                                                            GWT.log("flagDrawGrid");
                                                                            //veicPlacas.setDataSource(ds);
                                                                            veicPlacas.fetchData();
                                                                            veicPlacas.focus();
                                                                            GWT.log("flagDrawGrid");
                                                                        }
                                                                    }.schedule(1000);
                                                                }
                                                                //                                                veicPlacas.setDataSource(ds);
                                                                //                                                veicPlacas.fetchData();
                                                                //                                                veicPlacas.setSelectionType(SelectionStyle.SINGLE);
                                                            } else {
                                                                //GWT.log("LInha 12   VE?CULO ATUALIZADO: ");
                                                                DataSourceTextField codigo = new DataSourceTextField(
                                                                        "codigo",
                                                                        Info.titulosMsg.get("tituloCodigo"));
                                                                codigo.setHidden(true);
                                                                DataSourceTextField placaVeiculo = new DataSourceTextField(
                                                                        "placa", "Placa");
                                                                placaVeiculo.setRequired(true);
                                                                //placaVeiculo.setPrimaryKey(true);
                                                                DataSource ds = new DataSource();
                                                                ds.setClientOnly(true);
                                                                ds.setFields(codigo, placaVeiculo);
                                                                veicPlacas.setDataSource(ds);
                                                                veicPlacas.fetchData();
                                                                veicPlacas.setSelectionType(SelectionStyle.SINGLE);
                                                                tabBuscaCliente.tabelaVeiculoRedraw(tabelaVazia);
                                                            }

                                                            GWT.log("LInha 2274   VE?CULO ATUALIZADO: "
                                                                    + placa.getDisplayValue() + "  antiga: "
                                                                    + dadosVeiculo.get(0).get("placaVeiculo"));
                                                            if (TabInicio.listaVeiculos.size() > 4) {
                                                                for (Map.Entry<String, Object> entrySet : TabInicio.listaVeiculos
                                                                        .entrySet()) {

                                                                    String key = entrySet.getKey();
                                                                    GWT.log("MAIXO: " + key);
                                                                    if (!key.equalsIgnoreCase("OFFSET")
                                                                            && !key.equalsIgnoreCase("ENDERECO")
                                                                            && !key.equalsIgnoreCase("MAXIMO")
                                                                            && !key.equalsIgnoreCase("MINIMO")
                                                                            && !key.equalsIgnoreCase("GRUPO")) {
                                                                        GWT.log("LInha 2289   VE?CULO ATUALIZADO: "
                                                                                + placaAntiga);
                                                                        ArrayList<TreeMap<String, String>> value = (ArrayList<TreeMap<String, String>>) entrySet
                                                                                .getValue();
                                                                        GWT.log("LInha 2291   VE?CULO ATUALIZADO: "
                                                                                + dadosVeiculo.get(0)
                                                                                        .get("placaVeiculo"));
                                                                        if (key.equalsIgnoreCase(dadosVeiculo.get(0)
                                                                                .get("placaVeiculo"))) {
                                                                            GWT.log("LInha 2293   VE?CULO ATUALIZADO: ");
                                                                            value.get(0).put("codIcone",
                                                                                    itemIconeVeiculo
                                                                                            .getValueAsString());
                                                                            GWT.log("LInha 2293 1   VE?CULO ATUALIZADO: ");
                                                                            value.get(0).put("placa",
                                                                                    placa.getDisplayValue());
                                                                            GWT.log("LInha 2293 2  VE?CULO ATUALIZADO: ");
                                                                            value.get(0).put("fabricante",
                                                                                    (tipoVeiculo.getValueAsString()
                                                                                            .equalsIgnoreCase("4"))
                                                                                                    ? fabricante
                                                                                                            .getValueAsString()
                                                                                                    : itemMarca
                                                                                                            .getDisplayValue());
                                                                            GWT.log("LInha 2293  3  VE?CULO ATUALIZADO: ");
                                                                            value.get(0).put("modelo", (tipoVeiculo
                                                                                    .getValueAsString()
                                                                                    .equalsIgnoreCase("4")) ? modelo
                                                                                            .getValueAsString()
                                                                                            : itemModelo
                                                                                                    .getDisplayValue());
                                                                            GWT.log("LInha 2293  4  VE?CULO ATUALIZADO: ");
                                                                            value.get(0).put("ano", (tipoVeiculo
                                                                                    .getValueAsString()
                                                                                    .equalsIgnoreCase("4"))
                                                                                            ? ano.getValueAsString()
                                                                                            : itemAno
                                                                                                    .getDisplayValue());
                                                                            GWT.log("LInha 2293  5  VE?CULO ATUALIZADO: ");
                                                                            value.get(0).put("codCliente",
                                                                                    cliente.getValueAsString());
                                                                            GWT.log("LInha 2293  6  VE?CULO ATUALIZADO: ");
                                                                            value.get(0).put("nomeCliente",
                                                                                    cliente.getDisplayValue());
                                                                            GWT.log("LInha 2293  7  VE?CULO ATUALIZADO: ");
                                                                            value.get(1).put("codIcone",
                                                                                    itemIconeVeiculo
                                                                                            .getValueAsString());
                                                                            GWT.log("LInha 2293  8  VE?CULO ATUALIZADO: ");
                                                                            value.get(1).put("placa",
                                                                                    placa.getDisplayValue());
                                                                            GWT.log("LInha 2293  9  VE?CULO ATUALIZADO: ");
                                                                            value.get(1).put("fabricante",
                                                                                    (tipoVeiculo.getValueAsString()
                                                                                            .equalsIgnoreCase("4"))
                                                                                                    ? fabricante
                                                                                                            .getValueAsString()
                                                                                                    : itemMarca
                                                                                                            .getDisplayValue());
                                                                            GWT.log("LInha 2293  10  VE?CULO ATUALIZADO: ");
                                                                            value.get(1).put("modelo", (tipoVeiculo
                                                                                    .getValueAsString()
                                                                                    .equalsIgnoreCase("4")) ? modelo
                                                                                            .getValueAsString()
                                                                                            : itemModelo
                                                                                                    .getDisplayValue());
                                                                            GWT.log("LInha 2293  11  VE?CULO ATUALIZADO: ");
                                                                            value.get(1).put("ano", (tipoVeiculo
                                                                                    .getValueAsString()
                                                                                    .equalsIgnoreCase("4"))
                                                                                            ? ano.getValueAsString()
                                                                                            : itemAno
                                                                                                    .getDisplayValue());
                                                                            GWT.log("LInha 2293  12  VE?CULO ATUALIZADO: ");
                                                                            value.get(1).put("codCliente",
                                                                                    cliente.getValueAsString());
                                                                            GWT.log("LInha 2293  13  VE?CULO ATUALIZADO: ");
                                                                            value.get(1).put("nomeCliente",
                                                                                    cliente.getDisplayValue());
                                                                            GWT.log("LInha 2293  14  VE?CULO ATUALIZADO: ");
                                                                            value.get(2).put("codIcone",
                                                                                    itemIconeVeiculo
                                                                                            .getValueAsString());
                                                                            GWT.log("LInha 2293  15  VE?CULO ATUALIZADO: ");
                                                                            value.get(2).put("placa",
                                                                                    placa.getDisplayValue());
                                                                            GWT.log("LInha 2293  16  VE?CULO ATUALIZADO: ");
                                                                            value.get(2).put("fabricante",
                                                                                    (tipoVeiculo.getValueAsString()
                                                                                            .equalsIgnoreCase("4"))
                                                                                                    ? fabricante
                                                                                                            .getValueAsString()
                                                                                                    : itemMarca
                                                                                                            .getDisplayValue());
                                                                            GWT.log("LInha 2293  17  VE?CULO ATUALIZADO: ");
                                                                            value.get(2).put("modelo", (tipoVeiculo
                                                                                    .getValueAsString()
                                                                                    .equalsIgnoreCase("4")) ? modelo
                                                                                            .getValueAsString()
                                                                                            : itemModelo
                                                                                                    .getDisplayValue());
                                                                            GWT.log("LInha 2293  18  VE?CULO ATUALIZADO: ");
                                                                            value.get(2).put("ano", (tipoVeiculo
                                                                                    .getValueAsString()
                                                                                    .equalsIgnoreCase("4"))
                                                                                            ? ano.getValueAsString()
                                                                                            : itemAno
                                                                                                    .getDisplayValue());
                                                                            GWT.log("LInha 2293  19  VE?CULO ATUALIZADO: ");
                                                                            value.get(2).put("codCliente",
                                                                                    cliente.getValueAsString());
                                                                            GWT.log("LInha 2293  20  VE?CULO ATUALIZADO: ");
                                                                            value.get(2).put("nomeCliente",
                                                                                    cliente.getDisplayValue());
                                                                            GWT.log("LInha 2315  VE?CULO ATUALIZADO: ");
                                                                            TabInicio.listaVeiculos.put(
                                                                                    placa.getDisplayValue(), value);
                                                                            GWT.log("LInha 2317   VE?CULO ATUALIZADO: ");
                                                                            if (!placa.getDisplayValue()
                                                                                    .equalsIgnoreCase(key)) {
                                                                                TabInicio.listaVeiculos.remove(key);
                                                                            }
                                                                            GWT.log("LInha 2319   VE?CULO ATUALIZADO: ");
                                                                        }
                                                                        //GWT.log("LInha 2323   VE?CULO ATUALIZADO: ");
                                                                    }
                                                                }
                                                            }
                                                            GWT.log("LInha 2308   VE?CULO ATUALIZADO: ");
                                                            if (TabInicio.TABELAVEICULODESENHADA) {
                                                                GWT.log("LInha 2322   VE?CULO ATUALIZADO: ");
                                                                TabHistorico.dataSoucePlacas.getCacheData();
                                                                ListGridRecord recordsPlacasInicio[] = TabInicio.veiculos
                                                                        .getRecords();
                                                                //Record recordsPlacasInicio[] = TabHistorico.dataSoucePlacas.getCacheData();
                                                                GWT.log("LInha 2324   VE?CULO ATUALIZADO: ");
                                                                for (int i = 0; i < recordsPlacasInicio.length; i++) {
                                                                    GWT.log("dataSourcePlacas 2327: "
                                                                            + recordsPlacasInicio[i]
                                                                                    .getAttributeAsString("placa"));
                                                                    if (recordsPlacasInicio[i]
                                                                            .getAttributeAsString("placa")
                                                                            .equalsIgnoreCase(dadosVeiculo.get(0)
                                                                                    .get("placaVeiculo"))) {
                                                                        recordsPlacasInicio[i].setAttribute("icone",
                                                                                itemIconeVeiculo
                                                                                        .getValueAsString());
                                                                        recordsPlacasInicio[i].setAttribute("placa",
                                                                                placa.getDisplayValue());
                                                                        TabInicio.veiculos.refreshRow(i);
                                                                        TabInicio.veiculos.redraw();
                                                                        GWT.log("LInha 2318   VE?CULO ATUALIZADO: ");
                                                                    }
                                                                }
                                                            }
                                                            GWT.log("LInha 2342   VE?CULO ATUALIZADO: ");
                                                            //                                            ListGridRecord recordsPlacasInicio[] = TabInicio.veiculos.getRecords();
                                                            //                                            for (int i = 0; i < recordsPlacasInicio.length; i++) {
                                                            //                                                if (recordsPlacasInicio[i].getAttributeAsString("placa").equalsIgnoreCase(dadosVeiculo.get(0).get("placaVeiculo"))) {
                                                            //                                                    recordsPlacasInicio[i].setAttribute("icone", itemIconeVeiculo.getValueAsString());
                                                            //                                                    recordsPlacasInicio[i].setAttribute("placa", placa.getDisplayValue());
                                                            //                                                    TabInicio.veiculos.refreshRow(i);
                                                            //                                                    //TabInicio.veiculos.redraw();
                                                            //                                                }
                                                            //                                            }
                                                            GWT.log("LInha 2386   VE?CULO ATUALIZADO: ");
                                                            if (TabHistorico.TABELA_VEICULOS_HISTORICO_DESENHADA) {
                                                                ListGridRecord recordsPlacasHistorico[] = TabHistorico.veiculos
                                                                        .getRecords();
                                                                for (int i = 0; i < recordsPlacasHistorico.length; i++) {
                                                                    if (recordsPlacasHistorico[i]
                                                                            .getAttributeAsString("placa")
                                                                            .equalsIgnoreCase(dadosVeiculo.get(0)
                                                                                    .get("placaVeiculo"))) {
                                                                        //String.valueOf(codVeiculoEditado)
                                                                        //recordsPlacasHistorico[i].setAttribute("icone", itemIconeVeiculo.getValueAsString());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "icone", itemIconeVeiculo
                                                                                        .getValueAsString());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "placa", placa.getDisplayValue());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "fabricante",
                                                                                (tipoVeiculo.getValueAsString()
                                                                                        .equalsIgnoreCase("4"))
                                                                                                ? fabricante
                                                                                                        .getValueAsString()
                                                                                                : itemMarca
                                                                                                        .getDisplayValue());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "modelo",
                                                                                (tipoVeiculo.getValueAsString()
                                                                                        .equalsIgnoreCase("4"))
                                                                                                ? modelo.getValueAsString()
                                                                                                : itemModelo
                                                                                                        .getDisplayValue());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "cor", cor.getValueAsString());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "ano",
                                                                                (tipoVeiculo.getValueAsString()
                                                                                        .equalsIgnoreCase("4"))
                                                                                                ? ano.getValueAsString()
                                                                                                : itemAno
                                                                                                        .getDisplayValue());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "cliente",
                                                                                cliente.getDisplayValue());
                                                                        TabHistorico.veiculos.refreshRow(i);
                                                                        //TabHistorico.veiculos.redraw();
                                                                    }
                                                                }
                                                            }
                                                            GWT.log("LInha 2405   VE?CULO ATUALIZADO: ");
                                                            //}
                                                            //Record Antigo da Placa - Inicio //
                                                            //                                            Record recordsPlacasInicioAntigo = new Record();
                                                            //                                            recordsPlacasInicioAntigo.setAttribute("icone", dadosVeiculo.get(0).get("icone"));
                                                            //                                            recordsPlacasInicioAntigo.setAttribute("placa", dadosVeiculo.get(0).get("placaVeiculo"));
                                                            //                                            recordsPlacasInicioAntigo.setAttribute("grupo", Info.usuarioLogado.get("nomeGrupo"));
                                                            //                                            TabInicio.dataSourcePlacas.removeData(recordsPlacasInicioAntigo);
                                                            //                                            
                                                            //                                            // Record Novo da Placa - Inicio //
                                                            //                                            Record recordsPlacasInicio = new Record();
                                                            //                                            recordsPlacasInicio.setAttribute("icone", itemIconeVeiculo.getValueAsString());
                                                            //                                            recordsPlacasInicio.setAttribute("placa", placa.getDisplayValue());
                                                            //                                            recordsPlacasInicio.setAttribute("grupo", Info.usuarioLogado.get("nomeGrupo"));
                                                            //                                            TabInicio.dataSourcePlacas.addData(recordsPlacasInicio);
                                                            //                                            if(TabInicio.TABELAVEICULODESENHADA){
                                                            //                                                TabInicio.veiculos.fetchData();
                                                            //                                            }

                                                            //Record Antigo da Placa - Historico //
                                                            //                                            Record recordsPlacasHistoricoAntigo = new Record();
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("codigo", String.valueOf(codVeiculoEditado));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("icone", dadosVeiculo.get(0).get("icone"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("placa", dadosVeiculo.get(0).get("placaVeiculo"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("fabricante", dadosVeiculo.get(0).get("fabricante"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("modelo", dadosVeiculo.get(0).get("modelo"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("cor",dadosVeiculo.get(0).get("cor"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("ano", dadosVeiculo.get(0).get("ano"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("grupo", Info.usuarioLogado.get("nomeGrupo"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("cliente", nomeCliente);
                                                            //                                            TabHistorico.dataSoucePlacas.removeData(recordsPlacasHistoricoAntigo);
                                                            //                                            
                                                            //                                            // Record Novo da Placa - Histrico //
                                                            //                                            Record recordsPlacasHistorico = new Record();
                                                            //                                            recordsPlacasHistorico.setAttribute("codigo", String.valueOf(codVeiculoEditado));
                                                            //                                            recordsPlacasHistorico.setAttribute("icone", itemIconeVeiculo.getValueAsString());
                                                            //                                            recordsPlacasHistorico.setAttribute("placa", placa.getDisplayValue());
                                                            //                                            recordsPlacasHistorico.setAttribute("fabricante", (tipoVeiculo.getValueAsString().equalsIgnoreCase("4")) ? fabricante.getValueAsString() : itemMarca.getDisplayValue());
                                                            //                                            recordsPlacasHistorico.setAttribute("modelo", (tipoVeiculo.getValueAsString().equalsIgnoreCase("4")) ? modelo.getValueAsString() : itemModelo.getDisplayValue());
                                                            //                                            recordsPlacasHistorico.setAttribute("cor", cor.getValueAsString());
                                                            //                                            recordsPlacasHistorico.setAttribute("ano", (tipoVeiculo.getValueAsString().equalsIgnoreCase("4")) ? ano.getValueAsString() : itemAno.getDisplayValue());
                                                            //                                            recordsPlacasHistorico.setAttribute("grupo", Info.usuarioLogado.get("nomeGrupo"));
                                                            //                                            recordsPlacasHistorico.setAttribute("cliente", cliente.getDisplayValue());
                                                            //                                            TabHistorico.dataSoucePlacas.addData(recordsPlacasHistorico);
                                                            //                                            if(TabHistorico.TABELA_VEICULOS_HISTORICO_DESENHADA){
                                                            //                                                TabHistorico.veiculos.fetchData();
                                                            //                                            }
                                                            //GWT.log("Cdigo do veculoEditado: " + codVeiculoEditado);
                                                            GWT.log("LInha 2453   VE?CULO ATUALIZADO: ");
                                                            SC.say(Info.titulosMsg.get("veiculoAtualizadoSucesso"));
                                                            GWT.log("Segundo IF - Linha 02");
                                                            windAux.destroy();

                                                        } else {
                                                            Info.registrarLog(
                                                                    Integer.parseInt(
                                                                            Info.usuarioLogado.get("codUsuario")),
                                                                    12, new Timestamp(System.currentTimeMillis()),
                                                                    "placa anterior: "
                                                                            + dadosVeiculo.get(0)
                                                                                    .get("placaVeiculo")
                                                                            + " placa atual: "
                                                                            + placa.getDisplayValue()
                                                                            + " cod do veiculo: "
                                                                            + dadosVeiculo.get(0).get("codVeiculo")
                                                                            + " plano anterior: "
                                                                            + dadosVeiculo.get(0).get("codPlano")
                                                                            + " dono anterior: "
                                                                            + String.valueOf(codigoCliente)
                                                                            + "equipamento anterior: "
                                                                            + dadosVeiculo.get(0)
                                                                                    .get("codEquipamento")
                                                                            + "Instalador anterior"
                                                                            + dadosVeiculo.get(0)
                                                                                    .get("codInstalador")
                                                                            + "Indicador anterior: "
                                                                            + "Estado anterior: "
                                                                            + dadosVeiculo.get(0).get("codEstado")
                                                                            + "cidade anterior: "
                                                                            + dadosVeiculo.get(0).get("codCidade")
                                                                            + "chassi anterior: "
                                                                            + dadosVeiculo.get(0).get("chassi")
                                                                            + "Fabricante anterior: "
                                                                            + dadosVeiculo.get(0).get("fabricante")
                                                                            + "Modelo anterior: "
                                                                            + dadosVeiculo.get(0).get("modelo")
                                                                            + "cor anterior: "
                                                                            + dadosVeiculo.get(0).get("cor")
                                                                            + "ano anterior: "
                                                                            + dadosVeiculo.get(0).get("ano")
                                                                            + "Data de adeso anterior"
                                                                            + DateTimeFormat.getFormat(
                                                                                    com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat.DATE_TIME_SHORT)
                                                                                    .format(new Date(Long.parseLong(
                                                                                            dadosVeiculo.get(0).get(
                                                                                                    "dataAdesao"))))
                                                                            + "ativo anterior: "
                                                                            + dadosVeiculo.get(0).get("ativoVeic")
                                                                            + "desconto anterior: "
                                                                            + dadosVeiculo.get(0).get("desconto")
                                                                            + "Tipo cobrana anterior: "
                                                                            + dadosVeiculoCopia.get(0).get("codTc")
                                                                            + "Numero de parcela anterior: "
                                                                            + dadosVeiculoCopia.get(0)
                                                                                    .get("codParcela")
                                                                            + "Observaes anteriores: "
                                                                            + dadosVeiculo.get(0).get("observacoes")
                                                                            + " dono atual: "
                                                                            + cliente.getValueAsString()
                                                                            + "equipamento atual: "
                                                                            + equipamento.getValueAsString()
                                                                            + "Instalador atual"
                                                                            + instalador.getValueAsString()
                                                                            + "placa atual: "
                                                                            + placa.getDisplayValue()
                                                                            + "Estado atual: "
                                                                            + itemEstado.getValueAsString()
                                                                            + "cidade atual: "
                                                                            + itemCidade.getValueAsString()
                                                                            + "chassi atual: "
                                                                            + chassi.getValueAsString()
                                                                            + "Fabricante atual: "
                                                                            + itemMarca.getDisplayValue()
                                                                            + "Modelo atual: "
                                                                            + itemModelo.getDisplayValue()
                                                                            + "cor atual: " + cor.getValueAsString()
                                                                            + "ano atual: "
                                                                            + itemAno.getDisplayValue()
                                                                            + "Data de adeso atual"
                                                                            + DateTimeFormat.getFormat(
                                                                                    com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat.DATE_TIME_SHORT)
                                                                                    .format(dataAdesao
                                                                                            .getValueAsDate())
                                                                            + "ativo atual: "
                                                                            + ativo.getValueAsString()
                                                                            + "desconto atual: "
                                                                            + desconto.getValueAsString()
                                                                            + "Tipo cobrana atual: "
                                                                            + tipoCobranca.getValueAsString()
                                                                            + "Numero de parcela atual: "
                                                                            + numeroParcelas.getValueAsString()
                                                                            + "Observaes atuais: "
                                                                            + observacoes.getValueAsString());
                                                            //GWT.log("LInha 044   VE?CULO ATUALIZADO: ");  
                                                            DataSourceTextField codigo = new DataSourceTextField(
                                                                    "codigo", Info.titulosMsg.get("tituloCodigo"));
                                                            codigo.setHidden(true);
                                                            DataSourceTextField placaVeiculo = new DataSourceTextField(
                                                                    "placa", "Placa");
                                                            placaVeiculo.setRequired(true);
                                                            placaVeiculo.setPrimaryKey(true);
                                                            DataSource ds = new DataSource();
                                                            ds.setClientOnly(true);
                                                            ds.setFields(codigo, placaVeiculo);
                                                            veicPlacas.setDataSource(ds);
                                                            veicPlacas.fetchData();
                                                            veicPlacas.setSelectionType(SelectionStyle.SINGLE);
                                                            tabBuscaCliente.tabelaVeiculoRedraw(tabelaVazia);
                                                            GWT.log("LInha 2362   VE?CULO ATUALIZADO: ");
                                                            //if (!placa.getDisplayValue().equalsIgnoreCase(dadosVeiculo.get(0).get("placaVeiculo"))) {
                                                            for (Map.Entry<String, Object> entrySet : TabInicio.listaVeiculos
                                                                    .entrySet()) {
                                                                String key = entrySet.getKey();
                                                                if (!key.equalsIgnoreCase("OFFSET")
                                                                        && !key.equalsIgnoreCase("MAXIMO")
                                                                        && !key.equalsIgnoreCase("ENDERECO")
                                                                        && !key.equalsIgnoreCase("GRUPO")) {
                                                                    GWT.log("LInha 2367   VE?CULO ATUALIZADO: ");
                                                                    ArrayList<TreeMap<String, String>> value = (ArrayList<TreeMap<String, String>>) entrySet
                                                                            .getValue();
                                                                    if (key.equalsIgnoreCase(dadosVeiculo.get(0)
                                                                            .get("placaVeiculo"))) {
                                                                        value.get(0).put("codIcone",
                                                                                itemIconeVeiculo
                                                                                        .getValueAsString());
                                                                        value.get(0).put("placa",
                                                                                placa.getDisplayValue());
                                                                        value.get(0).put("fabricante", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? fabricante
                                                                                                .getValueAsString()
                                                                                        : itemMarca
                                                                                                .getDisplayValue());
                                                                        value.get(0).put("modelo", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? modelo.getValueAsString()
                                                                                        : itemModelo
                                                                                                .getDisplayValue());
                                                                        value.get(0).put("ano", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? ano.getValueAsString()
                                                                                        : itemAno
                                                                                                .getDisplayValue());
                                                                        value.get(0).put("codCliente",
                                                                                cliente.getValueAsString());
                                                                        value.get(0).put("nomeCliente",
                                                                                cliente.getDisplayValue());
                                                                        value.get(1).put("codIcone",
                                                                                itemIconeVeiculo
                                                                                        .getValueAsString());
                                                                        value.get(1).put("placa",
                                                                                placa.getDisplayValue());
                                                                        value.get(1).put("fabricante", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? fabricante
                                                                                                .getValueAsString()
                                                                                        : itemMarca
                                                                                                .getDisplayValue());
                                                                        value.get(1).put("modelo", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? modelo.getValueAsString()
                                                                                        : itemModelo
                                                                                                .getDisplayValue());
                                                                        value.get(1).put("ano", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? ano.getValueAsString()
                                                                                        : itemAno
                                                                                                .getDisplayValue());
                                                                        value.get(1).put("codCliente",
                                                                                cliente.getValueAsString());
                                                                        value.get(1).put("nomeCliente",
                                                                                cliente.getDisplayValue());
                                                                        value.get(2).put("codIcone",
                                                                                itemIconeVeiculo
                                                                                        .getValueAsString());
                                                                        value.get(2).put("placa",
                                                                                placa.getDisplayValue());
                                                                        value.get(2).put("fabricante", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? fabricante
                                                                                                .getValueAsString()
                                                                                        : itemMarca
                                                                                                .getDisplayValue());
                                                                        value.get(2).put("modelo", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? modelo.getValueAsString()
                                                                                        : itemModelo
                                                                                                .getDisplayValue());
                                                                        value.get(2).put("ano", (tipoVeiculo
                                                                                .getValueAsString()
                                                                                .equalsIgnoreCase("4"))
                                                                                        ? ano.getValueAsString()
                                                                                        : itemAno
                                                                                                .getDisplayValue());
                                                                        value.get(2).put("codCliente",
                                                                                cliente.getValueAsString());
                                                                        value.get(2).put("nomeCliente",
                                                                                cliente.getDisplayValue());
                                                                        TabInicio.listaVeiculos.put(
                                                                                placa.getDisplayValue(), value);
                                                                        if (!placa.getDisplayValue()
                                                                                .equalsIgnoreCase(key)) {
                                                                            TabInicio.listaVeiculos.remove(key);
                                                                        }

                                                                    }
                                                                }
                                                            }
                                                            if (TabInicio.TABELAVEICULODESENHADA) {
                                                                GWT.log("LInha 2322   VE?CULO ATUALIZADO: ");
                                                                TabHistorico.dataSoucePlacas.getCacheData();
                                                                ListGridRecord recordsPlacasInicio[] = TabInicio.veiculos
                                                                        .getRecords();
                                                                //Record recordsPlacasInicio[] = TabHistorico.dataSoucePlacas.getCacheData();
                                                                GWT.log("LInha 2324   VE?CULO ATUALIZADO: ");
                                                                for (int i = 0; i < recordsPlacasInicio.length; i++) {
                                                                    GWT.log("dataSourcePlacas 2327: "
                                                                            + recordsPlacasInicio[i]
                                                                                    .getAttributeAsString("placa"));
                                                                    if (recordsPlacasInicio[i]
                                                                            .getAttributeAsString("placa")
                                                                            .equalsIgnoreCase(dadosVeiculo.get(0)
                                                                                    .get("placaVeiculo"))) {
                                                                        recordsPlacasInicio[i].setAttribute("icone",
                                                                                itemIconeVeiculo
                                                                                        .getValueAsString());
                                                                        recordsPlacasInicio[i].setAttribute("placa",
                                                                                placa.getDisplayValue());
                                                                        TabInicio.veiculos.refreshRow(i);
                                                                        TabInicio.veiculos.redraw();
                                                                        GWT.log("LInha 2318   VE?CULO ATUALIZADO: ");
                                                                    }
                                                                }
                                                            }
                                                            GWT.log("LInha 2342   VE?CULO ATUALIZADO: ");
                                                            if (TabHistorico.TABELA_VEICULOS_HISTORICO_DESENHADA) {
                                                                ListGridRecord recordsPlacasHistorico[] = TabHistorico.veiculos
                                                                        .getRecords();
                                                                for (int i = 0; i < recordsPlacasHistorico.length; i++) {
                                                                    if (recordsPlacasHistorico[i]
                                                                            .getAttributeAsString("placa")
                                                                            .equalsIgnoreCase(dadosVeiculo.get(0)
                                                                                    .get("placaVeiculo"))) {
                                                                        //String.valueOf(codVeiculoEditado)
                                                                        //recordsPlacasHistorico[i].setAttribute("icone", itemIconeVeiculo.getValueAsString());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "icone", itemIconeVeiculo
                                                                                        .getValueAsString());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "placa", placa.getDisplayValue());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "fabricante",
                                                                                (tipoVeiculo.getValueAsString()
                                                                                        .equalsIgnoreCase("4"))
                                                                                                ? fabricante
                                                                                                        .getValueAsString()
                                                                                                : itemMarca
                                                                                                        .getDisplayValue());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "modelo",
                                                                                (tipoVeiculo.getValueAsString()
                                                                                        .equalsIgnoreCase("4"))
                                                                                                ? modelo.getValueAsString()
                                                                                                : itemModelo
                                                                                                        .getDisplayValue());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "cor", cor.getValueAsString());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "ano",
                                                                                (tipoVeiculo.getValueAsString()
                                                                                        .equalsIgnoreCase("4"))
                                                                                                ? ano.getValueAsString()
                                                                                                : itemAno
                                                                                                        .getDisplayValue());
                                                                        recordsPlacasHistorico[i].setAttribute(
                                                                                "cliente",
                                                                                cliente.getDisplayValue());
                                                                        TabHistorico.veiculos.refreshRow(i);
                                                                        //TabHistorico.veiculos.redraw();
                                                                    }
                                                                }
                                                            }
                                                            //Record Antigo da Placa - Inicio //
                                                            //                                            Record recordsPlacasInicioAntigo = new Record();
                                                            //                                            recordsPlacasInicioAntigo.setAttribute("icone", dadosVeiculo.get(0).get("icone"));
                                                            //                                            recordsPlacasInicioAntigo.setAttribute("placa", dadosVeiculo.get(0).get("placaVeiculo"));
                                                            //                                            recordsPlacasInicioAntigo.setAttribute("grupo", Info.usuarioLogado.get("nomeGrupo"));
                                                            //                                            TabInicio.dataSourcePlacas.removeData(recordsPlacasInicioAntigo);
                                                            //
                                                            //                                            // Record Novo da Placa - Inicio //
                                                            //                                            Record recordsPlacasInicio = new Record();
                                                            //                                            recordsPlacasInicio.setAttribute("icone", itemIconeVeiculo.getValueAsString());
                                                            //                                            recordsPlacasInicio.setAttribute("placa", placa.getDisplayValue());
                                                            //                                            recordsPlacasInicio.setAttribute("grupo", Info.usuarioLogado.get("nomeGrupo"));
                                                            //                                            TabInicio.dataSourcePlacas.addData(recordsPlacasInicio);
                                                            //                                            if (TabInicio.TABELAVEICULODESENHADA) {
                                                            //                                                TabInicio.veiculos.fetchData();
                                                            //                                            }

                                                            //Record Antigo da Placa - Historico //
                                                            //                                            Record recordsPlacasHistoricoAntigo = new Record();
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("codigo", String.valueOf(codVeiculoEditado));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("icone", dadosVeiculo.get(0).get("icone"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("placa", dadosVeiculo.get(0).get("placaVeiculo"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("fabricante", dadosVeiculo.get(0).get("fabricante"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("modelo", dadosVeiculo.get(0).get("modelo"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("cor", dadosVeiculo.get(0).get("cor"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("ano", dadosVeiculo.get(0).get("ano"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("grupo", Info.usuarioLogado.get("nomeGrupo"));
                                                            //                                            recordsPlacasHistoricoAntigo.setAttribute("cliente", nomeCliente);
                                                            //                                            TabHistorico.dataSoucePlacas.removeData(recordsPlacasHistoricoAntigo);
                                                            //
                                                            //                                            // Record Novo da Placa - Histrico //
                                                            //                                            Record recordsPlacasHistorico = new Record();
                                                            //                                            recordsPlacasHistorico.setAttribute("codigo", String.valueOf(codVeiculoEditado));
                                                            //                                            recordsPlacasHistorico.setAttribute("icone", itemIconeVeiculo.getValueAsString());
                                                            //                                            recordsPlacasHistorico.setAttribute("placa", placa.getDisplayValue());
                                                            //                                            recordsPlacasHistorico.setAttribute("fabricante", (tipoVeiculo.getValueAsString().equalsIgnoreCase("4")) ? fabricante.getValueAsString() : itemMarca.getDisplayValue());
                                                            //                                            recordsPlacasHistorico.setAttribute("modelo", (tipoVeiculo.getValueAsString().equalsIgnoreCase("4")) ? modelo.getValueAsString() : itemModelo.getDisplayValue());
                                                            //                                            recordsPlacasHistorico.setAttribute("cor", cor.getValueAsString());
                                                            //                                            recordsPlacasHistorico.setAttribute("ano", (tipoVeiculo.getValueAsString().equalsIgnoreCase("4")) ? ano.getValueAsString() : itemAno.getDisplayValue());
                                                            //                                            recordsPlacasHistorico.setAttribute("grupo", Info.usuarioLogado.get("nomeGrupo"));
                                                            //                                            recordsPlacasHistorico.setAttribute("cliente", cliente.getDisplayValue());
                                                            //                                            TabHistorico.dataSoucePlacas.addData(recordsPlacasHistorico);
                                                            //                                            if (TabHistorico.TABELA_VEICULOS_HISTORICO_DESENHADA) {
                                                            //                                                TabHistorico.veiculos.fetchData();
                                                            //                                            }                                            
                                                            SC.say(Info.titulosMsg.get("veiculoAtualizadoSucesso"));
                                                            windAux.destroy();
                                                        }

                                                    }
                                                });
                                    } else {
                                        // erro ao atualizar dados do veculo //
                                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")),
                                                193, new Timestamp(System.currentTimeMillis()),
                                                "cod do veiculo: " + dadosVeiculo.get(0).get("codVeiculo"));
                                        SC.warn(Info.titulosMsg.get("veiculoAtualizadoErro"));
                                        //windAux.destroy();
                                    }
                                }
                            });
                    /*janelaCarregando.addItem(mensagem);
                     janelaCarregando.setAnimateTime(1200);
                     janelaCarregando.animateHide(AnimationEffect.FADE);
                     contador = 100;
                     destroy();
                     }
                     } else {
                     contador = 0;
                     }
                        
                     }
                     }.schedule(50);*/
                } else {
                    if (formEditVeiculo.validate(false) && Integer.parseInt(instalador.getValueAsString()) == 0) {
                        SC.warn(Info.titulosMsg.get("instaladorInvalido"));
                    } else if (codVeiculoEditado == codVeiculoIndicador) {
                        SC.warn(Info.titulosMsg.get("indicacaoInvalida"));
                        valueMapVeic.put("0", Info.titulosMsg.get("naoHaIndicacao"));
                        indicado.setValueMap(valueMapVeic);
                        indicado.setValue("0");
                        formEditVeiculo.focusInItem(indicado);
                        // tentou cadastrar o veculo com placa j existente//
                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 324,
                                new Timestamp(System.currentTimeMillis()), "codVeiculoEditado: " + codVeiculoEditado
                                        + " codVeiculoIndicador: " + codVeiculoIndicador);
                    } else if (formEditVeiculo.validate(false) && !validaPlaca) {
                        SC.warn(Info.titulosMsg.get("placaInvalida"));
                        formEditVeiculo.focusInItem(placa);
                        // tentou cadastrar o veculo com placa j existente//
                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 302,
                                new Timestamp(System.currentTimeMillis()), "");
                    } else if (formEditVeiculo.validate(false) && !validaChassi) {
                        SC.warn(Info.titulosMsg.get("chassiJaExiste"));
                        formEditVeiculo.focusInItem(chassi);
                        // tentou cadastrar o veculo com chassi j existente//
                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 315,
                                new Timestamp(System.currentTimeMillis()), "");
                    } else if (formEditVeiculo.validate(false)
                            && Integer.parseInt(equipamento.getValueAsString()) != 0
                            && listPadLig.getRecordList().isEmpty()) {
                        // tentou cadastrar o veculo sem padro de ligao //
                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 91,
                                new Timestamp(System.currentTimeMillis()), "");
                        SC.warn(Info.titulosMsg.get("umPadraoLigacao"));
                        //addpadLig.focus();
                    } else if (formEditVeiculo.validate(false)
                            && indicado.getValueAsString().equalsIgnoreCase("REP")) {
                        SC.warn(Info.titulosMsg.get("IndicadorInvalido"));
                        formEditVeiculo.focusInItem(indicado);
                        // tentou cadastrar o veculo com chassi j existente//
                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 357,
                                new Timestamp(System.currentTimeMillis()), "");
                    }
                }
            }
        });

        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 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);
                            if (tipoCobranca.getValueAsString()
                                    .equalsIgnoreCase(dadosVeiculoCopia.get(0).get("codTc"))) {
                                numeroParcelas.setValue(dadosVeiculoCopia.get(0).get("codParcela"));

                            } else {
                                numeroParcelas.setValue(result.get(0).get("codParcela"));
                            }

                        }

                    }

                    @Override
                    public void onFailure(Throwable caught) {
                        // TODO Auto-generated method stub

                    }
                });
    }

    private void buscarMarcas(int codTipoVeiculo) {

        Info.dbService.buscarMarcaPorTipoDeVeiculo(codTipoVeiculo,
                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> itemMarcas = new LinkedHashMap<>();
                        if (result != null) {
                            for (TreeMap<String, String> tv : result) {
                                itemMarcas.put(tv.get("codMarca"), tv.get("nome"));
                            }
                            itemMarca.setValueMap(itemMarcas);
                            if (verificaMarca) {
                                //GWT.log("codMarca: "+verificaMarca+" - "+dadosVeiculoCopia.get(0).get("codMarca"));
                                verificaMarca = false;
                                itemMarca.setValue(dadosVeiculoCopia.get(0).get("codMarca"));
                                buscarModelos(Integer.parseInt(dadosVeiculoCopia.get(0).get("codMarca")));
                            } else {
                                //GWT.log("verifica marca else: "+)
                                if (tipoVeiculo.getValueAsString()
                                        .equalsIgnoreCase(dadosVeiculoCopia.get(0).get("codTipo"))) {
                                    itemMarca.setValue(dadosVeiculoCopia.get(0).get("codMarca"));
                                    buscarModelos(Integer.parseInt(dadosVeiculoCopia.get(0).get("codMarca")));
                                } else {
                                    itemMarca.setValue(result.get(0).get("codMarca"));
                                    buscarModelos(Integer.parseInt(result.get(0).get("codMarca")));
                                }

                            }

                        } else {
                            itemMarcas.put("0", Info.titulosMsg.get("naoHaMarca"));
                            itemMarca.setValueMap(itemMarcas);
                            itemMarca.setValue("0");
                        }
                    }
                });
    }

    private void buscarModelos(int codMarca) {

        Info.dbService.buscarModeloPorCodMarca(codMarca, 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> itemModelos = new LinkedHashMap<>();
                if (result != null) {
                    for (TreeMap<String, String> tv : result) {
                        itemModelos.put(tv.get("codModelo"), tv.get("nome"));
                    }
                    itemModelo.setValueMap(itemModelos);
                    if (verificaModelo) {
                        verificaModelo = false;
                        itemModelo.setValue(dadosVeiculoCopia.get(0).get("codModelo"));
                        buscarAno(Integer.parseInt(dadosVeiculoCopia.get(0).get("codModelo")));
                    } else {
                        if (itemMarca.getValueAsString()
                                .equalsIgnoreCase(dadosVeiculoCopia.get(0).get("codMarca"))) {
                            itemModelo.setValue(dadosVeiculoCopia.get(0).get("codModelo"));
                            buscarAno(Integer.parseInt(dadosVeiculoCopia.get(0).get("codModelo")));
                        } else {
                            itemModelo.setValue(result.get(0).get("codModelo"));
                            buscarAno(Integer.parseInt(result.get(0).get("codModelo")));
                        }

                    }

                } else {
                    itemModelos.put("0", Info.titulosMsg.get("naoHaModelo"));
                    itemModelo.setValueMap(itemModelos);
                    itemModelo.setValue("0");
                }
            }
        });
    }

    private void buscarAno(int codModelo) {

        Info.dbService.buscarAnoPorCodModelo(codModelo, 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> itemAnos = new LinkedHashMap<>();
                if (result != null) {
                    for (TreeMap<String, String> tv : result) {
                        itemAnos.put(tv.get("codAno"), tv.get("descricao"));
                    }
                    itemAno.setValueMap(itemAnos);
                    if (verificaAno) {
                        verificaAno = false;
                        itemAno.setValue(dadosVeiculoCopia.get(0).get("codAno"));
                    } else {
                        if (itemModelo.getValueAsString()
                                .equalsIgnoreCase(dadosVeiculoCopia.get(0).get("codModelo"))) {
                            itemAno.setValue(dadosVeiculoCopia.get(0).get("codAno"));
                        } else {
                            itemAno.setValue(result.get(0).get("codAno"));
                        }

                    }
                } else {
                    itemAnos.put("0", Info.titulosMsg.get("naoHaAno"));
                    itemAno.setValueMap(itemAnos);
                    itemAno.setValue("0");
                }
            }
        });
    }

    public static int getTamanhoSelecionados() {
        return tamanhoSelecionados;
    }

    public static void setTamanhoSelecionados(int tamanhoSelecionados) {
        EditarVeiculo.tamanhoSelecionados = tamanhoSelecionados;
    }

}