Example usage for com.google.gwt.user.client Timer Timer

List of usage examples for com.google.gwt.user.client Timer Timer

Introduction

In this page you can find the example usage for com.google.gwt.user.client Timer Timer.

Prototype

Timer

Source Link

Usage

From source file:com.apress.progwt.client.GWTApp.java

License:Apache License

public GWTApp(int pageID) {
    this.pageID = pageID;

    // setup the StatusPanel. There will be just one DIV for this, no
    // matter how many apps we have in the same page.
    try {/*from   www .ja va2 s  . c o m*/
        RootPanel status = RootPanel.get("gwt-status");
        if (status.getWidgetCount() == 0) {
            StatusPanel sp = new StatusPanel();
            status.add(sp);
            StdAsyncCallback.setManager(sp);
        }

    } catch (Exception e) {
        Log.error("Status Panel problem: ");
    }

    // create the Local Server after enough of a delay so that we try
    // to appear as lightweight as possible.
    new Timer() {
        @Override
        public void run() {
            try {
                doLocalServer();
            } catch (Exception e) {
                Log.warn("LocalServer exception: " + e);
            }
        }
    }.schedule(10000);

}

From source file:com.apress.progwt.client.GWTApp.java

License:Apache License

private void doLocalServer() throws GearsException {
    LocalServer localServer = new LocalServer();

    final ManagedResourceStore managedResourceStore = localServer.createManagedResourceStore("ToCollege.net");
    try {//from   ww  w.  j av  a  2s  .  co  m
        managedResourceStore.setManifestURL(Interactive.getRelativeURL(MANIFEST_URL));
    } catch (Exception e) {
        // expected in hosted mode. catches JS exception from setting
        // 8080 when running on 8888
        throw new GearsException(e.getMessage());
    }

    new Timer() {
        public void run() {
            switch (managedResourceStore.getUpdateStatus()) {
            case ManagedResourceStore.UPDATE_OK:
                Log.info("UPDATE_OK " + managedResourceStore.getCurrentVersion());
                cancel();
                break;
            case ManagedResourceStore.UPDATE_CHECKING:
                Log.debug("Checking " + managedResourceStore.getCurrentVersion());
                break;
            case ManagedResourceStore.UPDATE_DOWNLOADING:
                Log.debug("Downloading " + managedResourceStore.getCurrentVersion());
                break;
            case ManagedResourceStore.UPDATE_FAILED:
                Log.warn("Fail " + managedResourceStore.getCurrentVersion());
                Log.warn(managedResourceStore.getLastErrorMessage());
                cancel();
                break;
            }

        }
    }.scheduleRepeating(2000);
    managedResourceStore.checkForUpdate();
}

From source file:com.apress.progwt.client.suggest.AbstractCompleter.java

License:Apache License

public AbstractCompleter(AbstractSuggestOracle<T> oracle, CompleteListener<T> completeListener) {
    super();//from ww  w .  j a  v  a2s. co m
    this.oracle = oracle;
    this.completeListener = completeListener;

    suggestBox = new SuggestBox(oracle);
    suggestBox.addEventHandler(new SuggestionHandler() {

        public void onSuggestionSelected(SuggestionEvent event) {
            Log.debug("On Suggestion Selected! " + event.getSelectedSuggestion().getReplacementString());

            // Important, this prevents duplications
            if (keyboardEnterTimer != null) {
                keyboardEnterTimer.cancel();
            }

            complete(event.getSelectedSuggestion().getReplacementString());
        }
    });

    suggestBox.addKeyboardListener(new KeyboardListenerAdapter() {
        // @Override
        public void onKeyPress(Widget sender, char keyCode, int modifiers) {
            if (keyCode == KEY_ENTER) {

                keyboardEnterTimer = new Timer() {
                    // @Override
                    public void run() {
                        complete(suggestBox.getText());
                    }
                };
                keyboardEnterTimer.schedule(400);
            }
        }
    });
    initWidget(suggestBox);
}

From source file:com.arcbees.beestore.client.application.widget.slider.Slider.java

License:Apache License

private void queueFinishAnimation() {
    new Timer() {
        @Override// w w  w  .  j a  v a2 s  .  com
        public void run() {
            activeAnimation = false;
            if (!calls.isEmpty()) {
                Function nextCall = calls.poll();
                nextCall.f();
            }
        }
    }.schedule(ANIMATION_DURATION);
}

From source file:com.arcbees.facebook.client.JavaScriptFacebook.java

License:Apache License

@Override
public void injectFacebookApi(final FacebookCallback facebookCallback) {

    String locale = "en_US";

    // get the correct locale from meta tag gwt:property facebooklocale
    final NodeList<Element> metas = Document.get().getElementsByTagName("meta");

    for (int i = 0; i < metas.getLength(); i++) {
        final MetaElement m = MetaElement.as(metas.getItem(i));

        if ("gwt:property".equals(m.getName())) {
            String content = m.getContent();
            if (content.contains("facebooklocale")) {
                locale = content.replaceFirst(".*\\=", "").trim();
            }//w  ww. java2  s.  c  o m
        }
    }

    Element firstElement = Document.get().getBody().getFirstChildElement();

    Element fbRoot = Document.get().createDivElement();
    fbRoot.setId(FB_ROOT);

    firstElement.getParentNode().insertBefore(fbRoot, firstElement);

    ScriptElement fbScript = Document.get().createScriptElement();
    fbScript.setSrc(FB_SCRIPT_SRC1 + locale + FB_SCRIPT_SRC2);
    fbScript.setType(FB_SCRIPT_TYPE);

    fbRoot.getParentNode().insertAfter(fbScript, fbRoot);

    Timer ensureFbIsLoaded = new Timer() {
        @Override
        public void run() {
            if (isLoaded()) {
                facebookCallback.onSuccess();

                cancel();
            }
        }
    };

    ensureFbIsLoaded.scheduleRepeating(100);
}

From source file:com.arcbees.gquery.appear.client.Appear.java

License:Apache License

private Timer createEventsTimer() {
    return new Timer() {
        @Override// w  w w .jav a 2s.  c om
        public void run() {
            if (hasDomMutated) {
                refreshScrollEvents();
            }

            if (hasScrolled || hasResized || hasDomMutated) {
                hasScrolled = false;
                hasResized = false;
                hasDomMutated = false;
                checkElementsAppearance();
            }
        }
    };
}

From source file:com.arcbees.gquery.tooltip.client.TooltipImpl.java

License:Apache License

private static void enter(Event e, TooltipImpl originalImpl) {
    if (!originalImpl.enabled) {
        return;/*from  w ww.j  a v  a  2 s  .c om*/
    }

    Element target = e.getCurrentEventTarget().cast();
    final TooltipImpl impl = getTooltipImpl(target, originalImpl.delegationOptions);

    impl.cancelTimer();

    if (impl.options.getDelayShow() == 0) {
        impl.show();
        return;
    }

    impl.setHover(true);

    Timer timer = new Timer() {
        @Override
        public void run() {
            if (impl.isHover()) {
                impl.show();
            }
        }
    };

    impl.setTimer(timer);
    timer.schedule(impl.options.getDelayShow());
}

From source file:com.arcbees.gquery.tooltip.client.TooltipImpl.java

License:Apache License

private static void leave(Event e, TooltipOptions delegateOptions) {
    Element target = e.getCurrentEventTarget().cast();
    final TooltipImpl impl = getTooltipImpl(target, delegateOptions);

    impl.cancelTimer();//from   w  w  w.  j av  a  2 s.c  o  m

    if (impl.options.getDelayHide() == 0) {
        impl.hide();
        return;
    }

    impl.setHover(false);

    Timer timer = new Timer() {
        @Override
        public void run() {
            if (!impl.isHover()) {
                impl.hide();
            }
        }
    };

    impl.setTimer(timer);
    timer.schedule(impl.options.getDelayHide());
}

From source file:com.automaster.autoview.client.Info.java

public static void abrirJanelaCarregando() {

    Info.janelaCarregando = new HLayout();
    Info.janelaCarregando.setWidth100();
    Info.janelaCarregando.setHeight100();
    Info.janelaCarregando.setShowEdges(false);
    Info.janelaCarregando.setLayoutAlign(Alignment.CENTER);
    Info.janelaCarregando.setAlign(Alignment.CENTER);
    arrayHlayout.add(janelaCarregando);/*from   ww w .j av a 2 s .  c o  m*/

    Info.janela = new VLayout();
    Info.janela.setBackgroundColor("#1BAEAE");
    Info.janela.setWidth(200);
    Info.janela.setHeight(45);
    Info.janela.setShowEdges(false);

    Info.janela.setLayoutAlign(Alignment.CENTER);
    Info.janelaCarregando.addMember(janela);
    //        if (Info.startTread) {
    //            Info.startTread = false;
    Info.avisoAguarde = new Timer() {

        @Override
        public void run() {
            Info.mensagem = new Label(
                    "<center style=\"font-family: Roboto; font-size: 32px; color: #fff;\">Aguarde...</center>");
            Info.mensagem.setLayoutAlign(Alignment.CENTER);
            Info.mensagem.setHeight(35);
            Info.janela.setMembers(Info.mensagem);
            Info.janelaCarregando.setAnimateTime(800);
            Info.janelaCarregando.animateShow(AnimationEffect.FADE);
        }
    };
    Info.avisoAguarde.scheduleRepeating(1000);
    //        } 
    GWT.log("CRIANDO A TIMER!");
    arrayTimer.add(avisoAguarde);
}

From source file:com.automaster.autoview.client.ui.paineis.dialogs.cadastro.NovoVeiculo.java

public NovoVeiculo(final int codigoCliente, final String nomeCliente, final ListGrid veicPlacas,
        final TabBuscarCliente tabBuscaCliente, final String tabelaVazia,
        final TreeMap<String, ArrayList<TreeMap<String, String>>> placasCliente) {

    this.codVeiculoIndicador = 0;
    this.campo = "";
    this.flagItemValor = false;
    this.codPessoaAutorizada = 0;
    indiceNovaPessoa = 0;//from w w w. j  a v  a2  s .  c om
    this.arrayPessoasAutorizadas = new ArrayList<>();
    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.itemMarca = new ComboBoxItem();
    this.itemModelo = new ComboBoxItem();
    this.itemAno = new ComboBoxItem();
    this.numeroParcelas = new SelectItem();
    this.valueMapVeic = new LinkedHashMap<>();
    this.valorMensalidade = new Label();
    this.planoMaster = 0;
    this.planoComodato = 0;
    this.validaPlaca = false;
    this.validaChassi = false;
    this.addpadLig = new ImgButton();
    this.arrrayFiosEquipamento = new ArrayList<>();
    // abriu o formulrio de cadastro do novo veculo //
    listPesAut = new ListGrid() {
        @Override
        protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum) {
            String fieldName = this.getFieldName(colNum);
            final ListGrid listAux = this;
            if (fieldName.equals("excluir")) {
                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) {

                        String codigo = record.getAttributeAsString("codigoInterface");
                        int linhaClicada = listAux.getRecordIndex(record);
                        listAux.selectRecord(linhaClicada);
                        listAux.removeSelectedData();
                        itemPessoasAutorizadas.redraw();
                        String pessoasAutorizadosRastrear[] = itemPessoasAutorizadas.getValues();
                        String pessoasAutorizadosRastrearNova[] = new String[pessoasAutorizadosRastrear.length];
                        int num = arrayPessoasAutorizadas.size();
                        int removidos = 0;
                        for (String temp : pessoasAutorizadosRastrear) {
                            if (!codigo.equalsIgnoreCase(temp)) {
                                pessoasAutorizadosRastrearNova[removidos] = temp;
                                removidos++;
                            }
                        }
                        itemPessoasAutorizadas.redraw();
                        itemPessoasAutorizadas.setValues(pessoasAutorizadosRastrearNova);
                        /*for (int i = 0; i < num; i++) {
                         TreeMap<String, String> endEditado = arrayPessoasAutorizadas.get(i - removidos);
                         if (codigo.equalsIgnoreCase(endEditado.get("codPessoa"))) {
                         arrayPessoasAutorizadas.remove(endEditado);
                         removidos++;
                         }
                         }*/
                        com.google.gwt.core.client.GWT
                                .log("arrayPessoasAutorizadas - NovoVeiculo: " + arrayPessoasAutorizadas);
                    }
                });
                recordCanvas.addMember(excluirImg);
                return recordCanvas;

            } else {
                return null;
            }

        }
    };
    listPadLig = new ListGrid();
    Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 232,
            new Timestamp(System.currentTimeMillis()), "CLiente: " + nomeCliente);
    final Window windAux = this;
    setTitle(Info.titulosMsg.get("novoVeiculo"));
    setWidth(1200);
    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("terminarCadastroVeiculo"), new BooleanCallback() {

                @Override
                public void execute(Boolean value) {
                    if (value) {
                        // no terminou o cadastro do veculo //
                        Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 94,
                                new Timestamp(System.currentTimeMillis()), "CLiente: " + nomeCliente);
                        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 formNovoVeiculo = new DynamicForm();
    formNovoVeiculo.setMargin(30);
    formNovoVeiculo.setLayoutAlign(Alignment.CENTER);
    formNovoVeiculo.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 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(result.get(0).get("codPlano"));
            } else {
                pl.put("0", Info.titulosMsg.get("naoHaPlano"));
                tipoPlano.setValue("0");

            }
        }

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

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

    final ComboBoxItem cliente = new ComboBoxItem();
    cliente.setAddUnknownValues(false);
    cliente.setTitle(Info.titulosMsg.get("tituloCliente"));
    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 ComboBoxItem itemConfiguracao = new ComboBoxItem();
    itemConfiguracao.setAddUnknownValues(false);
    itemConfiguracao.setTitle(Info.titulosMsg.get("configuracaoDoFio"));
    itemConfiguracao.setName("itemConfiguracao");
    itemConfiguracao.setHint("<nbr></nbr>");
    conf = new LinkedHashMap<>();
    conf.put("0", "Sem configuracao");
    itemConfiguracao.setValueMap(conf);
    itemConfiguracao.setValue("0");
    itemConfiguracao.setHint("<nbr></nbr>");
    itemConfiguracao.setRequired(false);
    itemConfiguracao.setDisabled(true);
    itemConfiguracao.setWidth(450);
    itemConfiguracao.addChangedHandler(new ChangedHandler() {

        @Override
        public void onChanged(ChangedEvent event) {
            String itemSelecionado = (String) event.getValue();
            listPadLig.setData(new Record[0]);
            for (TreeMap<String, String> fio : arrrayFiosEquipamento) {
                if (fio.get("codMecf").equalsIgnoreCase(itemSelecionado)) {
                    Record padLig = new Record();
                    padLig.setAttribute("corFio", fio.get("corFio"));
                    padLig.setAttribute("sinalMas",
                            (fio.get("sinal").equalsIgnoreCase("true")) ? "Positivo" : "Negativo");
                    padLig.setAttribute("sinal", fio.get("sinal"));
                    padLig.setAttribute("padraoMas",
                            (fio.get("padrao").equalsIgnoreCase("true")) ? "Ligado" : "Desligado");
                    padLig.setAttribute("padrao", fio.get("padrao"));
                    padLig.setAttribute("funcaoMas",
                            (fio.get("funcao").equalsIgnoreCase("true")) ? "Entrada" : "Sada");
                    padLig.setAttribute("funcao", fio.get("funcao"));
                    padLig.setAttribute("fieldAtivoMas",
                            (fio.get("ativo").equalsIgnoreCase("true")) ? "Sim" : "No");
                    padLig.setAttribute("fieldAtivo", fio.get("ativo"));
                    padLig.setAttribute("descricaoPl",
                            (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");
    equipamento.setSortField("name");
    FormItemIcon refreshEquip = new FormItemIcon();
    refreshEquip.setSrc("[SKIN]actions/refresh.png");
    refreshEquip.setName("refreshEquipamento");
    refreshEquip.setPrompt("Atualizar lista");
    equipamento.setIcons(refreshEquip);
    Info.dbService.buscarTodosDisponiveis(codigoUnidade,
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                @Override
                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                    LinkedHashMap<String, String> equip = new LinkedHashMap<>();
                    boolean firstEquip = true;
                    if (result != null) {
                        //itemConfiguracao.setHint("<nbr>*</nbr>");
                        //itemConfiguracao.setRequired(true);
                        //itemConfiguracao.setDisabled(false);
                        equip.put("0;0", "Sem equipamento");
                        //firstEquipamento = result.get(0).get("codEquipamento");
                        for (TreeMap<String, String> equipDisponiveis : result) {
                            equip.put(equipDisponiveis.get("id") + ";" + equipDisponiveis.get("codEquipamento"),
                                    equipDisponiveis.get("id") + " / " + equipDisponiveis.get("fabricanteMe")
                                            + " / " + equipDisponiveis.get("descricaoMe")
                                            + ((codigoUnidade == 1)
                                                    ? " / " + equipDisponiveis.get("nomeUnidade")
                                                    : ""));
                            if (Integer.parseInt(equipDisponiveis.get("codUnidade")) == codigoUnidade
                                    && firstEquip) {
                                firstEquip = false;
                                //firstEquipamento = equipDisponiveis.get("codEquipamento");
                            }
                        }
                        equipamento.setValueMap(equip);
                        equipamento.setValue(firstEquipamento);
                        /*if(Integer.parseInt(firstEquipamento.substring(firstEquipamento.indexOf(";")+1, firstEquipamento.length())) > 0){
                        Info.dbService.buscarFiosDoEquipamentoPorModeloDeEquipamento(Integer.parseInt(firstEquipamento.substring(firstEquipamento.indexOf(";")+1, firstEquipamento.length())), 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) {
                                
                            if (fiosEquipamento != null) {
                                arrrayFiosEquipamento = fiosEquipamento;
                                TreeMap<String, String> codMecf = new TreeMap<>();
                                conf = new LinkedHashMap<>();
                                for (TreeMap<String, String> fio : fiosEquipamento) {
                                    if (!codMecf.containsKey(fio.get("codMecf"))) {
                                        conf.put(fio.get("codMecf"), fio.get("nome") + " / " + fio.get("descricaomecf"));
                                        codMecf.put(fio.get("codMecf"), fio.get("codMecf"));
                                    }
                                    if (fio.get("codMecf").equalsIgnoreCase(fiosEquipamento.get(0).get("codMecf"))) {
                                        Record padLig = new Record();
                                        padLig.setAttribute("corFio", fio.get("corFio"));
                                        padLig.setAttribute("sinalMas", (fio.get("sinal").equalsIgnoreCase("true")) ? "Positivo" : "Negativo");
                                        padLig.setAttribute("sinal", fio.get("sinal"));
                                        padLig.setAttribute("padraoMas", (fio.get("padrao").equalsIgnoreCase("true")) ? "Ligado" : "Desligado");
                                        padLig.setAttribute("padrao", fio.get("padrao"));
                                        padLig.setAttribute("funcaoMas", (fio.get("funcao").equalsIgnoreCase("true")) ? "Entrada" : "Sada");
                                        padLig.setAttribute("funcao", fio.get("funcao"));
                                        padLig.setAttribute("fieldAtivoMas", (fio.get("ativo").equalsIgnoreCase("true")) ? "Sim" : "No");
                                        padLig.setAttribute("fieldAtivo", fio.get("ativo"));
                                        padLig.setAttribute("descricaoPl", (fio.get("descricao") == null || fio.get("descricao").equalsIgnoreCase("")) ? "Sem informao" : fio.get("descricao"));
                                        listPadLig.addData(padLig);
                                    }
                                }
                                itemConfiguracao.setValueMap(conf);
                                itemConfiguracao.setValue(fiosEquipamento.get(0).get("codMecf"));
                                
                            } else {
                                GWT.log("Erro ao consultar os fios do equipamento!");
                            }
                                
                        }
                        });
                        }*/

                    } else {
                        equip.put("0;0", Info.titulosMsg.get("naoHaEquipamento"));
                        equipamento.setValueMap(equip);
                        equipamento.setValue("0;0");
                        itemConfiguracao.setHint("<nbr></nbr>");
                        itemConfiguracao.setRequired(false);
                        itemConfiguracao.setDisabled(true);
                        conf = new LinkedHashMap<>();
                        conf.put("0", "Sem configuracao");
                        itemConfiguracao.setValueMap(conf);
                        itemConfiguracao.setValue("0");
                        addpadLig.disable();
                    }

                }

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

                }
            });
    refreshEquip.addFormItemClickHandler(new FormItemClickHandler() {

        @Override
        public void onFormItemClick(FormItemIconClickEvent event) {
            equipamento.redraw();
            Info.dbService.buscarTodosDisponiveis(codigoUnidade,
                    new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                        @Override
                        public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                            LinkedHashMap<String, String> equip = new LinkedHashMap<>();
                            boolean firstEquip = true;
                            if (result != null) {
                                itemConfiguracao.setHint("<nbr>*</nbr>");
                                itemConfiguracao.setRequired(true);
                                itemConfiguracao.setDisabled(false);
                                equip.put("0;0", "Sem equipamento");
                                //firstEquipamento = result.get(0).get("codEquipamento");
                                for (TreeMap<String, String> equipDisponiveis : result) {
                                    equip.put(
                                            equipDisponiveis.get("id") + ";"
                                                    + equipDisponiveis.get("codEquipamento"),
                                            equipDisponiveis.get("id") + " / "
                                                    + equipDisponiveis.get("fabricanteMe") + " / "
                                                    + equipDisponiveis.get("descricaoMe")
                                                    + ((codigoUnidade == 1)
                                                            ? " / " + equipDisponiveis.get("nomeUnidade")
                                                            : ""));
                                    if (Integer.parseInt(equipDisponiveis.get("codUnidade")) == codigoUnidade
                                            && firstEquip) {
                                        firstEquip = false;
                                        //firstEquipamento = equipDisponiveis.get("codEquipamento");
                                    }
                                }
                                equipamento.setValueMap(equip);
                                equipamento.setValue(firstEquipamento);
                                listPadLig.setData(new RecordList());
                                if (Integer.parseInt(firstEquipamento.substring(
                                        firstEquipamento.indexOf(";") + 1, firstEquipamento.length())) > 0) {
                                    Info.dbService.buscarFiosDoEquipamentoPorModeloDeEquipamento(
                                            Integer.parseInt(firstEquipamento.substring(
                                                    firstEquipamento.indexOf(";") + 1,
                                                    firstEquipamento.length())),
                                            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) {

                                                    if (fiosEquipamento != null) {
                                                        arrrayFiosEquipamento = fiosEquipamento;
                                                        TreeMap<String, String> codMecf = new TreeMap<>();
                                                        conf = new LinkedHashMap<>();
                                                        for (TreeMap<String, String> fio : fiosEquipamento) {
                                                            if (!codMecf.containsKey(fio.get("codMecf"))) {
                                                                conf.put(fio.get("codMecf"), fio.get("nome")
                                                                        + " / " + fio.get("descricaomecf"));
                                                                codMecf.put(fio.get("codMecf"),
                                                                        fio.get("codMecf"));
                                                            }
                                                            if (fio.get("codMecf").equalsIgnoreCase(
                                                                    fiosEquipamento.get(0).get("codMecf"))) {
                                                                Record padLig = new Record();
                                                                padLig.setAttribute("corFio",
                                                                        fio.get("corFio"));
                                                                padLig.setAttribute("sinalMas",
                                                                        (fio.get("sinal")
                                                                                .equalsIgnoreCase("true"))
                                                                                        ? "Positivo"
                                                                                        : "Negativo");
                                                                padLig.setAttribute("sinal", fio.get("sinal"));
                                                                padLig.setAttribute("padraoMas",
                                                                        (fio.get("padrao")
                                                                                .equalsIgnoreCase("true"))
                                                                                        ? "Ligado"
                                                                                        : "Desligado");
                                                                padLig.setAttribute("padrao",
                                                                        fio.get("padrao"));
                                                                padLig.setAttribute("funcaoMas",
                                                                        (fio.get("funcao")
                                                                                .equalsIgnoreCase("true"))
                                                                                        ? "Entrada"
                                                                                        : "Sada");
                                                                padLig.setAttribute("funcao",
                                                                        fio.get("funcao"));
                                                                padLig.setAttribute("fieldAtivoMas",
                                                                        (fio.get("ativo").equalsIgnoreCase(
                                                                                "true")) ? "Sim" : "No");
                                                                padLig.setAttribute("fieldAtivo",
                                                                        fio.get("ativo"));
                                                                padLig.setAttribute("descricaoPl",
                                                                        (fio.get("descricao") == null || fio
                                                                                .get("descricao")
                                                                                .equalsIgnoreCase(""))
                                                                                        ? "Sem informao"
                                                                                        : fio.get("descricao"));
                                                                listPadLig.addData(padLig);
                                                            }
                                                        }
                                                        itemConfiguracao.setValueMap(conf);
                                                        itemConfiguracao.setValue(
                                                                fiosEquipamento.get(0).get("codMecf"));

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

                                                }
                                            });
                                }

                            } else {
                                equip.put("0;0", Info.titulosMsg.get("naoHaEquipamento"));
                                equipamento.setValueMap(equip);
                                equipamento.setValue("0;0");
                                itemConfiguracao.setHint("<nbr></nbr>");
                                itemConfiguracao.setRequired(false);
                                itemConfiguracao.setDisabled(true);
                                conf = new LinkedHashMap<>();
                                conf.put("0", "Sem configuracao");
                                itemConfiguracao.setValueMap(conf);
                                itemConfiguracao.setValue("0");
                                addpadLig.disable();
                            }

                        }

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

                        }
                    });
        }
    });
    equipamento.setHint("<nbr>*</nbr>");
    equipamento.setRequired(true);
    equipamento.setWidth(450);
    equipamento.addChangedHandler(new ChangedHandler() {

        @Override
        public void onChanged(ChangedEvent event) {
            GWT.log("ID value: " + equipamento.getValueAsString().substring(
                    equipamento.getValueAsString().indexOf(";") + 1, equipamento.getValueAsString().length()));
            if (Integer.parseInt(
                    equipamento.getValueAsString().substring(equipamento.getValueAsString().indexOf(";") + 1,
                            equipamento.getValueAsString().length())) > 0) {
                addpadLig.enable();
                listPadLig.setData(new RecordList());
                Info.dbService.buscarFiosDoEquipamentoPorModeloDeEquipamento(
                        Integer.parseInt(equipamento.getValueAsString().substring(
                                equipamento.getValueAsString().indexOf(";") + 1,
                                equipamento.getValueAsString().length())),
                        new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                            @Override
                            public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                                if (result != null) {
                                    itemConfiguracao.setHint("<nbr>*</nbr>");
                                    itemConfiguracao.setRequired(true);
                                    itemConfiguracao.setDisabled(false);
                                    arrrayFiosEquipamento = result;
                                    TreeMap<String, String> nome = new TreeMap<>();
                                    conf = new LinkedHashMap<>();
                                    for (TreeMap<String, String> fio : result) {
                                        if (!nome.containsKey(fio.get("codMecf"))) {
                                            conf.put(fio.get("codMecf"),
                                                    fio.get("nome") + " / " + fio.get("descricaomecf"));
                                            nome.put(fio.get("codMecf"), fio.get("codMecf"));
                                        }
                                        if (fio.get("codMecf").equalsIgnoreCase(result.get(0).get("codMecf"))) {
                                            Record padLig = new Record();
                                            padLig.setAttribute("corFio", fio.get("corFio"));
                                            padLig.setAttribute("sinalMas",
                                                    (fio.get("sinal").equalsIgnoreCase("true")) ? "Positivo"
                                                            : "Negativo");
                                            padLig.setAttribute("sinal", fio.get("sinal"));
                                            padLig.setAttribute("padraoMas",
                                                    (fio.get("padrao").equalsIgnoreCase("true")) ? "Ligado"
                                                            : "Desligado");
                                            padLig.setAttribute("padrao", fio.get("padrao"));
                                            padLig.setAttribute("funcaoMas",
                                                    (fio.get("funcao").equalsIgnoreCase("true")) ? "Entrada"
                                                            : "Sada");
                                            padLig.setAttribute("funcao", fio.get("funcao"));
                                            padLig.setAttribute("fieldAtivoMas",
                                                    (fio.get("ativo").equalsIgnoreCase("true")) ? "Sim"
                                                            : "No");
                                            padLig.setAttribute("fieldAtivo", fio.get("ativo"));
                                            padLig.setAttribute("descricaoPl",
                                                    (fio.get("descricao") == null
                                                            || fio.get("descricao").equalsIgnoreCase(""))
                                                                    ? "Sem informao"
                                                                    : fio.get("descricao"));
                                            listPadLig.addData(padLig);
                                        }
                                    }
                                    itemConfiguracao.setValueMap(conf);
                                    itemConfiguracao.setValue(result.get(0).get("codMecf"));

                                } else {
                                    itemConfiguracao.setHint("<nbr></nbr>");
                                    itemConfiguracao.setRequired(false);
                                    itemConfiguracao.setDisabled(true);
                                    GWT.log("Erro ao consultar os fios do equipamento!");
                                }

                            }

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

                            }
                        });

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

    final ComboBoxItem instalador = new ComboBoxItem();
    instalador.setAddUnknownValues(false);
    instalador.setTitle(Info.titulosMsg.get("instalador"));
    instalador.setName("instalador");
    FormItemIcon refreshInstalador = new FormItemIcon();
    refreshInstalador.setSrc("[SKIN]actions/refresh.png");
    refreshInstalador.setName("refreshEquipamento");
    refreshInstalador.setPrompt("Atualizar lista");
    instalador.setIcons(refreshInstalador);

    refreshInstalador.addFormItemClickHandler(new FormItemClickHandler() {

        @Override
        public void onFormItemClick(FormItemIconClickEvent event) {
            instalador.redraw();
            Info.dbService.buscarFuncionarioPorCargoEstado(1, codigoUnidade,
                    new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                        @Override
                        public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                            LinkedHashMap<String, String> inst = new LinkedHashMap<>();
                            boolean firtInst = true;

                            if (result != null) {
                                firstInstalador = result.get(0).get("codFuncionario");
                                for (TreeMap<String, String> funcionario : result) {
                                    //+((codigoUnidade == 1) ? " / "+funcionario.get("nomeUnidade") : "")
                                    inst.put(funcionario.get("codFuncionario"),
                                            funcionario.get("nome") + ((codigoUnidade == 1)
                                                    ? " / " + funcionario.get("nomeUnidade")
                                                    : ""));
                                    if (Integer.parseInt(funcionario.get("codUnidade")) == codigoUnidade
                                            && firtInst) {
                                        firtInst = false;
                                        firstInstalador = funcionario.get("codFuncionario");
                                    }
                                }
                                instalador.setValueMap(inst);
                                instalador.setValue(firstInstalador);
                            } else {
                                inst.put("0", Info.titulosMsg.get("naoHaInstalador"));
                                instalador.setValueMap(inst);
                                instalador.setValue("0");
                            }
                        }

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

                        }
                    });
        }
    });

    Info.dbService.buscarFuncionarioPorCargoEstado(1, codigoUnidade,
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                @Override
                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                    LinkedHashMap<String, String> inst = new LinkedHashMap<>();
                    boolean firtInst = true;

                    if (result != null) {
                        firstInstalador = result.get(0).get("codFuncionario");
                        for (TreeMap<String, String> funcionario : result) {
                            //+((codigoUnidade == 1) ? " / "+funcionario.get("nomeUnidade") : "")
                            inst.put(funcionario.get("codFuncionario"), funcionario.get("nome")
                                    + ((codigoUnidade == 1) ? " / " + funcionario.get("nomeUnidade") : ""));
                            if (Integer.parseInt(funcionario.get("codUnidade")) == codigoUnidade && firtInst) {
                                firtInst = false;
                                firstInstalador = funcionario.get("codFuncionario");
                            }
                        }
                        instalador.setValueMap(inst);
                        instalador.setValue(firstInstalador);
                    } else {
                        inst.put("0", Info.titulosMsg.get("naoHaInstalador"));
                        instalador.setValueMap(inst);
                        instalador.setValue("0");
                    }
                }

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

                }
            });
    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"));
    FormItemIcon icon = new FormItemIcon();
    icon.setSrc("[SKIN]actions/add.png");
    icon.setName("adicionarIndicacao");
    indicado.setHint("<nbr>*</nbr>");
    indicado.setWidth(450);
    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);
            }
        }
    });
    icon.addFormItemClickHandler(new FormItemClickHandler() {

        @Override
        public void onFormItemClick(FormItemIconClickEvent event) {
            NovaIndicacao dialogInd = new NovaIndicacao(indicado, valueMapVeic, codVeiculoIndicador);
            dialogInd.setAnimateTime(1200);
            dialogInd.animateShow(AnimationEffect.FADE);
        }
    });
    String valueIndicado = "0";
    //GWT.log("PlacasCliente : "+placasCliente.isEmpty());
    if (!placasCliente.isEmpty()) {
        int numeroInd = 0;
        for (Map.Entry<String, ArrayList<TreeMap<String, String>>> entrySet : placasCliente.entrySet()) {
            //String key = entrySet.getKey();
            ArrayList<TreeMap<String, String>> value = entrySet.getValue();
            //if(Integer.parseInt(value.get(0).get("codPlano")) == 1){
            valueMapVeic.put(value.get(0).get("codVeiculo"), value.get(0).get("placaVeiculo") + " / "
                    + ((value.get(0).get("fabricante") == null) ? value.get(0).get("fabricantev")
                            : value.get(0).get("fabricante"))
                    + " / "
                    + ((value.get(0).get("modelo") == null) ? value.get(0).get("modelov")
                            : value.get(0).get("modelo"))
                    + " / "
                    + ((value.get(0).get("ano") == null) ? value.get(0).get("anov") : value.get(0).get("ano"))
                    + " Ind: " + value.get(0).get("numeroIndicacoes"));
            //}
            if (Integer.parseInt(value.get(0).get("numeroIndicacoes")) >= numeroInd
                    && Integer.parseInt(value.get(0).get("codPlano")) == 1) {
                valueIndicado = value.get(0).get("codVeiculo");
                numeroInd = Integer.parseInt(value.get(0).get("numeroIndicacoes"));
            }
        }
    }
    indicado.setValue(valueIndicado);
    indicado.setValueMap(valueMapVeic);
    //indicado.setDefaultToFirstOption(true);
    //indicado.setRequired(true);
    indicado.setIcons(icon);
    indicado.setTooltip(Info.titulosMsg.get("adicionarIndicacao"));

    final TextItem placa = new TextItem();
    placa.setName("placa");
    placa.setTitle(Info.titulosMsg.get("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(430);
    placa.addChangedHandler(new ChangedHandler() {

        @Override
        public void onChanged(ChangedEvent event) {
            if (event.getValue() != null && (!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.redraw();
                                    placa.setHint("<nbr>" + Info.titulosMsg.get("placaJaExiste") + "</nbr>");
                                    validaPlaca = false;
                                } else {
                                    placa.setHint("<nbr class=\"positivo\">"
                                            + Info.titulosMsg.get("placaValida") + "</nbr>");
                                    validaPlaca = true;
                                }
                            }

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

                            }
                        });
            }
            //validaPlaca = false;
        }
    });

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

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

        @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);

        }

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

        }
    });
    itemEstado.setValue(String.valueOf(Info.codEstadoUnidade));
    itemEstado.setAddUnknownValues(false);
    Info.dbService.buscarCidadePorEstado(Integer.parseInt(itemEstado.getValueAsString()),
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                @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(String.valueOf(Info.codCidadeUnidade));
                }

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

                }
            });
    itemCidade.setWidth(450);
    itemCidade.setAddUnknownValues(false);
    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 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(String.valueOf(Info.codEstadoUnidade))) {
                                itemCidade.setValue(String.valueOf(Info.codCidadeUnidade));
                            } else {
                                itemCidade.setValue(result.get(0).get("codCidade"));
                            }
                        }

                        @Override
                        public void onFailure(Throwable caught) {
                            // TODO Auto-generated method stub                  
                        }
                    });
        }
    });
    itemCidade.setRequired(true);

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

        @Override
        public void onChanged(ChangedEvent event) {
            if (chassi.getValueAsString().length() > 7) {
                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("Valida chassi!!!" + validaChassi);
                                } else {
                                    validaChassi = false;
                                    GWT.log("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.setCharacterCasing(CharacterCasing.UPPER);
    fabricante.setKeyPressFilter("[a-zA-Z?? 0-9]");
    fabricante.setWidth(450);

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

    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.setCharacterCasing(CharacterCasing.UPPER);
    ano.setKeyPressFilter("[0-9 /]");
    ano.setWidth(450);

    final ComboBoxItem tipoVeiculo = new ComboBoxItem();
    tipoVeiculo.setAddUnknownValues(false);
    tipoVeiculo.setTitle(Info.titulosMsg.get("tipoVeiculo"));
    tipoVeiculo.setName("tipoVeiculo");
    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);
                tipoVeiculo.setValue(result.get(0).get("codTipo"));
                buscarMarcas(Integer.parseInt(result.get(0).get("codTipo")));
            } else {
                tipoVeiculos.put("0", "No h tipo de veculo");
                tipoVeiculo.setValueMap(tipoVeiculos);
                tipoVeiculo.setValue("0");
            }
        }
    });
    tipoVeiculo.setHint("<nbr>*</nbr>");
    tipoVeiculo.setRequired(true);
    tipoVeiculo.setWidth(450);

    final SelectItem itemIconeVeiculo = new SelectItem();
    itemIconeVeiculo.setTitle(Info.titulosMsg.get("iconeVeiculo"));
    itemIconeVeiculo.setName("iconeVeiculo");
    itemIconeVeiculo.setHint("<nbr>*</nbr>");
    itemIconeVeiculo.setRequired(true);
    itemIconeVeiculo.setWidth(450);
    itemIconeVeiculo.disable();
    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(result.get(0).get("codIcone"));

            }
        }
    });
    itemIconeVeiculo.setImageURLPrefix("../imagens/veiculos/");
    itemIconeVeiculo.setImageURLSuffix(".png");
    //itemIconeVeiculo.disable();
    itemMarca.setTitle(Info.titulosMsg.get("fabricante"));
    itemMarca.setAddUnknownValues(false);
    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.setTitle(Info.titulosMsg.get("modelo"));
    itemModelo.setAddUnknownValues(false);
    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.setTitle(Info.titulosMsg.get("ano"));
    itemAno.setAddUnknownValues(false);
    itemAno.setName("itemAno");
    itemAno.setHint("<nbr>*</nbr>");
    itemAno.setRequired(true);
    itemAno.setWidth(450);

    tipoVeiculo.addChangedHandler(new ChangedHandler() {

        @Override
        public void onChanged(ChangedEvent event) {
            String tipoSelecionado = (String) event.getValue();
            buscarMarcas(Integer.parseInt(tipoSelecionado));
            if (tipoSelecionado.equalsIgnoreCase("1")) {
                itemIconeVeiculo.setValueMap(valueMap);
                itemIconeVeiculo.setValueIcons(valueIcons);
                formNovoVeiculo.showItem("itemMarca");
                formNovoVeiculo.showItem("itemModelo");
                formNovoVeiculo.showItem("itemAno");
                formNovoVeiculo.hideItem("fabricante");
                formNovoVeiculo.hideItem("modelo");
                formNovoVeiculo.hideItem("ano");
                itemIconeVeiculo.setValue("1");
                itemIconeVeiculo.disable();
            } else if (tipoSelecionado.equalsIgnoreCase("2")) {
                itemIconeVeiculo.setValueMap(valueMap);
                itemIconeVeiculo.setValueIcons(valueIcons);
                formNovoVeiculo.showItem("itemMarca");
                formNovoVeiculo.showItem("itemModelo");
                formNovoVeiculo.showItem("itemAno");
                formNovoVeiculo.hideItem("fabricante");
                formNovoVeiculo.hideItem("modelo");
                formNovoVeiculo.hideItem("ano");
                itemIconeVeiculo.setValue("2");
                itemIconeVeiculo.enable();
                //itemIconeVeiculo.disable();
            } else if (tipoSelecionado.equalsIgnoreCase("3")) {
                itemIconeVeiculo.enable();
                itemIconeVeiculo.setValueMap(valueCaminhao);
                itemIconeVeiculo.setValueIcons(valueIconsCaminhao);
                formNovoVeiculo.showItem("itemMarca");
                formNovoVeiculo.showItem("itemModelo");
                formNovoVeiculo.showItem("itemAno");
                formNovoVeiculo.hideItem("fabricante");
                formNovoVeiculo.hideItem("modelo");
                formNovoVeiculo.hideItem("ano");
                itemIconeVeiculo.setValue("3");
            } else if (tipoSelecionado.equalsIgnoreCase("4")) {
                itemIconeVeiculo.enable();
                itemIconeVeiculo.setValueMap(valueMap);
                itemIconeVeiculo.setValueIcons(valueIcons);
                formNovoVeiculo.hideItem("itemMarca");
                formNovoVeiculo.hideItem("itemModelo");
                formNovoVeiculo.hideItem("itemAno");
                formNovoVeiculo.showItem("fabricante");
                formNovoVeiculo.showItem("modelo");
                formNovoVeiculo.showItem("ano");
                itemIconeVeiculo.setValue("3");
            }
        }
    });
    /*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);
            
     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);
     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.setCharacterCasing(CharacterCasing.UPPER);
     ano.setWidth(450);*/

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

    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.setDefaultValue(new Date(System.currentTimeMillis()));

    final ComboBoxItem ativo = new ComboBoxItem();
    ativo.setTitle(Info.titulosMsg.get("ativo"));
    ativo.setAddUnknownValues(false);
    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(Info.titulosMsg.get("desconto"));
    desconto.setKeyPressFilter("[0-9]");
    desconto.setValue("0,00");
    desconto.setWidth(450);
    desconto.setValue("");
    desconto.setDisabled(true);
    if (Info.usuarioLogado.containsKey("4")) {
        desconto.setDisabled(false);
    }
    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;
        }
    });

    final ComboBoxItem tipoCobranca = new ComboBoxItem();
    tipoCobranca.setAddUnknownValues(false);
    tipoCobranca.setTitle(Info.titulosMsg.get("tipoCobranca"));
    tipoCobranca.setName("tipoCobranca");
    Info.dbService.buscarTodosTipoCobranca(1, new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

        @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"));
            } else {
                tpCob.put("0", Info.titulosMsg.get("naoHaTipoCobranca"));
                tipoCobranca.setValueMap(tpCob);
                tipoCobranca.setValue("0");

            }
        }

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

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

    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("");

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

    tipoCobranca.addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {
            String selectedItem = (String) event.getValue();
            if (selectedItem.equalsIgnoreCase("6") || selectedItem.equalsIgnoreCase("7")) {
                formNovoVeiculo.hideItem("numeroParcelas");
                numeroParcelas.setRequired(false);
                formNovoVeiculo.showItem("itemOutraVenda");
                itemOutraVenda.setRequired(true);
            } else {
                formNovoVeiculo.showItem("numeroParcelas");
                numeroParcelas.setRequired(true);
                formNovoVeiculo.hideItem("itemOutraVenda");
                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("");

    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");
    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) {
                    LinkedHashMap<String, String> pessoasAutorizadas = new LinkedHashMap<>();
                    if (result != null) {
                        arrayPessoasAutorizadas = result;
                        GWT.log(" " + arrayPessoasAutorizadas);
                        TreeMap<String, String> pesAux = new TreeMap<String, String>();
                        for (TreeMap<String, String> pes : result) {
                            if (pesAux.get(pes.get("codPessoa")) == null) {
                                //com.google.gwt.core.client.GWT.log("NOVO codPessoa: "+pes.get("codPessoa")); 
                                pessoasAutorizadas.put(pes.get("codPessoa"), pes.get("nome"));
                                pesAux.put(pes.get("codPessoa"), pes.get("codPessoa"));
                            }
                        }
                        itemPessoasAutorizadas.setValueMap(pessoasAutorizadas);
                        itemPessoasAutorizadas.setValue(result.get(0).get("codPessoa"));
                        codPessoaAutorizada = Integer.parseInt(result.get(0).get("codPessoa"));
                        TreeMap<String, String> pAux = new TreeMap<>();
                        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("nomePesAut", p.get("nome"));
                                registro.setAttribute("telefoneMas",
                                        (p.get("telefone") == null || p.get("telefone").equalsIgnoreCase(""))
                                                ? "Sem informao"
                                                : Info.formataTelefone(p.get("telefone")));
                                registro.setAttribute("telefone",
                                        (p.get("telefone") == null || p.get("telefone").equalsIgnoreCase(""))
                                                ? "Sem informao"
                                                : p.get("telefone"));
                                registro.setAttribute("senha", p.get("senha"));
                                registro.setAttribute("senhaMascara", p.get("senha"));
                                registro.setAttribute("descricaoPesAut",
                                        (p.get("descricao") == null) ? "Sem informao" : p.get("descricao"));
                                listPesAut.addData(registro);
                                pAux.put(p.get("codPessoa"), p.get("codPessoa"));
                            }
                        }
                    } else {
                        pessoasAutorizadas.put("0", "No h pessoas autorizadas a rastrear");
                        itemPessoasAutorizadas.setValueMap(pessoasAutorizadas);
                        itemPessoasAutorizadas.setValue("0");
                        codPessoaAutorizada = 0;
                        itemPessoasAutorizadas.setDisabled(true);
                    }
                }
            });
    itemPessoasAutorizadas.setWidth(450);
    itemPessoasAutorizadas.addChangedHandler(new ChangedHandler() {

        @Override
        public void onChanged(ChangedEvent event) {
            GWT.log("Evento : " + event.getValue());
            if (event.getValue() == null) {
                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 (Integer.parseInt(arrayPessoasAutorizadas.get(i).get("codPessoa")) < 0
                            && !pAux.containsKey(arrayPessoasAutorizadas.get(i).get("codPessoa"))) {
                        Record registro = new Record();
                        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("nomePesAut", arrayPessoasAutorizadas.get(i).get("nome"));
                        registro.setAttribute("telefoneMas",
                                (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("descricaoPesAut",
                                (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 {
                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();
                            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("nomePesAut", arrayPessoasAutorizadas.get(i).get("nome"));
                            registro.setAttribute("telefoneMas",
                                    (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("descricaoPesAut",
                                    (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"));
                        }
                    }

                }
            }
        }
    });

    final SelectItem gruposCliente = new SelectItem();
    gruposCliente.setRequired(true);
    gruposCliente.setTitle(Info.titulosMsg.get("tituloGrupo"));
    gruposCliente.setName("grupoCliente");
    gruposCliente.setMultiple(true);
    gruposCliente.setMultipleAppearance(MultipleAppearance.PICKLIST);
    gruposCliente.setTooltip(Info.titulosMsg.get("primeiroGrupoObrigatorio"));
    Info.dbService.buscarGrupoPorCliente(codigoCliente,
            new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                @Override
                public void onSuccess(ArrayList<TreeMap<String, String>> result) {
                    LinkedHashMap<String, String> grupo = new LinkedHashMap<>();
                    if (result != null) {
                        for (TreeMap<String, String> g : result) {
                            grupo.put(g.get("codGrupo"), g.get("nome"));
                        }
                        gruposCliente.setValueMap(grupo);
                        gruposCliente.setValue(result.get(0).get("codGrupo"));
                    } else {
                        grupo.put("0", Info.titulosMsg.get("clienteSemGrupo"));
                        gruposCliente.setValueMap(grupo);
                        gruposCliente.setValue("0");

                    }

                }

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

                }
            });
    //        gruposCliente.addChangedHandler(new ChangedHandler() {
    //
    //            @Override
    //            public void onChanged(final ChangedEvent event) {
    //
    //                Info.dbService.buscarGrupoPorCliente(codigoCliente, new AsyncCallback<ArrayList<TreeMap<String, String>>>() {
    //
    //                    @Override
    //                    public void onSuccess(ArrayList<TreeMap<String, String>> result) {
    //                        LinkedHashMap<String, String> grupo = new LinkedHashMap<>();
    //                        if (result != null) {
    //                            for (TreeMap<String, String> g : result) {
    //                                grupo.put(g.get("codGrupo"), g.get("nome"));
    //                            }
    //                            gruposCliente.setValueMap(grupo);
    //                            gruposCliente.setValue(String.valueOf(result.get(0).get("codGrupo")));
    //                            if (event.getValue() == null || (!String.valueOf(event.getValue()).contains(result.get(0).get("codGrupo")))) {
    //                                gruposCliente.redraw();
    //                                gruposCliente.setValue(String.valueOf(result.get(0).get("codGrupo")));
    //                            }
    //                        } else {
    //                            grupo.put("0", Info.titulosMsg.get("clienteSemGrupo"));
    //                            gruposCliente.setValueMap(grupo);
    //                            gruposCliente.setValue("0");
    //
    //                        }
    //
    //                    }
    //
    //                    @Override
    //                    public void onFailure(Throwable caught) {
    //                        // TODO Auto-generated method stub
    //
    //                    }
    //                });
    //
    //            }
    //        });
    gruposCliente.setHint("<nbr>*</nbr>");
    //gruposCliente.setRequired(true);
    gruposCliente.setWidth(450);
    //Componentes da Tab
    final SectionStack novoVeiculo = new SectionStack();
    //Botes
    IButton cadastrar = new IButton(Info.titulosMsg.get("tituloCadastrar"));
    cadastrar.setLayoutAlign(Alignment.CENTER);

    IButton limpar = new IButton(Info.titulosMsg.get("limpar"));
    cadastrar.setLayoutAlign(Alignment.CENTER);

    valorMensalidade.setAlign(Alignment.CENTER);
    valorMensalidade.setHeight(40);

    final SectionStackSection formSection = new SectionStackSection();
    formSection.setTitle(Info.titulosMsg.get("dadosVeiculo"));
    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) {

            if (tipoPlano.getValueAsString().equalsIgnoreCase("1")) {
                formNovoVeiculo.showItem("numeroParcelas");
                numeroParcelas.setRequired(true);
                formNovoVeiculo.hideItem("itemOutraVenda");
                itemOutraVenda.setRequired(false);
                tipoCobranca.redraw();
                Info.dbService.buscarTodosTipoCobranca(Integer.parseInt(tipoPlano.getValueAsString()),
                        new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                            @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 master = planoMaster
                                                - (Double.parseDouble(desconto.getDisplayValue()
                                                        .replaceAll("\\.", "").replaceAll(",", "\\.")));
                                        valorMensalidade.redraw();
                                        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");

                                }

                            }

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

                            }
                        });
                numeroDeParcelas(tipoCobranca.getValueAsString());
                valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                        + Info.formataSaldo(Info.formataDecimal(planoMaster)) + "</h3></strong>");
            } else {
                formNovoVeiculo.showItem("numeroParcelas");
                numeroParcelas.setRequired(false);
                formNovoVeiculo.hideItem("itemOutraVenda");
                itemOutraVenda.setRequired(true);
                tipoCobranca.redraw();
                Info.dbService.buscarTodosTipoCobranca(Integer.parseInt(tipoPlano.getValueAsString()),
                        new AsyncCallback<ArrayList<TreeMap<String, String>>>() {

                            @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");

                                }

                            }

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

                            }
                        });
                numeroDeParcelas(tipoCobranca.getValueAsString());
                valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                        + Info.formataSaldo(Info.formataDecimal(planoComodato)) + "</h3></strong>");
            }
        }
    });
    //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")) {
                    double master = planoMaster - (Double.parseDouble(
                            desconto.getDisplayValue().replaceAll("\\.", "").replaceAll(",", "\\.")));
                    valorMensalidade.redraw();
                    valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                            + 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")) {
                    valorMensalidade.redraw();
                    valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                            + Info.formataSaldo(Info.formataDecimal(planoMaster)) + "</h3></strong>");
                } else {
                    valorMensalidade.redraw();
                    valorMensalidade.setContents("<strong><h3>" + Info.titulosMsg.get("valorMensalidade")
                            + Info.formataSaldo(Info.formataDecimal(planoComodato)) + "</h3></strong>");

                }
            }
        }

    });
    // 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 corFio = new ListGridField("corFio", Info.titulosMsg.get("corFio"));
    corFio.setAlign(Alignment.CENTER);
    //Coluna sinal
    ListGridField sinal = new ListGridField("sinal", Info.titulosMsg.get("sinal"));
    sinal.setAlign(Alignment.CENTER);
    sinal.setHidden(true);
    ListGridField sinalMas = new ListGridField("sinalMas", Info.titulosMsg.get("sinal"));
    sinalMas.setAlign(Alignment.CENTER);
    //coluna Padro Veiculo
    ListGridField padrao = new ListGridField("padrao", Info.titulosMsg.get("padrao"));
    padrao.setAlign(Alignment.CENTER);
    padrao.setHidden(true);
    ListGridField padraoMas = new ListGridField("padraoMas", Info.titulosMsg.get("padrao"));
    padraoMas.setAlign(Alignment.CENTER);
    //coluna funo
    ListGridField funcao = new ListGridField("funcao", Info.titulosMsg.get("funcao"));
    funcao.setAlign(Alignment.CENTER);
    funcao.setHidden(true);
    ListGridField funcaoMas = new ListGridField("funcaoMas", Info.titulosMsg.get("funcao"));
    funcaoMas.setAlign(Alignment.CENTER);
    //coluna ativo
    ListGridField fieldAtivo = new ListGridField("fieldAtivo", Info.titulosMsg.get("ativo"));
    fieldAtivo.setAlign(Alignment.CENTER);
    fieldAtivo.setHidden(true);
    ListGridField fieldAtivoMas = new ListGridField("fieldAtivoMas", Info.titulosMsg.get("ativo"));
    fieldAtivoMas.setAlign(Alignment.CENTER);
    //coluna descricao
    ListGridField descricaoPl = new ListGridField("descricaoPl", Info.titulosMsg.get("descricao"));
    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);
    listPadLig.setSelectionType(SelectionStyle.SINGLE);

    addpadLig.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            if (formNovoVeiculo.validate()) {
                NovoPadraoLigacao novPadLig = new NovoPadraoLigacao(listPadLig);
                novPadLig.setAnimateTime(1200);
                novPadLig.animateShow(AnimationEffect.FADE);
            }
        }
    });
    //cria a sections email que ir guardar a grid de Padro de Ligao
    final SectionStackSection padLigSection = new SectionStackSection();
    padLigSection.setTitle(Info.titulosMsg.get("padraoDeLigacao"));
    padLigSection.setItems(listPadLig);
    //padLigSection.setControls(addpadLig);
    padLigSection.setExpanded(true);
    //criando coluna para grid Pessoa autorizada
    ListGridField codigoPesInterface = new ListGridField("codigoInterface",
            Info.titulosMsg.get("tituloCodigo"));
    codigoPesInterface.setHidden(true);
    codigoPesInterface.setAlign(Alignment.CENTER);
    ListGridField codigoPes = new ListGridField("codigo", Info.titulosMsg.get("tituloCodigo"));
    //codigoPes.setRequired(true);
    codigoPes.setHidden(true);
    codigoPes.setAlign(Alignment.CENTER);
    ListGridField nomePesAut = new ListGridField("nomePesAut", Info.titulosMsg.get("tituloNome"));
    //nomePesAut.setRequired(true);
    nomePesAut.setAlign(Alignment.CENTER);
    nomePesAut.setWidth(400);
    //pega o valor do nmero do telefone
    ListGridField telefonePesAutMas = new ListGridField("telefoneMas", Info.titulosMsg.get("tituloNumero"));
    telefonePesAutMas.setAlign(Alignment.CENTER);
    ListGridField senhaPesAut = new ListGridField("senha", Info.titulosMsg.get("tituloSenha"));
    senhaPesAut.setAlign(Alignment.CENTER);
    senhaPesAut.setHidden(true);
    ListGridField senhaPesAutMascara = new ListGridField("senhaMascara", Info.titulosMsg.get("tituloSenha"));
    senhaPesAutMascara.setAlign(Alignment.CENTER);
    ListGridField telefonePesAut = new ListGridField("telefone", Info.titulosMsg.get("tituloNumero"));
    telefonePesAut.setAlign(Alignment.CENTER);
    telefonePesAut.setHidden(true);
    //pega o valor da descrio
    ListGridField descPesAut = new ListGridField("descricaoPesAut", Info.titulosMsg.get("descricao"));
    descPesAut.setAlign(Alignment.CENTER);
    ListGridField excluirPesAut = new ListGridField("excluir", "");
    excluirPesAut.setAlign(Alignment.CENTER);
    excluirPesAut.setWidth(20);
    //adicionando na lista grid de Pessoa Autorizada
    listPesAut.setFields(codigoPesInterface, codigoPes, nomePesAut, telefonePesAutMas, telefonePesAut,
            senhaPesAut, senhaPesAutMascara, descPesAut, excluirPesAut);
    //listTelefone.setCanPickFields(false);
    //listPesAut.setCanRemoveRecords(true);
    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);
    //criando seo Pessoa Autorizada
    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) {
            if (formNovoVeiculo.validate()) {
                //GWT.log("Index : " + codPessoaAutorizada);
                NovaPessoaAutorizada novaPesAut = new NovaPessoaAutorizada(listPesAut, arrayPessoasAutorizadas);
                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, tipoVeiculo, itemIconeVeiculo, itemMarca, fabricante, itemModelo, modelo,
            itemAno, ano, cor, dataAdesao, ativo, desconto, tipoCobranca, numeroParcelas, itemOutraVenda,
            observacoes, gruposCliente, itemConfiguracao, itemPessoasAutorizadas);

    formNovoVeiculo.hideItem("itemOutraVenda");
    formNovoVeiculo.hideItem("fabricante");
    formNovoVeiculo.hideItem("modelo");
    formNovoVeiculo.hideItem("ano");

    novoVeiculo.setSections(formSection, pesAutSection, padLigSection);
    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<>();
            valueMapVeic.put("0", Info.titulosMsg.get("naoHaIndicacao"));
            indicado.setValueMap(valueMapVeic);
            placa.clearValue();
            chassi.clearValue();
            /*fabricante.clearValue();
             modelo.clearValue();                
             ano.clearValue();*/
            tipoVeiculo.setValue("1");
            buscarMarcas(1);
            cor.clearValue();
            dataAdesao.clearValue();
            desconto.setValue("0,00");
            tipoPlano.clearValue();
            equipamento.clearValue();
            instalador.clearValue();
            ativo.clearValue();
            listPadLig.selectAllRecords();
            listPadLig.removeSelectedData();
            listPesAut.selectAllRecords();
            listPesAut.removeSelectedData();
            // limpou o cadastro de veculo //
            Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 89,
                    new Timestamp(System.currentTimeMillis()), "");
        }
    });

    cadastrar.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            //if (formNovoVeiculo.validate() && Integer.parseInt(instalador.getValueAsString()) > 0 && validaPlaca && validaChassi && Integer.parseInt(equipamento.getValueAsString()) != 0 && !listPadLig.getRecordList().isEmpty() && !indicado.getValueAsString().equalsIgnoreCase("REP")) {
            GWT.log("LINHA 01 addClickHandler");
            if (formNovoVeiculo.validate() && Integer.parseInt(instalador.getValueAsString()) > 0 && validaPlaca
                    && validaChassi && !indicado.getValueAsString().equalsIgnoreCase("REP")) {
                GWT.log("LINHA 02 addClickHandler");
                TreeMap<String, String> veiculo = new TreeMap<>();
                ArrayList<TreeMap<String, String>> padroesLigacao = new ArrayList<>();
                ArrayList<TreeMap<String, String>> pesssoasAut = new ArrayList<>();
                GWT.log("LINHA 03 addClickHandler");
                veiculo.put("codPlano", tipoPlano.getValueAsString());
                veiculo.put("codCliente", cliente.getValueAsString());
                veiculo.put("codEquipamento",
                        equipamento.getValueAsString().substring(
                                equipamento.getValueAsString().indexOf(";") + 1,
                                equipamento.getValueAsString().length()));
                GWT.log("LINHA 04 addClickHandler");
                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("configuracao", itemConfiguracao.getValueAsString());
                ///////////////////////////////////////////////////////////
                veiculo.put("tipo", tipoVeiculo.getValueAsString());
                veiculo.put("icone", itemIconeVeiculo.getValueAsString());
                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());
                }
                ////////////////////////////////////////////////////////////
                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("00,00")) ? "0"
                                        : desconto.getDisplayValue().replaceAll("\\.", "").replaceAll(",",
                                                "\\."));
                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());
                }
                veiculo.put("observacoes", observacoes.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") == null
                                        || padraos[i].getAttribute("descricaoPl").equalsIgnoreCase("")
                                        || padraos[i].getAttribute("descricaoPl")
                                                .equalsIgnoreCase("Sem informao")) ? null
                                                        : 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<>();
                        //GWT.log("Cdigo: " + pessoa[i].getAttributeAsString("codigo"));
                        treeMapPesAut.put("codigo", pessoa[i].getAttributeAsString("codigo"));
                        treeMapPesAut.put("nome", pessoa[i].getAttributeAsString("nomePesAut"));
                        treeMapPesAut.put("telefone",
                                (pessoa[i].getAttributeAsString("telefone")
                                        .equalsIgnoreCase("Sem informao")) ? null
                                                : pessoa[i].getAttributeAsString("telefone"));
                        treeMapPesAut.put("senha", pessoa[i].getAttribute("senha"));
                        treeMapPesAut.put("descricao",
                                (pessoa[i].getAttributeAsString("descricaoPesAut") == null
                                        || pessoa[i].getAttributeAsString("descricaoPesAut")
                                                .equalsIgnoreCase("")
                                        || pessoa[i].getAttributeAsString("descricaoPesAut")
                                                .equalsIgnoreCase("Sem informao")) ? null
                                                        : pessoa[i].getAttribute("descricaoPesAut"));
                        pesssoasAut.add(treeMapPesAut);
                    }
                }
                int codGrupo = Integer.parseInt(Info.usuarioLogado.get("codGrupo"));
                String gruposAutorizadosRastrear[] = gruposCliente.getValues();
                //GWT.log("Veculo: " + veiculo);
                Info.dbService.cadastrarVeiculo(codGrupo, gruposAutorizadosRastrear, veiculo, datadeAdesao,
                        padroesLigacao, pesssoasAut, new AsyncCallback<Boolean>() {

                            @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(Boolean result) {
                                if (result) {
                                    GWT.log("RESULT: " + result);
                                    if (Integer.parseInt(Info.usuarioLogado.get("codPerfil")) == 2
                                            || Integer.parseInt(Info.usuarioLogado.get("codPerfil")) == 3) {
                                        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) {
                                                            TabGerenciaGrupoMaster.arrayListGrupos = result;
                                                            TabGerenciaGrupoMaster.listGrupo.redraw();
                                                            TabGerenciaGrupoMaster.listGrupo
                                                                    .setData(new Record[0]);
                                                            TreeMap<String, String> mapAux = new TreeMap<>();
                                                            for (TreeMap<String, String> grupo : result) {
                                                                if (mapAux.get(grupo.get("codGrupo")) == null) {
                                                                    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"));
                                                                }
                                                            }
                                                        } else {
                                                            SC.warn("ERRO ao listar grupos de veculos do usurio!");
                                                        }
                                                    }
                                                });
                                    }
                                    Info.dbService.buscarVeiculoPorCliente(codigoCliente,
                                            new AsyncCallback<TreeMap<String, 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(
                                                        TreeMap<String, ArrayList<TreeMap<String, String>>> dadosVeiculoAtualizados) {

                                                    TabBuscarCliente.totalMensalidadesVeiculos = 0;
                                                    if (dadosVeiculoAtualizados != null) {
                                                        tabBuscaCliente.setVeiculos(dadosVeiculoAtualizados);

                                                        TreeMap<String, ArrayList<TreeMap<String, String>>> veiculosAux = new TreeMap<>(
                                                                dadosVeiculoAtualizados);

                                                        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 (!TabHistorico.codPlacasHistorico
                                                                            .containsKey(value.get(0)
                                                                                    .get("codVeiculo"))) {
                                                                        TabHistorico.codPlacasHistorico.put(
                                                                                value.get(0).get("codVeiculo"),
                                                                                value.get(0).get("codVeiculo"));
                                                                        final Record recordVeiculosHist = new Record();
                                                                        recordVeiculosHist.setAttribute(
                                                                                "codigo",
                                                                                value.get(0).get("codVeiculo"));
                                                                        recordVeiculosHist.setAttribute("placa",
                                                                                value.get(0)
                                                                                        .get("placaVeiculo"));
                                                                        recordVeiculosHist.setAttribute(
                                                                                "fabricante",
                                                                                value.get(0).get("fabricante"));
                                                                        recordVeiculosHist.setAttribute(
                                                                                "modelo",
                                                                                value.get(0).get("modelo"));
                                                                        recordVeiculosHist.setAttribute("cor",
                                                                                value.get(0).get("cor"));
                                                                        recordVeiculosHist.setAttribute("ano",
                                                                                value.get(0).get("ano"));
                                                                        recordVeiculosHist.setAttribute("icone",
                                                                                value.get(0).get("icone"));
                                                                        recordVeiculosHist.setAttribute("grupo",
                                                                                Info.usuarioLogado
                                                                                        .get("nomeGrupo"));
                                                                        recordVeiculosHist.setAttribute(
                                                                                "cliente", nomeCliente);
                                                                        //GWT.log("LINHA 32 Placa novas: ");
                                                                        TabHistorico.dataSoucePlacas
                                                                                .addData(recordVeiculosHist);
                                                                        TabHistorico.veiculos.fetchData();
                                                                    }

                                                                    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) {
                                                                com.google.gwt.core.client.GWT
                                                                        .log("flagDrawGrid");
                                                                veicPlacas.fetchData();
                                                                veicPlacas.focus();
                                                                com.google.gwt.core.client.GWT
                                                                        .log("flagDrawGrid");
                                                            } else {
                                                                new Timer() {
                                                                    @Override
                                                                    public void run() {
                                                                        com.google.gwt.core.client.GWT
                                                                                .log("flagDrawGrid");
                                                                        //veicPlacas.setDataSource(ds);
                                                                        veicPlacas.fetchData();
                                                                        veicPlacas.focus();
                                                                        com.google.gwt.core.client.GWT
                                                                                .log("flagDrawGrid");
                                                                    }
                                                                }.schedule(1000);
                                                            }
                                                            //                                                veicPlacas.setDataSource(ds);
                                                            //                                                veicPlacas.fetchData();
                                                            //                                                veicPlacas.setSelectionType(SelectionStyle.SINGLE);
                                                            SC.say(Info.titulosMsg
                                                                    .get("cadastroVeiculoSucesso"));
                                                            // cadastro de veculo //
                                                            Info.registrarLog(
                                                                    Integer.parseInt(Info.usuarioLogado
                                                                            .get("codUsuario")),
                                                                    2,
                                                                    new Timestamp(System.currentTimeMillis()),
                                                                    placa.getValueAsString());
                                                            windAux.destroy();
                                                        } else {
                                                            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.setFields(codigo, placaVeiculo);
                                                            ds.setClientOnly(true);
                                                            veicPlacas.setDataSource(ds);
                                                            veicPlacas.fetchData();
                                                            veicPlacas.setSelectionType(SelectionStyle.SINGLE);
                                                            tabBuscaCliente.tabelaVeiculoRedraw(tabelaVazia);
                                                            SC.say(Info.titulosMsg
                                                                    .get("cadastroVeiculoSucesso"));
                                                            // cadastro de veculo //
                                                            Info.registrarLog(
                                                                    Integer.parseInt(Info.usuarioLogado
                                                                            .get("codUsuario")),
                                                                    2,
                                                                    new Timestamp(System.currentTimeMillis()),
                                                                    placa.getValueAsString());
                                                            windAux.destroy();
                                                        }

                                                    }

                                                }
                                            });

                                } else {
                                    // erro no cadastro de veculo //
                                    Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")),
                                            90, new Timestamp(System.currentTimeMillis()),
                                            placa.getValueAsString());
                                    SC.warn(Info.titulosMsg.get("cadastroVeiculoErro"));
                                }
                            }
                        });

            } else {
                if (formNovoVeiculo.validate(false) && Integer.parseInt(instalador.getValueAsString()) == 0) {
                    SC.warn(Info.titulosMsg.get("instaladorInvalido"));
                    formNovoVeiculo.focusInItem(instalador);
                    // tentou cadastrar o veculo sem instalador//
                    Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 301,
                            new Timestamp(System.currentTimeMillis()), "");
                }
                /*else if (formNovoVeiculo.validate(false) && Integer.parseInt(equipamento.getValueAsString()) == 0) {
                // tentou cadastrar o veculo sem equipamento//
                Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 91, new Timestamp(System.currentTimeMillis()), "");
                SC.warn(Info.titulosMsg.get("equipamentoInvalido"));
                formNovoVeiculo.focusInItem(equipamento);
                } else if (formNovoVeiculo.validate(false) && Integer.parseInt(equipamento.getValueAsString()) != 0 && listPadLig.getRecordList().isEmpty()) {
                // tentou cadastrar o veculo sem equipamento//
                Info.registrarLog(Integer.parseInt(Info.usuarioLogado.get("codUsuario")), 91, new Timestamp(System.currentTimeMillis()), "");
                SC.warn(Info.titulosMsg.get("umPadraoLigacao"));
                formNovoVeiculo.focusInItem(equipamento);
                }*/ else if (formNovoVeiculo.validate(false) && !validaPlaca) {
                    SC.warn(Info.titulosMsg.get("placaInvalida"));
                    formNovoVeiculo.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 (formNovoVeiculo.validate(false) && !validaChassi) {
                    SC.warn(Info.titulosMsg.get("chassiJaExiste"));
                    formNovoVeiculo.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 (formNovoVeiculo.validate(false)
                        && indicado.getValueAsString().equalsIgnoreCase("REP")) {
                    SC.warn(Info.titulosMsg.get("IndicadorInvalido"));
                    formNovoVeiculo.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(cadastrar);
    painelBotoesNovoVeiculo.addMember(limpar);

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

    addItem(painelpagina);

}