com.automaster.client.ui.paineis.dialogs.cadastro.NovoVeiculo.java Source code

Java tutorial

Introduction

Here is the source code for com.automaster.client.ui.paineis.dialogs.cadastro.NovoVeiculo.java

Source

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

import com.automaster.client.Info;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.AnimationEffect;
import com.smartgwt.client.types.CharacterCasing;
import com.smartgwt.client.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.TitleOrientation;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.CloseClickEvent;
import com.smartgwt.client.widgets.events.CloseClickHandler;
import com.smartgwt.client.widgets.form.fields.events.ChangeEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangeHandler;
import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler;
import com.smartgwt.client.widgets.form.fields.events.FormItemIconClickEvent;
import com.smartgwt.client.widgets.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.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.TreeMap;

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

    private int contador;
    int codigoUnidade = Integer.parseInt(
            (Info.usuarioLogado.get("codUnidadeCliente") == null) ? Info.usuarioLogado.get("codUnidadeFuncionario")
                    : Info.usuarioLogado.get("codUnidadeCliente"));
    private final SelectItem itemEstado = new SelectItem();
    private final SelectItem itemCidade = new SelectItem("Cidade");
    private final SelectItem numeroParcelas = new SelectItem();
    private final ListGrid listPadLig = new ListGrid();
    private final ListGrid listPesAut = new ListGrid();

    public NovoVeiculo(int codigoCliente, String nomeCliente) {

        final Window windAux = this;
        setTitle("Novo Veculo");
        setWidth(1200);
        setHeight100();
        setShowMinimizeButton(false);
        setIsModal(true);
        setShowModalMask(true);
        centerInPage();
        setLayoutAlign(Alignment.CENTER);
        addCloseClickHandler(new CloseClickHandler() {

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

        final SelectItem tipoPlano = new SelectItem();
        tipoPlano.setTitle("Plano");
        tipoPlano.setName("plano");
        Info.dbService.buscarTodosPlanos(new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

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

            @Override
            public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                LinkedHashMap<String, String> pl = new LinkedHashMap<>();
                if (result != null) {
                    for (TreeMap<String, String> planos : result) {
                        pl.put(planos.get("codPlano"), planos.get("descricao"));
                    }
                    tipoPlano.setValueMap(pl);
                    tipoPlano.setValue(result.get(0).get("codPlano"));
                } else {
                    pl.put("0", "No H plano cadastrado");
                    tipoPlano.setValue("0");

                }

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

        final SelectItem cliente = new SelectItem();
        cliente.setTitle("Cliente");
        cliente.setName("cliente");
        LinkedHashMap<String, String> cl = new LinkedHashMap<>();
        cl.put(String.valueOf(codigoCliente), nomeCliente);
        cliente.setDefaultToFirstOption(true);
        cliente.setDisabled(true);
        cliente.setValueMap(cl);
        cliente.setHint("<nbr>*</nbr>");
        cliente.setRequired(true);
        cliente.setWidth(450);

        final SelectItem equipamento = new SelectItem();
        equipamento.setTitle("Equipamento");
        equipamento.setName("equipamento");
        Info.dbService.buscarTodosDisponiveis(codigoUnidade,
                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> equip = new LinkedHashMap<>();
                        if (result != null) {
                            equip.put("0", "Sem equipamento");
                            for (TreeMap<String, String> equipDisponiveis : result) {
                                equip.put(equipDisponiveis.get("codEquipamento"), equipDisponiveis.get("id"));
                            }
                            equipamento.setValueMap(equip);
                        } else {
                            equip.put("0", "no h equipamento disponvel para esta unidade");
                            equipamento.setValueMap(equip);
                        }
                    }
                });
        equipamento.setDefaultToFirstOption(true);
        equipamento.setHint("<nbr>*</nbr>");
        equipamento.setRequired(true);
        equipamento.setWidth(450);

        final SelectItem instalador = new SelectItem();
        instalador.setTitle("Instalador");
        instalador.setName("instalador");
        Info.dbService.buscarFuncionarioPorCargoUnidade(1, codigoUnidade,
                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> inst = new LinkedHashMap<>();
                        if (result != null) {
                            for (TreeMap<String, String> funcionario : result) {

                                inst.put(funcionario.get("codFuncionario"), funcionario.get("nome"));
                            }
                            instalador.setValueMap(inst);
                        } else {
                            inst.put("0", "no h instalador cadastrado");
                            instalador.setValueMap(inst);
                        }
                    }
                });
        instalador.setDefaultToFirstOption(true);
        instalador.setHint("<nbr>*</nbr>");
        instalador.setRequired(true);
        instalador.setWidth(450);

        final SelectItem indicado = new SelectItem();
        indicado.setName("indicado");
        indicado.setTitle("Indicado por");
        LinkedHashMap<String, String> valueMapVeic = new LinkedHashMap<String, String>();
        valueMapVeic.put("0", "Sem indicao");
        indicado.setValueMap(valueMapVeic);
        indicado.setDefaultToFirstOption(true);
        //ndicado.setRequired(true);
        indicado.setTooltip("Adicionar Veculo que Indicou");
        FormItemIcon icon = new FormItemIcon();
        icon.setSrc("[SKIN]actions/add.png");
        icon.setName("adicionarIndicacao");
        indicado.setIcons(icon);
        indicado.setHint("<nbr>*</nbr>");
        indicado.setWidth(450);
        icon.addFormItemClickHandler(new FormItemClickHandler() {

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

        final TextItem placa = new TextItem();
        placa.setName("placa");
        placa.setTitle("Placa");
        placa.setMask(">LLL-####");
        placa.setMaskSaveLiterals(true);
        placa.setLength(8);
        placa.setRequired(true);
        LengthRangeValidator tamanhoPlaca = new LengthRangeValidator();
        tamanhoPlaca.setMin(8);
        placa.setHint("<nbr>*</nbr>");
        placa.setValidators(tamanhoPlaca);
        //placa.setCharacterCasing(CharacterCasing.UPPER);
        placa.setWidth(450);
        itemEstado.setTitle("Estado");
        itemEstado.setName("estado");
        itemEstado.setWidth(450);
        itemEstado.setHint("<nbr>*</nbr>");
        itemEstado.setRequired(true);

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

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

            @Override
            public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                LinkedHashMap<String, String> valueMapEst = new LinkedHashMap<String, String>();
                for (TreeMap<String, String> est : result) {
                    valueMapEst.put(est.get("codEstado"), est.get("uf"));
                    //com.google.gwt.core.shared.GWT.log(est.get("codEstado") + " " + est.get("uf"));
                }
                //com.google.gwt.core.shared.GWT.log("antes do required PF");
                itemEstado.setValueMap(valueMapEst);

            }
        });

        //itemEstado.setDefaultToFirstOption(true);
        itemEstado.setValue("14");

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

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

                    @Override
                    public void onSuccess(ArrayList<TreeMap<String, String>> result) {

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

                        }
                        itemCidade.setValueMap(valueMapCid);
                        itemCidade.setValue("2418");

                    }

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

        itemEstado.addChangeHandler(new ChangeHandler() {

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

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

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

                            @Override
                            public void onSuccess(ArrayList<TreeMap<String, String>> result) {

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

                            }

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

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

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

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

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

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

        final DateItem dataAdesao = new DateItem();
        dataAdesao.setTitle("Data de Adeso.");
        dataAdesao.setName("dataNasc");
        dataAdesao.setUseTextField(true);
        dataAdesao.setHint("<nbr>*</nbr>");
        dataAdesao.setUseMask(true);
        dataAdesao.setDateFormatter(DateDisplayFormat.TOEUROPEANSHORTDATE);
        dataAdesao.setRequired(true);
        dataAdesao.setWidth(450);
        dataAdesao.setDefaultValue(new Date(System.currentTimeMillis()));

        final SelectItem ativo = new SelectItem();
        ativo.setTitle("Ativo");
        ativo.setName("itemAtivo");
        LinkedHashMap<String, String> atv = new LinkedHashMap<>();
        atv.put("True", "Ativo");
        atv.put("False", "Desativado");
        ativo.setValueMap(atv);
        ativo.setDefaultToFirstOption(true);
        ativo.setHint("<nbr>*</nbr>");
        ativo.setRequired(true);
        ativo.setWidth(450);

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

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

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

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

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

        numeroParcelas.setTitle("N de Parcelas");
        numeroParcelas.setMultiple(true);
        numeroParcelas.setHint("<nbr>*</nbr>");
        numeroParcelas.setRequired(true);
        numeroParcelas.setWidth(450);
        numeroParcelas.setMultipleAppearance(MultipleAppearance.GRID);
        numeroDeParcelas(tipoCobranca.getValueAsString());

        tipoCobranca.addChangeHandler(new ChangeHandler() {

            @Override
            public void onChange(ChangeEvent event) {

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

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

        IButton limpar = new IButton("Limpar");
        cadastrar.setLayoutAlign(Alignment.CENTER);

        final Label valorMensalidade = new Label();
        valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$59,90 </h3></strong>");
        valorMensalidade.setAlign(Alignment.CENTER);

        final SectionStackSection formSection = new SectionStackSection();
        formSection.setTitle("Dados do Veculo");
        formSection.setItems(formNovoVeiculo, valorMensalidade);
        formSection.setExpanded(true);

        //Evento que Troca o Valor do Plano de acordo com a Escolha do Usurio
        tipoPlano.addChangedHandler(new ChangedHandler() {

            @Override
            public void onChanged(ChangedEvent event) {

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

                if (plano.equals("1")) {
                    valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$59,90</h3></strong>");
                    desconto.setDefaultValue("00.00");
                } else {
                    valorMensalidade.setContents("<strong><h3>Valor da Mensalidade: R$74,90</h3></strong>");
                    desconto.setDefaultValue("00.00");
                }
            }
        });
        //Pega o Valor de desconto digitado pelo Usurio
        desconto.addChangedHandler(new ChangedHandler() {

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

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

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

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

                    }
                }
            }

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

        final ImgButton addPesAut = new ImgButton();
        addPesAut.setSrc("[SKIN]actions/add.png");
        addPesAut.setSize(16);
        addPesAut.setShowFocused(false);
        addPesAut.setShowRollOver(false);
        addPesAut.setShowDown(false);
        addPesAut.setTooltip("Adicionar Pessoa Autorizada");
        // FIm dos Botes de Adicionar
        //cria colunas para grid Emails
        //List Grid Padro de Ligao
        ListGridField corFio = new ListGridField("corFio", "Cor do Fio");
        corFio.setAlign(Alignment.CENTER);
        //Coluna sinal
        ListGridField sinal = new ListGridField("sinal", "Sinal");
        sinal.setAlign(Alignment.CENTER);
        sinal.setHidden(true);
        ListGridField sinalMas = new ListGridField("sinalMas", "Sinal");
        sinalMas.setAlign(Alignment.CENTER);
        //coluna Padro Veiculo
        ListGridField padrao = new ListGridField("padrao", "padro Veculo");
        padrao.setAlign(Alignment.CENTER);
        padrao.setHidden(true);
        ListGridField padraoMas = new ListGridField("padraoMas", "padro Veculo");
        padraoMas.setAlign(Alignment.CENTER);
        //coluna funo
        ListGridField funcao = new ListGridField("funcao", "Funo");
        funcao.setAlign(Alignment.CENTER);
        funcao.setHidden(true);
        ListGridField funcaoMas = new ListGridField("funcaoMas", "Funo");
        funcaoMas.setAlign(Alignment.CENTER);
        //coluna ativo
        ListGridField fieldAtivo = new ListGridField("fieldAtivo", "Ativo");
        fieldAtivo.setAlign(Alignment.CENTER);
        fieldAtivo.setHidden(true);
        ListGridField fieldAtivoMas = new ListGridField("fieldAtivoMas", "Ativo");
        fieldAtivoMas.setAlign(Alignment.CENTER);
        //coluna descricao
        ListGridField descricaoPl = new ListGridField("descricaoPl", "Descrio");
        descricaoPl.setAlign(Alignment.CENTER);
        //cria grid Padro de Ligao
        listPadLig.setCanPickFields(false);
        listPadLig.setFields(corFio, sinalMas, sinal, padraoMas, padrao, funcaoMas, funcao, fieldAtivoMas,
                fieldAtivo, descricaoPl);
        listPadLig.setCanRemoveRecords(true);

        addpadLig.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                NovoPadraoLigacao novPadLig = new NovoPadraoLigacao(listPadLig);
                novPadLig.setAnimateTime(1200);
                novPadLig.animateShow(AnimationEffect.FADE);
            }
        });
        //cria a sections email que ir guardar a grid de emails
        final SectionStackSection padLigSection = new SectionStackSection();
        padLigSection.setTitle("Padro de Ligao");
        padLigSection.setItems(listPadLig);
        padLigSection.setControls(addpadLig);
        padLigSection.setExpanded(true);
        //criando coluna para grid telefone
        ListGridField nomePesAut = new ListGridField("nomePesAut", "Nome");
        nomePesAut.setRequired(true);
        nomePesAut.setAlign(Alignment.CENTER);
        //pega o valor do nmero do telefone
        ListGridField telefonePesAutMas = new ListGridField("telefoneMas", "Telefone");
        telefonePesAutMas.setAlign(Alignment.CENTER);
        ListGridField telefonePesAut = new ListGridField("telefone", "Telefone");
        telefonePesAut.setAlign(Alignment.CENTER);
        telefonePesAut.setHidden(true);
        //pega o valor da descrio
        ListGridField descPesAut = new ListGridField("descricaoPesAut", "Descrio");
        descPesAut.setAlign(Alignment.CENTER);
        //adicionando na lista grid de Pessoa Autorizada
        listPesAut.setFields(nomePesAut, telefonePesAutMas, telefonePesAut, descPesAut);
        //listTelefone.setCanPickFields(false);
        listPesAut.setCanRemoveRecords(true);
        //criando seo telefone
        final SectionStackSection pesAutSection = new SectionStackSection();
        pesAutSection.setTitle("Pessoas Autorizadas");
        pesAutSection.setItems(listPesAut);
        pesAutSection.setControls(addPesAut);
        pesAutSection.setExpanded(true);
        //boto para adicionar nova linha na ListGrid telefone
        addPesAut.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                NovaPessoaAutorizada novaPesAut = new NovaPessoaAutorizada(listPesAut);
                novaPesAut.setAnimateTime(1200);
                novaPesAut.animateShow(AnimationEffect.FADE);
            }
        });

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

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

        //Evento Clique do boto Limpar
        limpar.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {

                formNovoVeiculo.markForRedraw();
                indicado.clearValue();
                LinkedHashMap<String, String> valueMapVeic = new LinkedHashMap<String, String>();
                valueMapVeic.put("0", "Sem indicao");
                indicado.setValueMap(valueMapVeic);
                placa.clearValue();
                chassi.clearValue();
                fabricante.clearValue();
                modelo.clearValue();
                cor.clearValue();
                ano.clearValue();
                dataAdesao.clearValue();
                desconto.setValue("00.00");
                tipoPlano.clearValue();
                equipamento.clearValue();
                instalador.clearValue();
                ativo.clearValue();
                listPadLig.selectAllRecords();
                listPadLig.removeSelectedData();
                listPesAut.selectAllRecords();
                listPesAut.removeSelectedData();
            }
        });

        cadastrar.addClickHandler(new ClickHandler() {

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

                    new Timer() {
                        public void run() {

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

                                if (contador >= 100) {
                                    mensagem.setContents("Carregando: 100%");
                                    janelaCarregando.addItem(mensagem);
                                    TreeMap<String, String> veiculo = new TreeMap<String, String>();
                                    ArrayList<TreeMap<String, String>> padroesLigacao = new ArrayList<TreeMap<String, String>>();
                                    ArrayList<TreeMap<String, String>> pesssoasAut = new ArrayList<TreeMap<String, String>>();

                                    veiculo.put("codPlano", tipoPlano.getValueAsString());
                                    veiculo.put("codCliente", cliente.getValueAsString());
                                    veiculo.put("codEquipamento", equipamento.getValueAsString());
                                    veiculo.put("codFuncionario", instalador.getValueAsString());
                                    veiculo.put("codVeiculoIndicador", indicado.getValueAsString());
                                    veiculo.put("placa", placa.getValueAsString());
                                    veiculo.put("cidadeCodCidade", itemCidade.getValueAsString());
                                    veiculo.put("chassi", chassi.getValueAsString());
                                    veiculo.put("fabricante", fabricante.getValueAsString());
                                    veiculo.put("modelo", modelo.getValueAsString());
                                    veiculo.put("cor", cor.getValueAsString());
                                    veiculo.put("ano", ano.getValueAsString());
                                    Date datadeAdesao = dataAdesao.getValueAsDate();
                                    veiculo.put("ativo", ativo.getValueAsString());
                                    veiculo.put("desconto", desconto.getValueAsString());
                                    veiculo.put("ParcelaPagamentoCodParcela", numeroParcelas.getValueAsString());

                                    if (!listPadLig.getRecordList().isEmpty()) {

                                        ListGridRecord padraos[] = listPadLig.getRecords();
                                        for (int i = 0; i < padraos.length; i++) {
                                            TreeMap<String, String> treeMapPadLig = new TreeMap<String, String>();
                                            treeMapPadLig.put("corFio", padraos[i].getAttribute("corFio"));
                                            treeMapPadLig.put("sinal", padraos[i].getAttribute("sinal"));
                                            treeMapPadLig.put("padrao", padraos[i].getAttribute("padrao"));
                                            treeMapPadLig.put("funcao", padraos[i].getAttribute("funcao"));
                                            treeMapPadLig.put("ativo", padraos[i].getAttribute("fieldAtivo"));
                                            treeMapPadLig.put("descricao", padraos[i].getAttribute("descricaoPl"));
                                            padroesLigacao.add(treeMapPadLig);
                                        }
                                    }

                                    if (!listPesAut.getRecordList().isEmpty()) {
                                        ListGridRecord pessoa[] = listPesAut.getRecords();
                                        for (int i = 0; i < pessoa.length; i++) {
                                            TreeMap<String, String> treeMapPesAut = new TreeMap<String, String>();
                                            treeMapPesAut.put("nome", pessoa[i].getAttribute("nomePesAut"));
                                            treeMapPesAut.put("telefone", pessoa[i].getAttribute("telefone"));
                                            treeMapPesAut.put("descricao",
                                                    pessoa[i].getAttribute("descricaoPesAut"));
                                            pesssoasAut.add(treeMapPesAut);
                                        }
                                    }
                                    int codGrupo = Integer.parseInt(Info.usuarioLogado.get("codGrupo"));
                                    Info.dbService.cadastrarVeiculo(codGrupo, veiculo, datadeAdesao, padroesLigacao,
                                            pesssoasAut, new AsyncCallback<Void>() {

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

                                                @Override
                                                public void onSuccess(Void result) {
                                                    SC.say("Veiculo Cadastrado com Sucesso");
                                                    windAux.destroy();
                                                }
                                            });
                                    janelaCarregando.setAnimateTime(1200);
                                    janelaCarregando.animateHide(AnimationEffect.FADE);
                                    contador = 100;
                                    janelaCarregando.destroy();
                                }
                            } else {
                                contador = 0;
                            }

                        }
                    }.schedule(50);

                } else {
                    if (formNovoVeiculo.validate(false) && listPadLig.getRecordList().isEmpty() == true) {
                        SC.say("Cadastre pelo menos um padro de Ligao");
                        addpadLig.focus();
                    }
                }
            }
        });

        painelBotoesNovoVeiculo.addMember(cadastrar);
        painelBotoesNovoVeiculo.addMember(limpar);

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

        addItem(painelpagina);

    }

    private void numeroDeParcelas(String numParc) {

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

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

                    @Override
                    public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                        if (result != null) {
                            LinkedHashMap<String, String> quantParcelas = new LinkedHashMap<>();
                            for (TreeMap<String, String> parcelas : result) {
                                quantParcelas.put(parcelas.get("codParcela"), parcelas.get("numero") + "X de R$"
                                        + Info.formataValor(Float.parseFloat(parcelas.get("valor"))));
                            }
                            numeroParcelas.setValueMap(quantParcelas);
                            numeroParcelas.setDefaultToFirstOption(true);
                        }
                    }
                });
    }

}